Отнася се за
Access за Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

Отнася се за

Обект ComboBox

Обект Form

Обект ListBox

Обект Report

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

израз.Recordset

израз Задължително. Израз, който връща един от обектите в списъка "Отнася се за".

Забележки

Свойството Recordset връща обекта набор записи, който предоставя данните, преглеждани във формуляр, отчет, списъчно поле или контрола на разгъващ се списък. Ако формулярът например се базира на заявка, препратката към свойството Recordset е еквивалентна на клониране на обект Recordset с помощта на същата заявка. За разлика от използването на свойството RecordsetClone обаче, промяната на това кой е текущият запис, връщан от свойството на формуляра Recordset, също задава текущия запис на формуляра.

Това свойство е налично само с помощта на код за Visual Basic for Applications (VBA).

Поведението при четене/запис на свойството Набор записи се определя от типа на набора записи (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

Използване на свойството Набор записи:

  • За свързване на няколко на брой формуляри към общ набор от данни. Това позволява синхронизиране на множество формуляри. Например

    Set Me.Recordset = Forms!Form1.Recordset

  • За да използвате с обект Набор записи методи, които не се поддържат директно във формуляри. Например можете да използвате свойството Recordset за намиране на запис с методи ADO Find или DAO Find в диалогов прозорец по избор.

  • За да обхванете в транзакция (чието действие може да бъде анулирано) набор от редакционни промени, засягащи множество формуляри.

Промяната на свойство Набор записи на формуляр също може да промени свойствата 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    NextEnd 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.CloseEnd Sub

Следващият код ви помага да определите какъв тип запис е върнат от свойството Набор записи при различни условия.

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 IfEnd Sub

Нуждаете ли се от още помощ?

Искате ли още опции?

Разгледайте ползите от абонамента, прегледайте курсовете за обучение, научете как да защитите устройството си и още.