Clone方法(ADO)

從現有的 recordset Recordset 物件建立重複 Recordset 物件。 選擇性地指定複製品是唯讀的。

語法

  
Set rstDuplicate = rstOriginal.Clone (LockType)  

傳回值

傳回 Recordset 對象參考。

參數

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

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

鎖定類型
選擇性。 LockTypeEnum 值,指定原始 Recordset 或唯讀 Recordset 的鎖定類型。 有效值為 adLockUnspecified 或 adLockReadOnly。

備註

使用 Clone 方法來建立多個重複的 資料集 物件,尤其是當您需要在某個資料集中保持多個當前記錄時。 使用 Clone 方法比建立和開啟使用與原始相同定義的新 Recordset 物件更有效率。

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

rsNew.Filter = rsOriginal.Filter  

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

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

關閉原始 Recordset 不會關閉其副本,關閉一個副本也不會關閉原始或任何其他副本。

您只能複製支援書籤的 Recordset 物件。 書籤值可互換;也就是說,來自一個 Recordset 對象的書籤參考會參考其任何復本中的相同記錄。

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

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

事件 在複製中觸發?
EndOfRecordset 否
FetchComplete 否
FetchProgress 否
FieldChangeComplete 是的
MoveComplete 否
RecordChangeComplete 是的
RecordsetChangeComplete 否
WillChangeField 是的
WillChangeRecord 是的
WillChangeRecordset 否
WillMove 否

適用於

Recordset 物件 (ADO)

另請參閱

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