Clone メソッド (ADO)Clone Method (ADO)

既存のレコードセットオブジェクトから、重複するレコードセットオブジェクトを作成します。Creates a duplicate Recordset object from an existing Recordset object. 必要に応じて、複製が読み取り専用であることを指定します。Optionally, specifies that the clone be read-only.

構文Syntax

  
Set rstDuplicate = rstOriginal.Clone (LockType)  

戻り値Return Value

レコードセットオブジェクト参照を返します。Returns a Recordset object reference.

パラメーターParameters

rstDuplicaterstDuplicate
作成される重複した レコードセット オブジェクトを識別するオブジェクト変数です。An object variable that identifies the duplicate Recordset object to be created.

rstOriginalrstOriginal
複製する レコードセット オブジェクトを識別するオブジェクト変数です。An object variable that identifies the Recordset object to be duplicated.

LockTypeLockType
省略可能。Optional. 元のレコードセットのロックの種類または読み取り専用のレコードセットを指定するlocktypeenum値。A LockTypeEnum value that specifies either the lock type of the original Recordset, or a read-only Recordset. 有効な値は、 Adlockunspecified または adlockunspecifiedです。Valid values are adLockUnspecified or adLockReadOnly.

解説Remarks

複数の重複したレコードセットオブジェクトを作成するには、 Cloneメソッドを使用します。特に、特定のレコードのセットに複数の現在のレコードを保持する場合に使用します。Use the Clone method to create multiple, duplicate Recordset objects, especially if you want to maintain more than one current record in a given set of records. Cloneメソッドを使用する方が、元のと同じ定義を使用する新しいレコードセットオブジェクトを作成して開くよりも効率的です。Using the Clone method is more efficient than creating and opening a new Recordset object that uses the same definition as the original.

元のレコードセット(存在する場合) のFilterプロパティは、複製には適用されません。The Filter property of the original Recordset, if any, will not be applied to the clone. 新しいレコードセットfilterプロパティを設定して、結果をフィルター処理します。Set the Filter property of the new Recordset to filter the results. 既存の フィルター 値をコピーする最も簡単な方法は、次のように、それを直接割り当てることです。The simplest way to copy any existing Filter value is to assign it directly, as follows.

rsNew.Filter = rsOriginal.Filter  

新しく作成された複製の現在のレコードは、最初のレコードに設定されます。The current record of a newly created clone is set to the first record.

1つの レコードセット オブジェクトに対して行った変更は、カーソルの種類に関係なく、すべての複製に表示されます。Changes you make to one Recordset object are visible in all of its clones regardless of cursor type. ただし、元のレコードセットに対して再クエリを実行すると、複製は元のレコードと同期されなくなります。However, after you execute Requery on the original Recordset, the clones will no longer be synchronized to the original.

元の レコードセット を閉じると、コピーが閉じられることはなく、コピーを終了しても、元のコピーまたは他のコピーを閉じることはできません。Closing the original Recordset does not close its copies, nor does closing a copy close the original or any of the other copies.

複製できるのは、ブックマークをサポートする レコードセット オブジェクトだけです。You can only clone a Recordset object that supports bookmarks. ブックマーク値は交換可能です。つまり、1つの レコードセット オブジェクトからのブックマーク参照は、その複製内の同じレコードを参照します。Bookmark values are interchangeable; that is, a bookmark reference from one Recordset object refers to the same record in any of its clones.

トリガーされる一部の レコードセット イベントは、すべての レコードセット の複製でも発生します。Some Recordset events that are triggered will also occur in all Recordset clones. ただし、複製されたレコード セット間で現在のレコードが異なる場合があるため、そのイベントは複製に対して有効ではない可能性があります。However, because the current record can differ between cloned Recordsets, the events may not be valid for the clone. たとえば、フィールドの値を変更すると、変更されたレコードセットとすべての複製でがchangefieldイベントが発生します。For example, if you change a value of a field, a WillChangeField event will occur in the changed Recordset and in all clones. 複製されたレコードセット(変更が行われていない) の " フィールド" パラメーターは、複製の現在のレコードのフィールドを参照します。これは、変更が発生した元のレコードセットの現在のレコードとは異なるレコードである可能性があります。The Fields parameter of the WillChangeField event of a cloned Recordset (where the change was not made) will refer to the fields of the current record of the clone, which may be a different record than the current record of the original Recordset where the change occurred.

次の表に、すべての レコードセット イベントの完全な一覧を示します。The following table provides a full listing of all Recordset events. Cloneメソッドを使用して生成されたレコードセット複製に対して有効でトリガーされるかどうかを示します。It indicates whether they are valid and triggered for any recordset clones generated by using the Clone method.

EventEvent 複製でトリガーされますか?Triggered in clones?
EndOfRecordsetEndOfRecordset いいえNo
FetchCompleteFetchComplete いいえNo
FetchProgressFetchProgress いいえNo
FieldChangeCompleteFieldChangeComplete はいYes
MoveCompleteMoveComplete いいえNo
RecordChangeCompleteRecordChangeComplete はいYes
RecordsetChangeCompleteRecordsetChangeComplete いいえNo
ChangefieldWillChangeField はいYes
ChangerecordWillChangeRecord はいYes
WillChangeRecordsetWillChangeRecordset いいえNo
移動WillMove いいえNo

適用対象Applies To

Recordset オブジェクト (ADO)Recordset Object (ADO)

参照See Also

Clone メソッドの例 (VB) Clone Method Example (VB)
Clone メソッドの例 (VBScript) Clone Method Example (VBScript)
Clone メソッドの例 (VC++)Clone Method Example (VC++)