Поделиться через


Коллекция наборов записей (DAO)

Область применения: Access 2013, Office 2013

Коллекция Recordsets содержит все открытые объекты Recordset в объекте Connection или Database .

Замечания

Если вы используете интерфейс DAO, вы можете управлять данными практически полностью с помощью объектов Recordset.

Новый объект Recordset автоматически добавляется в коллекцию Recordsets при открытии объекта Recordset и автоматически удаляется при его закрытии.

Вы можете создать любое количество переменных объекта Recordset при необходимости. Различные объекты Recordset могут получать доступ к одним таблицам, запросам и полям без возникновения конфликта.

Чтобы сослаться на объект Recordset в коллекции по его порядковому номеру или по его свойствуName, используйте любую из следующих синтаксических форм:

  • Recordsets(0)

  • Recordsets("name")

  • Наборы записей! [имя]

Примечание.

Вы можете открыть объект Recordset из одного источника данных или базы данных несколько раз, создавая дублирующие имена в коллекции Recordsets. Вы должны назначить объекты Recordsets для переменных объекта и ссылаться на них по имени переменной.

Пример

В этом примере показаны объекты Recordset и коллекция Recordset с помощью открытия четырех разных типов Recordsets, перечисления коллекции Recordsets для текущего объекта Databaseи перечисления коллекции Properties для каждого объекта 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