Властивість Набір записів (Recordset)

Увага! : Цю статтю перекладено за допомогою служби машинного перекладу; див. застереження. Версію цієї статті англійською мовою див. тут для отримання довідки.

Застосування

Об’єкт «Поле зі списком» (ComboBox)

Об’єкт «Форма»

Об’єкт «Список»

Об’єкт «Звіт»

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

вираз.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 з поточної форми та друку імен полів у вікні «Debug».

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. Оскільки статтю перекладено за допомогою служби машинного перекладу, вона може містити смислові, синтаксичні або граматичні помилки.

Отримуйте нові функції раніше за інших
Приєднайтеся до оцінювачів Office

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

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

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

×