Partager via


Recordsets collection (DAO)

S’applique à : Access 2013, Office 2013

Une collection Recordsets contient tous les objets Recordset ouverts, dans un objet Connection ou Database.

Remarques

Lorsque vous utilisez des objets DAO, vous manipulez les données presque exclusivement à l'aide des objets Recordset.

Un objet Recordset est automatiquement ajouté à la collection Recordsets lorsque vous ouvrez l'objet Recordset et supprimé lorsque vous le fermez.

Vous pouvez créer autant de variables d'objet Recordset que vous le souhaitez. Des objets Recordset différents peuvent accéder aux mêmes tables, requêtes et champs sans créer de conflits.

Pour faire référence à un objet Recordset dans une collection par son nombre ordinal ou par son paramètre de propriété Name, utilisez l’une des formes de syntaxe suivantes :

  • Recordsets(0)

  • Recordsets(«nom»)

  • Recordsets ! [name]

Remarque

[!REMARQUE] Vous pouvez ouvrir plusieurs fois un objet Recordset à partir de la même source de données ou base de données en créant des noms en double dans la collection Recordsets. Vous devez attribuer des objets Recordset aux variables d’objet et y faire référence par un nom de variable.

Exemple

L'exemple ci-dessous illustre les objets Recordset et la collection Recordsets en ouvrant quatre types d'objet Recordsets différents, en énumérant la collection Recordsets de l'objet Database actif et en énumérant la collection Properties de chaque objet Recordset.

    Sub RecordsetX() 
     
     Dim dbsNorthwind As Database 
     Dim rstTable As Recordset 
     Dim rstDynaset As Recordset 
     Dim rstSnapshot As Recordset 
     Dim rstForwardOnly As Recordset 
     Dim rstLoop As Recordset 
     Dim prpLoop As Property 
     
     Set dbsNorthwind = OpenDatabase("Northwind.mdb") 
     
     With dbsNorthwind 
     
     ' Open one of each type of Recordset object. 
     Set rstTable = .OpenRecordset("Categories", _ 
     dbOpenTable) 
     Set rstDynaset = .OpenRecordset("Employees", _ 
     dbOpenDynaset) 
     Set rstSnapshot = .OpenRecordset("Shippers", _ 
     dbOpenSnapshot) 
     Set rstForwardOnly = .OpenRecordset _ 
     ("Employees", dbOpenForwardOnly) 
     
     Debug.Print "Recordsets in Recordsets " & _ 
     "collection of dbsNorthwind" 
     
     ' Enumerate Recordsets collection. 
     For Each rstLoop In .Recordsets 
     
     With rstLoop 
     Debug.Print " " & .Name 
     
     ' Enumerate Properties collection of each 
     ' Recordset object. Trap for any 
     ' properties whose values are invalid in 
     ' this context. 
     For Each prpLoop In .Properties 
     On Error Resume Next 
     If prpLoop <> "" Then Debug.Print _ 
     " " & prpLoop.Name & _ 
     " = " & prpLoop 
     On Error GoTo 0 
     Next prpLoop 
     
     End With 
     
     Next rstLoop 
     
     rstTable.Close 
     rstDynaset.Close 
     rstSnapshot.Close 
     rstForwardOnly.Close 
     
     .Close 
     End With 
     
    End Sub