Властивість Recordset

Застосовується до:

Об’єкт ComboBox

Об’єкт Form

Об’єкт ListBox

Об’єкт Report

Повертає або задає об’єкт ADO Recordset або DAO Recordset, який представляє джерело записів указаної форми, звіту, елемента керування "Список" чи "Поле зі списком". Читання й записування.

вираз.Recordset

вираз – обов’язковий елемент. Вираз, який повертає один з об’єктів зі списку "Застосовується до".

Примітки

Властивість Recordset повертає об’єкт Recordset, який надає дані з форми, звіту, елемента керування "Список" чи "Поле зі списком". Якщо форму створено на основі запиту, посилання на властивість Recordset, наприклад, рівносильне клонуванню об’єкта Recordset за допомогою того самого запиту. Проте на відміну від властивості RecordsetClone, якщо змінити запис, який має повернути властивість Recordset форми з набору, установлюється також поточний запис форми.

Цю властивість можна встановити лише за допомогою коду Visual Basic for Applications (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).

Якщо форму зв’язано з набором записів, команда фільтрування за формою завершується помилкою.

Приклад

У прикладі нижче властивість 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 дають змогу синхронізувати набір даних із поточним записом форми. Коли ви вибираєте в полі зі списком назву компанії, метод 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
Отримуйте нові функції раніше за інших
Приєднайтеся до оцінювачів Office

Ця інформація корисна?

Дякуємо за ваш відгук!

Дякуємо за відгук! Схоже, вам може стати в нагоді допомога одного з наших спеціалістів служби підтримки Office, з яким ми вас можемо з’єднати.

×