Clone 方法 (ADO)

從現有的 Recordset 物件建立重複的 Recordset 物件。 或者,指定複製品為唯讀。

語法

  
Set rstDuplicate = rstOriginal.Clone (LockType)  

傳回值

傳回 Recordset 物件參考。

參數

rstDuplicate
此物件變數可識別要建立的重複 Recordset 物件。

rstOriginal
此物件變數可識別要複製的 Recordset 物件。

LockType
選擇性。 LockTypeEnum 值可指定原始 Recordset 的鎖定類型或唯讀 Recordset。 有效值為 adLockUnspecifiedadLockReadOnly

備註

使用 Clone 方法可建立多個重複的 Recordset 物件,尤其是如果您想要在一組指定的記錄中維護多筆目前記錄時。 使用 Clone 方法,比建立並開啟具有與原始相同定義的新 Recordset 物件更有效率。

原始 RecordsetFilter 屬性 (如果有的話) 將不會套用至複製品。 設定新 RecordsetFilter 屬性以篩選結果。 複製任何現有 Filter 值最簡單的方式是直接指派該值,如下所示。

rsNew.Filter = rsOriginal.Filter  

新建立複製品的目前記錄最初會設定為第一筆記錄。

不論資料指標類型為何,您對一個 Recordset 物件所做的變更都會顯示在其所有複製品中。 不過,在原始 Recordset 上執行 Requery 之後,複製品將不再同步至原始版本。

關閉原始 Recordset 不會關閉其複本,關閉複本也不會關閉原始資料錄集或其他任何複本。

只有在 Recordset 物件支援書籤時,才能複製該物件。 書籤值可互換;也就是說,來自一個 Recordset 物件的書籤參考會參考其任何複製品中的相同記錄。

觸發的某些 Recordset 事件也會發生在所有 Recordset 複製品中。 不過,因為目前記錄在複製的 Recordsets 之間可能會有所不同,所以事件對複製品而言可能無效。 例如,如果您變更欄位值,將會在變更的 Recordset 和所有複製品中發生 WillChangeField 事件。 複製的 RecordsetWillChangeField 事件的 Fields 參數 (未進行變更) 將參考複製品目前記錄的欄位,這可能與發生變更的原始 Recordset 的目前記錄不同。

下表提供所有 Recordset 事件的完整清單。 它會指出它們是否有效,並且針對使用 Clone 方法所產生的任何記錄集複製品觸發。

事件 在複製品中觸發?
EndOfRecordset No
FetchComplete No
FetchProgress No
FieldChangeComplete Yes
MoveComplete No
RecordChangeComplete Yes
RecordsetChangeComplete No
WillChangeField Yes
WillChangeRecord Yes
WillChangeRecordset No
WillMove No

套用至

Recordset 物件 (ADO)

另請參閱

Clone 方法範例 (VB)
Clone 方法範例 (VBScript)
Clone 方法範例 (VC++)