Clone 方法 (ADO)
從現有的 Recordset 物件建立重複的 Recordset 物件。 或者,指定複製品為唯讀。
語法
Set rstDuplicate = rstOriginal.Clone (LockType)
傳回值
傳回 Recordset 物件參考。
參數
rstDuplicate
此物件變數可識別要建立的重複 Recordset 物件。
rstOriginal
此物件變數可識別要複製的 Recordset 物件。
LockType
選擇性。 LockTypeEnum 值可指定原始 Recordset 的鎖定類型或唯讀 Recordset。 有效值為 adLockUnspecified 或 adLockReadOnly。
備註
使用 Clone 方法可建立多個重複的 Recordset 物件,尤其是如果您想要在一組指定的記錄中維護多筆目前記錄時。 使用 Clone 方法,比建立並開啟具有與原始相同定義的新 Recordset 物件更有效率。
原始 Recordset 的 Filter 屬性 (如果有的話) 將不會套用至複製品。 設定新 Recordset 的 Filter 屬性以篩選結果。 複製任何現有 Filter 值最簡單的方式是直接指派該值,如下所示。
rsNew.Filter = rsOriginal.Filter
新建立複製品的目前記錄最初會設定為第一筆記錄。
不論資料指標類型為何,您對一個 Recordset 物件所做的變更都會顯示在其所有複製品中。 不過,在原始 Recordset 上執行 Requery 之後,複製品將不再同步至原始版本。
關閉原始 Recordset 不會關閉其複本,關閉複本也不會關閉原始資料錄集或其他任何複本。
只有在 Recordset 物件支援書籤時,才能複製該物件。 書籤值可互換;也就是說,來自一個 Recordset 物件的書籤參考會參考其任何複製品中的相同記錄。
觸發的某些 Recordset 事件也會發生在所有 Recordset 複製品中。 不過,因為目前記錄在複製的 Recordsets 之間可能會有所不同,所以事件對複製品而言可能無效。 例如,如果您變更欄位值,將會在變更的 Recordset 和所有複製品中發生 WillChangeField 事件。 複製的 Recordset 的 WillChangeField 事件的 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 |