共用方式為


Clone方法(ADO)

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

語法

  
Set rstDuplicate = rstOriginal.Clone (LockType)  

傳回值

傳回 Recordset 對象參考。

參數

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

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

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

備註

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

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

rsNew.Filter = rsOriginal.Filter  

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

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

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

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

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

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

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

適用於

Recordset 物件 (ADO)

另請參閱

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