Compartir a través de


Método Clone (ADO)

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

Sintaxis

  
Set rstDuplicate = rstOriginal.Clone (LockType)  

Valor devuelto

Devuelve una referencia de objeto Recordset .

Parámetros

rstDuplicate
Variable de objeto que identifica el objeto Recordset duplicado que se va a crear.

rstOriginal
Variable de objeto que identifica el objeto Recordset que se va a duplicar.

TipoDeBloqueo
Opcional. Valor LockTypeEnum que especifica el tipo de bloqueo del objeto Recordset original o un objeto Recordset de solo lectura. Los valores válidos son adLockUnspecified o adLockReadOnly.

Observaciones

Utilice el método Clone para crear múltiples objetos Recordset duplicados , especialmente si desea mantener más de un registro actual en un conjunto determinado de registros. El uso del método Clone es más eficaz que crear y abrir un nuevo objeto Recordset que use la misma definición que el original.

La propiedad Filter del objeto Recordset original, si existe, no se aplicará al clon. Establezca la propiedad Filter del nuevo objeto Recordset para filtrar los resultados. La manera más sencilla de copiar cualquier valor de filtro existente es asignarlo directamente, como se indica a continuación.

rsNew.Filter = rsOriginal.Filter  

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

Los cambios realizados en un objeto Recordset de están visibles en todos sus clones, independientemente del tipo de cursor. Sin embargo, después de ejecutar Requery en el recordset original de, los clones ya no se sincronizarán con el original.

Cerrar el Recordset original no cierra sus copias, ni cerrar una copia cierra el original ni ninguna de las otras copias.

Solo puede clonar un objeto Recordset que admita marcadores. Los valores de marcador son intercambiables; es decir, una referencia de marcador de un objeto Recordset hace referencia al mismo registro en cualquiera de sus clones.

Algunos eventos recordset que se desencadenan también se producirán en todos los clones del objeto Recordset . Sin embargo, dado que el registro actual puede diferir entre los conjuntos de registros clonados, es posible que los eventos no sean válidos para el clon. Por ejemplo, si cambia un valor de un campo, se producirá un evento WillChangeField en el objeto Recordset modificado y en todos los clones. El parámetro Fields del evento WillChangeField de un objeto Recordset clonado (donde no se realizó el cambio) hará referencia a los campos del registro actual del clon, que puede ser un registro diferente del registro actual del objeto Recordset original donde se produjo el cambio.

En la tabla siguiente se proporciona una lista completa de todos los eventos recordset . Indica si son válidos y se desencadenan para los clones del conjunto de registros generados mediante el método Clone .

Evento ¿Se desencadena en clones?
EndOfRecordset No
FetchComplete No
FetchProgress No
FieldChangeComplete
MoveComplete No
RecordChangeComplete
recordsetChangeComplete No
WillChangeField
WillChangeRecord
WillChangeRecordset No
willMove No

Se aplica a

objeto Recordset (ADO)

Véase también

Ejemplo del método Clone (VB)
Ejemplo del método Clone (VBScript)
Ejemplo del método Clone (VC++)