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 のカレント レコードとは異なる可能性があります。