次の方法で共有


コマンドの動的プロパティの再同期 (ADO)

適用先: Access 2013、Office 2013

Unique Table 動的プロパティに指定されているテーブルのデータを更新するために Resync メソッドが発行する、ユーザー指定のコマンド文字列を指定します。

設定と戻り値

コマンド文字列である文字列型 (String) の値を設定または取得します。

注釈

Recordset オブジェクトは、複数のベース テーブルに対して実行される JOIN 操作の結果です。 影響を受ける行は、Resync メソッドの AffectRecords パラメーターによって異なります。 Unique Table プロパティと Resync Command プロパティが設定されていない場合は、標準の Resync メソッドが実行されます。

Resync Command プロパティのコマンド文字列は、更新する行を一意に識別するパラメーター化されたコマンドまたはストアド プロシージャであり、更新する行と同じ数と列の順序を含む 1 つの行を返します。 コマンド文字列には、 一意のテーブル内の各主キー列のパラメーターが含まれています。それ以外の場合は、実行時エラーが返されます。 パラメーターには、更新する行の主キー値が自動的に入力されます。

次に SQL の例を 2 つ示します。

  1. Recordset がコマンドによって定義されている場合

        SELECT * FROM Customers JOIN Orders ON 
        Customers.CustomerID = Orders.CustomerID
        WHERE city = Seattle
        ORDER BY CustomerID
    

    Resync Command プロパティは次のように設定されます。

     SELECT * FROM 
        (SELECT * FROM Customers JOIN Orders 
        ON Customers.CustomerID = Orders.CustomerID
        city = Seattle ORDER BY CustomerID)
     WHERE Orders.OrderID = ?"
    

    Unique TableOrders であり、その主キー OrderID はパラメーター化されています。 SELECT 文中の SELECT 文では、元のコマンドが返すのと同じ数および順序の列をプログラムで簡易に実現しています。

  2. Recordset がストアド プロシージャによって定義されている場合

        CREATE PROC Custorders @CustomerID char(5) AS 
        SELECT * FROM Customers JOIN Orders ON 
        Customers.CustomerID = Orders.CustomerID 
        WHERE Customers.CustomerID = @CustomerID
    

    Resync メソッドで次のストアド プロシージャを実行します。

        CREATE PROC CustordersResync @ordid int AS 
        SELECT * FROM Customers JOIN Orders ON 
        Customers.CustomerID = Orders.CustomerID
        WHERE Orders.ordid  = @ordid
    

    Resync Command プロパティは次のように設定されます。

    "{call CustordersResync (?)}"

ここでも、Unique TableOrders であり、その主キー OrderID はパラメーター化されています。

Resync Command は、CursorLocation プロパティを adUseClient に設定するときに、Recordset オブジェクトの Properties コレクションに追加される動的プロパティです。