Свойство Набор записей(Recordset)

Важно :  Данная статья переведена с помощью машинного перевода, см. Отказ от ответственности. Используйте английский вариант этой статьи, который находится здесь, в качестве справочного материала.

Применение

Объект «Поле со списком»

Объект «Форма»

Объект «Список»

Объект «Отчет»

Возвращает или задает объект ADO Recordset или DAO Recordset, который представляет собой источник записей для указанной формы, отчета, списка или поля со списком. Значение данного свойства доступно для чтения и записи.

выражение.Recordset

выражение Обязательное. Выражение, возвращающее один из объектов списка «Применение».

Замечания

Свойство Набор записей (Набор записей) возвращает объект набора записей, который является источником данных, просматриваемых в форме, отчете, списке или поле со списком. Если форма основана, например, на запросе, ссылка на свойство Набор записей (Recordset) эквивалентна клонированию объекта Recordset с помощью того же запроса. Однако в отличие от использования свойства Копия набора записей (RecordsetClone), назначение в качестве текущей другой записи в наборе записей, возвращаемом свойством Набор записей (Recordset) формы, также задает текущую запись этой формы.

Это свойство доступно только с помощью Visual Basic для приложений (VBA).

Доступность для чтения и записи свойства Набор записей (Recordset) определяется типом набора записей (ADO или DAO) и типом данных (Access или SQL), которые содержатся в наборе записей, определяемом данным свойством.

Набор записей Тип

На основе данных SQL

На основе данных Access

ADO

Чтение и запись

Чтение и запись

DAO

Не определен

Чтение и запись

В следующем примере производится открытие формы, открытие набора записей и затем присоединение формы к набору записей путем задания свойства Набор записей(Recordset) формы вновь созданному объекту Recordset.

Global rstSuppliers As ADODB.RecordsetSub MakeRW()DoCmd.OpenForm "Suppliers"Set rstSuppliers = New ADODB.RecordsetrstSuppliers.CursorLocation = adUseClientrstSuppliers.Open "Select * From Suppliers", _CurrentProject.Connection, adOpenKeyset, adLockOptimisticSet Forms("Suppliers").Recordset = rstSuppliersEnd Sub

Свойство Набор записей (Recordset) служит для следующих целей.

  • Связывание нескольких форм с общим набором данных. Это позволяет синхронизировать несколько форм. Например:

    Set Me.Recordset = Forms!Form1.Recordset

  • Использование методов, не имеющих непосредственной поддержки в формах, вместе с объектом Recordset. Например, свойство Набор записей(Recordset) можно использовать вместе с методами ADO Find или DAO Find в пользовательском диалоговом окне для поиска записи.

  • Перенос транзакции (для которой можно выполнить откат) по набору изменений, влияющих на несколько форм.

Изменение свойства Набор записей(Recordset) формы также может изменить свойства Источник записей(RecordSource), Тип набора записей(RecordsetType) и Блокировка записей(RecordLocks). Кроме того, некоторые связанные с данными свойства могут быть переопределены, например свойства Фильтр (Filter), Фильтр включен(FilterOn), Порядок сортировки(OrderBy) и Сортировка включена(OrderByOn).

Вызов метода Requery набора записей формы (например, Forms(0).Recordset.Requery) может привести к превращению формы в неприсоединенную. Чтобы обновить данные в форме, присоединенной к набору записей, следует задать для свойства Источник записей(RecordSource) формы само это свойство (Forms(0).RecordSource = Forms(0).RecordSource).

Если форма присоединена к набору записей, при использовании команды «Фильтр по форме (Filter by Form)» возникает ошибка.

Пример

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

Sub Print_Field_Names()
Dim rst As DAO.Recordset, intI As Integer
Dim fld As Field
Set rst = Me.Recordset
For Each fld in rst.Fields
' Print field names.
Debug.Print fld.Name
Next
End Sub

В следующем примере свойство Набор записей(Recordset) и объект Recordset используются для синхронизации набора записей с текущей записью формы. При выборе в поле со списком названия организации для поиска записи этой организации используется метод FindFirst, вызывающий отображение найденной записи в форме.

Sub SupplierID_AfterUpdate()
Dim rst As DAO.Recordset
Dim strSearchName As String
Set rst = Me.Recordset
strSearchName = CStr(Me!SupplierID)
rst.FindFirst "SupplierID = " & strSearchName
If rst.NoMatch Then
MsgBox "Record not found"
End If
rst.Close
End Sub

Следующая программа помогает определить, какой тип набора записей возвращает свойство Набор записей(Recordset) при разных условиях.

Sub CheckRSType()
Dim rs as Object
Set rs=Forms(0).Recordset
If TypeOf rs Is DAO.Recordset Then
MsgBox "DAO Recordset"
ElseIf TypeOf rs is ADODB.Recordset Then
MsgBox "ADO Recordset"
End If
End Sub

Примечание : Отказ от ответственности относительно машинного перевода. Данная статья была переведена с помощью компьютерной системы без участия человека. Microsoft предлагает эти машинные переводы, чтобы помочь пользователям, которые не знают английского языка, ознакомиться с материалами о продуктах, услугах и технологиях Microsoft. Поскольку статья была переведена с использованием машинного перевода, она может содержать лексические,синтаксические и грамматические ошибки.

Совершенствование навыков
Перейти к обучению
Первоочередный доступ к новым возможностям
Присоединиться к программе предварительной оценки Office

Были ли сведения полезными?

Спасибо за ваш отзыв!

Благодарим за отзыв! Возможно, будет полезно связать вас с одним из наших специалистов службы поддержки Office.

×