Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
S’applique à : Access 2013, Office 2013
Crée un doublon d’objetRecordset qui fait référence à la cellule d’origine de l’objetRecordset.
Syntaxe
expression . Clone
expression Variable représentant un objet Recordset.
Valeur renvoyée
Recordset
Remarques
Utilisez la méthode Clone pour créer plusieurs objets Recordset dupliqués. Chaque objet Recordset peut avoir son propre enregistrement actif. L'utilisation de la seule méthode Clone ne modifie pas les données dans les objets ou leurs structures sous-jacentes. Lorsque vous utilisez la méthode Clone, vous pouvez partager des signets entre deux ou plusieurs objets Recordset dans la mesure où leurs signets sont interchangeables.
Vous pouvez utiliser la méthode Clone lorsque vous souhaitez effectuer une opération sur un objet Recordset qui nécessite plusieurs enregistrements actifs. Cette opération est plus rapide et plus efficace que l’ouverture d’un deuxième recordset. Lorsque vous créez un objet Recordset avec la méthode Clone , il manque initialement un enregistrement actif. Pour rendre un enregistrement à jour avant d’utiliser le clone Recordset, vous devez définir la propriété Bookmark ou utiliser l’une des méthodes Move, l’une des méthodes Findou Seek.
L'emploi de la méthode Close sur l'objet original ou dupliqué n'a aucune incidence sur l'autre objet. Ainsi, l'appel de la méthode Close sur l'objet Recordset d'origine ne ferme pas le clone.
Remarque
- Le fait de fermer un jeu d'enregistrements clone pendant une transaction en attente entraîne une opération Rollback implicite.
- Lorsque vous clonez un objet Recordset de type table dans un espace de travail Microsoft Access, la définition de la propriété Index n'est pas clonée dans la nouvelle copie du jeu d'enregistrements. Vous devez copier la définition de la propriété Index manuellement.
Exemple
Cet exemple utilise la méthode Clone pour créer des copies d'un objet Recordset puis permet à l'utilisateur de positionner le pointeur d'enregistrement de chaque copie indépendamment des autres.
Sub CloneX()
Dim dbsNorthwind As Database
Dim arstProducts(1 To 3) As Recordset
Dim intLoop As Integer
Dim strMessage As String
Dim strFind As String
Set dbsNorthwind = OpenDatabase("Northwind.mdb")
' If the following SQL statement will be used often,
' creating a permanent QueryDef will result in better
' performance.
Set arstProducts(1) = dbsNorthwind.OpenRecordset( _
"SELECT ProductName FROM Products " & _
"ORDER BY ProductName", dbOpenSnapshot)
' Create two clones of the original Recordset.
Set arstProducts(2) = arstProducts(1).Clone
Set arstProducts(3) = arstProducts(1).Clone
Do While True
' Loop through the array so that on each pass, the
' user is searching a different copy of the same
' Recordset.
For intLoop = 1 To 3
' Ask for search string while showing where the
' current record pointer is for each Recordset.
strMessage = _
"Recordsets from Products table:" & vbCr & _
" 1 - Original - Record pointer at " & _
arstProducts(1)!ProductName & vbCr & _
" 2 - Clone - Record pointer at " & _
arstProducts(2)!ProductName & vbCr & _
" 3 - Clone - Record pointer at " & _
arstProducts(3)!ProductName & vbCr & _
"Enter search string for #" & intLoop & ":"
strFind = Trim(InputBox(strMessage))
If strFind = "" Then Exit Do
' Find the search string; if there's no match, jump
' to the last record.
With arstProducts(intLoop)
.FindFirst "ProductName >= '" & strFind & "'"
If .NoMatch Then .MoveLast
End With
Next intLoop
Loop
arstProducts(1).Close
arstProducts(2).Close
arstProducts(3).Close
dbsNorthwind.Close
End Sub