Partager via


Clone, méthode (ADO)

S’applique à : Access 2013, Office 2013

Crée une copie de l'objet Recordset à partir d'un objet Recordset existant. Spécifie éventuellement que le clone doit être en lecture seule.

Syntaxe

DéfinissezrstDuplicate = rstOriginal. Clone (LockType)

Valeur renvoyée

Retourne une référence d'objet Recordset.

Paramètres

Paramètre Description
rstDuplicate Variable objet qui identifie la copie de l'objet Recordset à créer.
rstOriginal Variable objet qui identifie l'objet Recordset à dupliquer.
LockType Facultatif. Valeur LockTypeEnum qui spécifie le type de verrou de l'objet Recordset d'origine ou un objet Recordset en lecture seule. Les valeurs valides sont adLockUnspecified ou adLockReadOnly.

Remarques

Utilisez la méthode Clone pour créer plusieurs objets Recordset dupliqués, notamment dans le cas où vous souhaitez conserver plusieurs enregistrements actifs dans un jeu d'enregistrements donné. L'utilisation de la méthode Clone est plus efficace que la création et l'ouverture d'un nouvel objet Recordset avec la même définition que l'original.

Si elle existe, la propriété Filter de l'objet Recordset d'origine, n'est pas appliquée au clone. Définissez la propriété Filter du nouvel objet Recordset afin de filtrer les résultats. Le moyen le plus simple de copier une valeur Filter existante consiste à l'affecter directement de cette façon :

L'enregistrement actif du clone que vous venez de créer correspond au premier enregistrement.

Les modifications apportées à un objet Recordset apparaissent dans tous ses clones, quel que soit le type de curseur utilisé. Toutefois, après l'exécution de la méthode Requery sur l'objet Recordset d'origine, les clones ne sont plus synchronisés avec l'original.

De même que la fermeture de l'objet Recordset d'origine ne ferme pas ses clones, la fermeture d'un clone ne ferme pas l'original ni aucune autre copie.

Vous ne pouvez cloner qu'un objet Recordset prenant en charge les signets. Les valeurs de signet sont interchangeables ; cela signifie qu'une référence de signet d'un objet Recordset renvoie au même enregistrement dans l'un de ses clones.

Some Recordset events that are triggered will also fire in all Recordset clones. However, because the current record can differ between cloned Recordsets, the events may not be valid for the clone.

Par exemple, si vous modifiez la valeur d'un champ, un événement WillChangeField est déclenché au niveau de l'objet Recordset modifié et de tous ses clones. Le paramètre Fields de l’événement WillChangeField d’un objet Recordset cloné (qui, lui, n’a pas été modifié) référencera simplement les champs de l’enregistrement actif du clone, qui peut correspondre à un enregistrement différent de celui de l’objet Recordset d’origine au niveau duquel la modification a été appliquée.

Le tableau suivant répertorie tous les événements Recordset et indique s'ils sont valides et s'ils sont déclenchés pour tous les clones de l'objet Recordset générés à l'aide de la méthode Clone.

Événement

Déclenché au niveau des clones ?

EndOfRecordset

Non

FetchComplete

Non

FetchProgress

Non

FieldChangeComplete

Oui

MoveComplete

Non

RecordChangeComplete

Oui

RecordsetChangeComplete

Non

WillChangeField

Oui

WillChangeRecord

Oui

WillChangeRecordset

Non

WillMove

Non