Clone

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

構文

Set rstDuplicate = rstOriginal.Clone (LockType)

パラメータ

rstDuplicate
作成する Recordset オブジェクトの複製を表すオブジェクト変数を指定します。
rstOriginal
複製元の Recordset オブジェクトを表すオブジェクト変数を指定します。
LockType
省略可能です。複製元の Recordset オブジェクトのロックの種類を適用するか、または読み取り専用にするかを LockTypeEnum 値で指定します。有効な値は、adLockUnspecified または adLockReadOnly です。

説明

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

元の Recordset オブジェクトの Filter プロパティは、クローンには適用されません。結果をフィルタするには、新しい Recordset の Filter プロパティを設定します。既存の Filter 値をコピーする最も簡単な方法は、次のように値を直接代入することです。(rsNew.Filter = rsOriginal.Filter)

作成したクローンのカレント レコードは、最初のレコードに設定されます。

1 つの Recordset オブジェクトに加えた変更は、カーソルの種類にかかわらず、すべてのクローンで参照できます。ただし、複製元の Recordset オブジェクトで Requery を実行した後は、クローンは複製元の Recordset オブジェクトと同期しなくなります。

複製元の Recordset を閉じても、そのクローンは開いたままです。また、クローンを閉じても、複製元またはほかのクローンは開いています。

ブックマークをサポートする Recordset オブジェクトだけがクローンを作成できます。ブックマークの値は共通です。したがって、1 つの Recordset オブジェクトのブックマークで、すべてのクローンの同じレコードを参照できます。

発生した Recordset イベントは、すべての Recordset クローンでも発生します。ただし、複製された Recordset 間でカレント レコードが異なる可能性があるため、クローンではそのイベントが無効である場合もあります。たとえば、1 つのフィールドの値を変更すると、変更された Recordset とすべてのクローンで WillChangeField イベントが発生します。変更された Recordset の WillChangeField の Fields パラメータは変更された正しいフィールドを返しますが、複製された Recordset の Fields パラメータではそうならない場合があります。複製された (変更されていない) Recordset の WillChangeField イベントの Fields パラメータは、単にそのクローンのカレント レコードのフィールドを参照するだけであり、そのレコードは、変更が発生した元の Recordset のカレント レコードとは異なる可能性があります。