Compartir a través de


Método Clone (ADO)

Se aplica a: Access 2013, Office 2013

Crea un objeto Recordset duplicado a partir de un objeto Recordset existente. Opcionalmente, especifica que el duplicado es de solo lectura.

Sintaxis

EstablezcarstDuplicate = rstOriginal. Clone (LockType)

Valor devuelto

Devuelve una referencia al objeto Recordset.

Parámetros

Parámetro Descripción
rstDuplicate Una variable de objeto que identifica el objeto Recordset duplicado que se creará.
rstOriginal Una variable de objeto que identifica el objeto Recordset duplicado.
LockType Opcional. Valor de LockTypeEnum que especifica el tipo de bloqueo del objeto Recordset original, o bien un Recordset de sólo lectura. Los valores válidos son adLockUnspecified o adLockReadOnly.

Comentarios

Use el método Clone para crear varios objetos Recordset duplicados, sobre todo si desea mantener más de un registro actual en un conjunto determinado de registros. El método Clone es más eficaz que crear y abrir un nuevo objeto Recordset con la misma definición que el original.

La propiedad Filter del objeto Recordset original, si hay alguna, no se aplicarán a la copia. Establezca la propiedad Filter del nuevo objeto Recordset para filtrar los resultados. La forma más sencilla para copiar cualquier valor de filtro existente es asignarlo directamente, similar a la siguiente:

El registro actual de un clon recién creado se establece en el primer registro.

Los cambios realizados en un objeto Recordset se ven en todos sus duplicados, independientemente del tipo de cursor. Sin embargo, después de ejecutar Requery en el objeto Recordset original, los duplicados ya no estarán sincronizados con el original.

Al cerrar el objeto Recordset original, no se cierran sus copias; como tampoco se cierra el original ni ninguna de las demás copias al cerrarse una copia.

Sólo se puede duplicar un objeto Recordset que admite marcadores. Los valores de marcador son intercambiables; es decir, una referencia de marcador de un objeto Recordset hace referencia al mismo registro en todos sus duplicados.

Algunos de los eventos de Recordset también se desencadenan en todos los duplicados de Recordset. Sin embargo, dado que el registro actual puede diferir entre clonada conjuntos de registros, los eventos no sea válidos para el duplicado.

Por ejemplo, si cambia un valor de un campo, se producirá un evento WillChangeField en el objeto Recordset modificado y en todos los duplicados. El parámetro Fields del evento WillChangeField de un objeto Recordset clonado (donde no se realizó el cambio) simplemente hará referencia a los campos del registro actual del clon, que pueden ser un registro diferente al registro actual del objeto Recordset original donde se produjo el cambio.

La siguiente tabla recoge una lista completa de todos los eventos de conjunto de registros y se indica si son válidas y desencadenadas para cualquier generados mediante el método Clone los duplicados de recordset.

Evento

¿Se desencadena en los duplicados?

EndOfRecordset

No

FetchComplete

No

FetchProgress

No

FieldChangeComplete

MoveComplete

No

RecordChangeComplete

RecordsetChangeComplete

No

WillChangeField

WillChangeRecord

WillChangeRecordset

No

WillMove

No