次の方法で共有


Clone メソッド (ADO)

既存の Recordset オブジェクトからレコードセット オブジェクト 複製を作成します。 必要に応じて、複製が読み取り専用であることを指定します。

構文

  
Set rstDuplicate = rstOriginal.Clone (LockType)  

戻り値

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

パラメーター

rstDuplicate
作成する Recordset オブジェクト 重複するオブジェクトを識別するオブジェクト変数。

rstOriginal
重複する Recordset オブジェクトを識別するオブジェクト変数。

LockType
随意。 元の Recordsetのロックの種類、またはレコードセット の読み取り専用を指定する LockTypeEnum 値です。 有効な値は、adLockUnspecified または adLockReadOnly です。

備考

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

元の RecordsetFilter プロパティ (存在する場合) は、複製には適用されません。 新しい RecordsetFilter プロパティを設定して、結果をフィルター処理します。 既存の Filter 値をコピーする最も簡単な方法は、次のように直接割り当てることです。

rsNew.Filter = rsOriginal.Filter  

新しく作成された複製の現在のレコードは、最初のレコードに設定されます。

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

元の Recordset を閉じても、コピーを閉じても元のコピーやその他のコピーを閉じません。

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

トリガーされる一部の Recordset イベントは、すべての Recordset 複製でも発生します。 ただし、現在のレコードは複製 Recordsetsによって異なる可能性があるため、複製に対してイベントが有効でない可能性があります。 たとえば、フィールドの値を変更すると、WillChangeField イベントは、変更された Recordset およびすべてのクローンで発生します。 複製された RecordsetWillChangeField イベントの パラメーター フィールドは、複製の現在のレコードのフィールドを参照します。これは、変更が発生した元の Recordset の現在のレコードとは異なるレコードである可能性があります。

次の表に、すべての Recordset イベントの完全な一覧を示します。 Clone メソッドを使用して生成されたレコードセットクローンに対して有効でトリガーされるかどうかを示します。

出来事 クローンでトリガーされますか?
EndOfRecordset いいえ
FetchComplete する いいえ
FetchProgress いいえ
FieldChangeComplete はい
MoveComplete いいえ
RecordChangeComplete はい
RecordsetChangeComplete いいえ
WillChangeField する はい
WillChangeRecord はい
WillChangeRecordset する いいえ
WillMove する いいえ

適用対象

Recordset オブジェクト (ADO)

関連項目

Clone メソッドの使用例 (VB)
Clone メソッドの使用例 (VBScript)
Clone メソッドの使用例 (VC++)