|
|||||||
Свойство Recordset (Набор записей)
Время создания: 03.04.2020 23:04
Текстовые метки: Recordset
Раздел: Разные закладки - VBA - Array - Recordset
Запись: xintrea/mytetra_db_adgaver_new/master/base/1585944261zh1n9oxvbc/text.html на raw.githubusercontent.com
|
|||||||
|
|||||||
Свойство Recordset (Набор записей) Access для Office 365 Access 2019 Access 2016 Access 2013 Access 2010 Access 2007 Применение Объект ComboBox Объект Form Объект ListBox Объект Report Возвращает или задает объект 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.Recordset Sub MakeRW() DoCmd.OpenForm "Suppliers"Set rstSuppliers = New ADODB.Recordset rstSuppliers.CursorLocation = adUseClientrstSuppliers.Open "Select * From Suppliers", _CurrentProject.Connection, adOpenKeyset, adLockOptimistic Set Forms("Suppliers").Recordset = rstSuppliers End Sub Свойство Набор записей служит для следующих целей: Связывание нескольких форм с общим набором данных. Это позволяет синхронизировать несколько форм. Например: 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 |
|||||||
Так же в этом разделе:
|
|||||||
|
|||||||
|