克隆方法 (ADO)
适用于:Access 2013、Office 2013
用于从现有 Recordset 对象创建重复的 Recordset 对象。 还可以指定克隆为只读状态。
语法
设置rstDuplicate = rstOriginal。克隆 (LockType)
返回值
返回 Recordset 对象引用。
参数
参数 | 说明 |
---|---|
rstDuplicate | 一个标识要创建的重复 Recordset 对象的对象变量。 |
rstOriginal | 对象变量,用于标识要重复的 Recordset 对象。 |
LockType | 可选。 LockTypeEnum 值,用于指定原始 Recordset 或只读 Recordset 的锁类型。 有效值为 adLockUnspecified 或 adLockReadOnly。 |
备注
可以使用 Clone 方法创建多个重复的 Recordset 对象,尤其是要在给定记录集中保留多个当前记录时。 使用 Clone 方法比采用与原始对象相同的定义创建和打开一个新的 Recordset 对象效率更高。
原始 Recordset 的 Filter 属性(如果有)不适用于克隆。 可以为新的 Recordset 设置 Filter 属性,以筛选结果。 要复制任何现有的 Filter 值,最简单的方法是直接为其赋值,如下所示:
新创建克隆的当前记录设置为第一条记录。
无论游标类型是什么,对一个 Recordset 对象所做的更改可以在该对象的所有副本中体现出来。 但是,对原始 Recordset 对象执行 Requery 后,副本将不再与原始对象同步。
关闭原始 Recordset 不会关闭其副本,同样,关闭副本也不会关闭原始对象或其他任何副本。
只能克隆支持书签的 Recordset 对象。 书签值是可以互换的;即,一个 Recordset 对象中的书签引用可以引用其任何副本中的同一个记录。
触发的某些 Recordset 事件也将在所有 Recordset 克隆中激发。 不过,由于克隆的 Recordset 之间的当前记录不同,对于某些克隆而言事件可能无效。
例如,如果更改字段值,则在更改的 Recordset 和所有克隆中都将发生 WillChangeField 事件。 克隆的 Recordset(未进行更改)的 WillChangeField 事件的 Fields 参数只是指克隆的当前记录的字段,该记录可能与发生更改的原始 Recordset 的当前记录不同。
下表提供了所有 Recordset 事件的完整列表,并指示这些事件是否有效和对于用 Clone 方法生成的任何记录集克隆是否会触发这些事件。
事件 |
是否在克隆中触发? |
---|---|
否 |
|
否 |
|
否 |
|
是 |
|
否 |
|
是 |
|
否 |
|
是 |
|
是 |
|
否 |
|
否 |