Compartir a través de


Colección Recordsets (DAO)

Se aplica a: Access 2013, Office 2013

Una colección Recordsets contiene todos los objetos Recordset abiertos en un objeto Connection o Database.

Comentarios

Cuando se utilizan objetos de DAO, los datos se tratan casi siempre mediante objetos Recordset.

Un objeto Recordset nuevo se agrega automáticamente a la colección Recordsets cuando se abre el objeto Recordset y se quita automáticamente cuando se cierra.

Se pueden crear tantas variables del objeto Recordset como sean necesarias. Diferentes objetos Recordset pueden tener acceso a las mismas tablas, consultas y campos sin entrar en conflicto.

Para hacer referencia a un objeto Recordset de una colección por su número ordinal o el valor de su propiedad Name, utilice cualquiera de las siguientes formas de sintaxis:

  • Recordsets(0)

  • Recordsets("nombre")

  • ¡Conjuntos de registros! [nombre]

Nota:

[!NOTA] Se puede abrir un objeto Recordset desde el mismo origen de datos o base de datos más de una vez, con lo que se crean nombres duplicados en la colección Recordsets. Debe asignar objetos Recordset a variables de objeto y hacer referencia a ellos por el nombre de la variable.

Ejemplo

A continuación se ofrece una demostración de objetos Recordset y la colección Recordsets. En este ejemplo, se abren cuatro tipos diferentes de objetos Recordsets, se enumera la colección Recordsets del objeto Database actual y se enumera la colección Properties de cada objeto 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