Partager via


Clone, méthode (ADO)

Crée un objet Recordset en double à partir d’un objet Recordset existant. Si vous le souhaitez, spécifie que le clone doit être en lecture seule.

Syntaxe

  
Set rstDuplicate = rstOriginal.Clone (LockType)  

Valeur de retour

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

Paramètres

rstDuplicate
Variable d’objet qui identifie l’objet Recordset en double à créer.

rstOriginal
Variable d’objet qui identifie l’objet Recordset à dupliquer.

LockType
facultatif. Une valeur LockTypeEnum qui spécifie soit le type de verrouillage du Recordset original, soit un Recordset en lecture seule. Les valeurs valides sont adLockUnspecified et adLockReadOnly.

Notes

Utilisez la méthode Clone pour créer plusieurs objets Recordset en double, en particulier si 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 objet Recordset qui utilise la même définition que l’original.

La propriété Filter du Recordset original, le cas échéant, ne sera pas appliquée au clone. Définissez la propriété Filter du nouvel objet Recordset pour filtrer les résultats. La façon la plus simple de copier n’importe quelle valeur Filter existante consiste à l’affecter directement, comme suit.

rsNew.Filter = rsOriginal.Filter  

L’enregistrement actuel d’un clone nouvellement créé est défini sur le premier enregistrement.

Les modifications apportées à un objet Recordset sont visibles dans tous ses clones, quel que soit le type de curseur. Cependant, après avoir exécuté Requery sur le Recordset original, les clones ne seront plus synchronisés avec l’original.

La fermeture du Recordset original ne ferme pas ses copies, et la fermeture d’une copie ne ferme pas l’original ni aucune des autres copies.

Vous ne pouvez cloner qu’un objet Recordset qui prend en charge les signets. Les valeurs de signet sont interchangeables ; autrement dit, une référence de signet d’un objet Recordset fait référence au même enregistrement dans l’un de ses clones.

Certains événements de Recordset qui sont déclenchés se produiront également dans tous les clones de Recordset. Cependant, comme l’enregistrement actuel peut différer entre les Recordset clonés, les événements peuvent ne pas être valides pour le clone. Par exemple, si vous modifiez une valeur d’un champ, un événement WillChangeField se produit dans l’objet Recordset modifié et dans tous les clones. Le paramètre Fields de l’événement WillChangeField d’un Recordset cloné (où la modification n’a pas été apportée) fait référence aux champs de l’enregistrement actif du clone, qui peut être un enregistrement différent de l’enregistrement actuel de l’objet Recordset d’origine où la modification s’est produite.

Le tableau suivant fournit une liste complète de tous les événements Recordset. Il indique s’ils sont valides et déclenchés pour tous les clones de recordset générés à l’aide de la méthode Clone.

Événement Déclenché dans les clones ?
EndOfRecordset Non
FetchComplete Non
FetchProgress Non
FieldChangeComplete Oui
MoveComplete Non
RecordChangeComplete Oui
RecordsetChangeComplete Non
WillChangeField Oui
WillChangeRecord Oui
WillChangeRecordset Non
WillMove Non

S'applique à

Recordset, objet (ADO)

Voir aussi

Clone, exemple de méthode (VB)
Clone, exemple de méthode (VBScript)
Clone, exemple de méthode (VC++)