Перейти до основного
Підтримка
Вхід
Вхід за допомогою облікового запису Microsoft
Увійдіть або створіть обліковий запис.
Вітаємо,
Виберіть інший обліковий запис.
У вас є кілька облікових записів
Виберіть обліковий запис, за допомогою якого потрібно ввійти.

Стосується

Об’єкт ComboBox

Об’єкт Form

Об’єкт ListBox

Об’єкт Report

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

вираз.Recordset

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

Примітки

Властивість 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 і об'єкт 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. Ваш ІТ-адміністратор зможе збирати ці дані. Декларація про конфіденційність.

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

×