Clone メソッド (ADO)

適用先: Access 2013、Office 2013

既存の Recordset オブジェクトから Recordset オブジェクトの複製を作成します。 必要に応じて、複製を読み取り専用に指定できます。

構文

rstDuplicate = rstOriginal を設定します。Clone (LockType)

戻り値

Recordset オブジェクトの参照を返します。

パラメーター

パラメーター 説明
rstDuplicate 作成する Recordset オブジェクトの複製を示すオブジェクト変数です。
rstOriginal 複製元の Recordset オブジェクトを示すオブジェクト変数です。
Locktype 省略可能です。 複製元 Recordset のロックの種類にするか、または読み取り専用 Recordset にするかを指定する、 LockTypeEnum の値です。 有効な値は、adLockUnspecified または adLockReadOnly です。

注釈

Clone メソッドを使用して、複数の重複する Recordset オブジェクトを作成します。特に、特定のレコード セットに複数の現在のレコードを保持する場合。 Clone メソッドを使用する方が、元のと同じ定義で新しい Recordset オブジェクトを作成して開くよりも効率的です。

元の RecordsetFilter プロパティが設定されていても、複製には適用されません。 結果をフィルターするには、新しい RecordsetFilter プロパティを設定する必要があります。 既存の Filter 値をコピーする最も簡単な方法は、

のように値を直接代入することです。

1 つの Recordset オブジェクトに加えた変更は、カーソルの種類に関係なく、すべての複製で表示できます。 ただし、複製元の RecordsetRequery を実行した後は、複製は複製元の Recordset とは同期しなくなります。

複製元の Recordset を閉じても、その複製は開いたままです。また、1 つの複製を閉じても、複製元または他の複製は開いたままになります。

複製できるのは、ブックマークをサポートする Recordset オブジェクトのみです。 ブックマーク値は交換可能です。つまり、1 つの Recordset オブジェクトからのブックマーク参照は、その複製内の同じレコードを参照します。

発生する Recordset イベントの中には、すべての Recordset 複製において発生するものがあります。 ただし、複製された Recordset によってカレント レコードが異なる可能性があるため、複製ではイベントが無効である場合もあります。

たとえば、あるフィールドの値を変更すると、変更された Recordset とすべての複製で、 WillChangeField イベントが発生します。 複製された (変更されていない) RecordsetWillChangeField イベントの Fields パラメーターは、その複製のカレント レコードのフィールドを参照するだけであり、変更が発生した元の Recordset のカレント レコードとは異なる可能性があります。

次の表は、すべての Recordset イベントの一覧と、Clone メソッドを使用して生成されたすべてのレコードセット複製に対してそのイベントが有効で発生するかどうかを示しています。

イベント

複製で発生するか

EndOfRecordset

不要

FetchComplete

不要

FetchProgress

不要

FieldChangeComplete

はい

MoveComplete

不要

RecordChangeComplete

はい

RecordsetChangeComplete

不要

WillChangeField

はい

WillChangeRecord

はい

WillChangeRecordset

不要

WillMove

いいえ