что такое recordset access vba
Свойство ComboBox.Recordset (Доступ)
Возвращает или задает объект ADO Recordset или DAO Recordset, который представляет источник записи для указанного объекта. Объект Read/write.
Синтаксис
выражения. Recordset
выражение Переменная, представляющие объект ComboBox.
Заметки
Свойство Recordset возвращает объект Recordset, который предоставляет данные, просматриваемые в форме, отчете, окне управления списком или комбо-окне управления. Если форма основана на запросе, например, ссылка на свойство Recordset эквивалентна клонированию объекта Recordset с помощью того же запроса. Однако, в отличие от использования свойства RecordsetClone, изменение текущей записи в наборе записей, возвращаемом свойством Recordset формы, также задает текущую запись формы.
Поведение чтения и записи свойства Recordset определяется типом наборов записей (ADO или DAO) и типом данных (Access или SQL), содержащихся в наборе записей, идентифицированных свойством.
Тип recordset | На основе SQL данных | На основе данных, хранимой в движке базы данных Access |
---|---|---|
ADO | Чтение и запись | Чтение и запись |
DAO | Н/Д | Чтение и запись |
В следующем примере открывается форма, открывается набор записей, а затем привязывает форму к набору записей, установив свойство Recordset формы к вновь созданному объекту Recordset.
Используйте свойство Recordset для:
Используйте методы с объектом Recordset, который не поддерживается напрямую в формах. Например, свойство Recordset можно использовать с помощью методов ADO Find или DAO Find в настраиваемом диалоговом окте для поиска записи.
Оберните транзакцию (которую можно откатать) вокруг набора изменений, влияющих на несколько форм.
Изменение свойства Recordset формы также может изменить свойства RecordSource, RecordsetType и RecordLocks. Кроме того, некоторые свойства, связанные с данными, могут быть переопределены, например свойства Filter, FilterOn, OrderBy и OrderByOn.
Привязать несколько форм к общему набору данных. Это позволяет синхронизировать несколько форм. Пример.
Если форма привязана к набору записей, при использовании команды Filter by Form возникает ошибка.
Пример
В следующем примере свойство Recordset создает новую копию объекта Recordset из текущей формы, а затем печатает имена полей в окне Debug.
В следующем примере свойство Recordset и объект Recordset используются для синхронизации наборов записей с текущей записью формы. Когда имя компании выбирается из комбо-окна, метод FindFirst используется для поиска записи для этой компании, в результате чего форма отображает найденную запись.
Следующий код помогает определить, какой тип наборов записей возвращается свойством Recordset в различных условиях.
Поддержка и обратная связь
Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.
Свойство ListBox.Recordset (Доступ)
Возвращает или задает объект ADO Recordset или DAO Recordset, который представляет источник записи для указанного объекта. Объект Read/write.
Синтаксис
выражения. Recordset
выражение Переменная, представляющие объект ListBox.
Заметки
Свойство Recordset возвращает объект Recordset, который предоставляет данные, просматриваемые в форме, отчете, окне управления списком или комбо-окне управления. Если форма основана на запросе, например, ссылка на свойство Recordset эквивалентна клонированию объекта Recordset с помощью того же запроса. Однако, в отличие от использования свойства RecordsetClone, изменение текущей записи в наборе записей, возвращаемом свойством Recordset формы, также задает текущую запись формы.
Поведение чтения и записи свойства Recordset определяется типом наборов записей (ADO или DAO) и типом данных (Access или SQL), содержащихся в наборе записей, идентифицированных свойством.
Тип recordset | На основе SQL данных | На основе данных, хранимой в движке базы данных Access |
---|---|---|
ADO | Чтение и запись | Чтение и запись |
DAO | Н/Д | Чтение и запись |
В следующем примере открывается форма, открывается набор записей, а затем привязывает форму к набору записей, установив свойство Recordset формы к вновь созданному объекту Recordset.
Используйте свойство Recordset для:
Используйте методы с объектом Recordset, который не поддерживается напрямую в формах. Например, свойство Recordset можно использовать с помощью методов ADO Find или DAO Find в настраиваемом диалоговом окте для поиска записи.
Оберните транзакцию (которую можно откатать) вокруг набора изменений, влияющих на несколько форм.
Изменение свойства Recordset формы также может изменить свойства RecordSource, RecordsetType и RecordLocks. Кроме того, некоторые свойства, связанные с данными, могут быть переопределены, например свойства Filter, FilterOn, OrderBy и OrderByOn.
Привязать несколько форм к общему набору данных. Это позволяет синхронизировать несколько форм. Пример.
Если форма привязана к набору записей, при использовании команды Filter by Form возникает ошибка.
Пример
В следующем примере свойство Recordset создает новую копию объекта Recordset из текущей формы, а затем печатает имена полей в окне Debug.
В следующем примере свойство Recordset и объект Recordset используются для синхронизации наборов записей с текущей записью формы. Когда имя компании выбирается из комбо-окна, метод FindFirst используется для поиска записи для этой компании, в результате чего форма отображает найденную запись.
Следующий код помогает определить, какой тип наборов записей возвращается свойством Recordset в различных условиях.
Поддержка и обратная связь
Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.
Свойство Form.Recordset (Access)
Возвращает или задает объект ADO Recordset или DAO Recordset, который представляет источник записи для указанного объекта. Объект Read/write.
Синтаксис
выражения. Recordset
выражение: переменная, представляющая объект Form.
Заметки
Свойство Recordset возвращает объект Recordset, который предоставляет данные, просматриваемые в форме, отчете, окне управления списком или комбо-окне управления. Если форма основана на запросе, например, ссылка на свойство Recordset эквивалентна клонированию объекта Recordset с помощью того же запроса. Однако, в отличие от использования свойства RecordsetClone, изменение текущей записи в наборе записей, возвращаемом свойством Recordset формы, также задает текущую запись формы.
Поведение чтения и записи свойства Recordset определяется типом наборов записей (ADO или DAO) и типом данных (Access или SQL), содержащихся в наборе записей, идентифицированных свойством.
Тип recordset | На основе SQL данных | На основе данных, хранимой в движке базы данных Access |
---|---|---|
ADO | Чтение и запись | Чтение и запись |
DAO | Н/Д | Чтение и запись |
В следующем примере открывается форма, открывается набор записей, а затем привязывает форму к набору записей, установив свойство Recordset формы к вновь созданному объекту Recordset.
Используйте свойство Recordset для:
Используйте методы с объектом Recordset, который не поддерживается напрямую в формах. Например, свойство Recordset можно использовать с помощью методов ADO Find или DAO Find в настраиваемом диалоговом окте для поиска записи.
Оберните транзакцию (которую можно откатать) вокруг набора изменений, влияющих на несколько форм.
Изменение свойства Recordset формы также может изменить свойства RecordSource, RecordsetType и RecordLocks. Кроме того, некоторые свойства, связанные с данными, могут быть переопределены, например свойства Filter, FilterOn, OrderBy и OrderByOn.
Привязать несколько форм к общему набору данных. Это позволяет синхронизировать несколько форм. Пример.
Если форма привязана к набору записей, при использовании команды Filter by Form возникает ошибка.
Пример
В следующем примере свойство Recordset создает новую копию объекта Recordset из текущей формы, а затем печатает имена полей в окне Debug.
В следующем примере свойство Recordset и объект Recordset используются для синхронизации наборов записей с текущей записью формы. Когда имя компании выбирается из комбо-окна, метод FindFirst используется для поиска записи для этой компании, в результате чего форма отображает найденную запись.
Следующий код помогает определить, какой тип наборов записей возвращается свойством Recordset в различных условиях.
Поддержка и обратная связь
Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.
Свойство Report.Recordset (Access)
Возвращает или задает объект ADO Recordset или DAO Recordset, который представляет источник записи для указанного объекта. Объект Read/write.
Синтаксис
выражения. Recordset
выражение Переменная, представляюная объект Report.
Заметки
Свойство Recordset возвращает объект Recordset, который предоставляет данные, просматриваемые в форме, отчете, окне управления списком или комбо-окне управления. Если форма основана на запросе, например, ссылка на свойство Recordset эквивалентна клонированию объекта Recordset с помощью того же запроса. Однако, в отличие от использования свойства RecordsetClone, изменение текущей записи в наборе записей, возвращаемом свойством Recordset формы, также задает текущую запись формы.
Нельзя привязать отчеты к записям ADO. Необходимо либо использовать DAO, либо сбросить набор записей ADO во временную таблицу, а затем привязать отчет к этой временной таблице.
Поведение чтения и записи свойства Recordset определяется типом наборов записей (ADO или DAO) и типом данных (Access или SQL), содержащихся в наборе записей, идентифицированных свойством.
Тип recordset | На основе SQL данных | На основе данных, хранимой в движке базы данных Access |
---|---|---|
ADO | Чтение и запись | Чтение и запись |
DAO | Н/Д | Чтение и запись |
В следующем примере открывается форма, открывается набор записей, а затем привязывает форму к набору записей, установив свойство Recordset формы к вновь созданному объекту Recordset.
Используйте свойство Recordset для:
Используйте методы с объектом Recordset, который не поддерживается напрямую в формах. Например, свойство Recordset можно использовать с помощью методов ADO Find или DAO Find в настраиваемом диалоговом окте для поиска записи.
Оберните транзакцию (которую можно откатать) вокруг набора изменений, влияющих на несколько форм.
Изменение свойства Recordset формы также может изменить свойства RecordSource, RecordsetType и RecordLocks. Кроме того, некоторые свойства, связанные с данными, могут быть переопределены, например свойства Filter, FilterOn, OrderBy и OrderByOn.
Привязать несколько форм к общему набору данных. Это позволяет синхронизировать несколько форм. Пример.
Если форма привязана к набору записей, при использовании команды Filter by Form возникает ошибка.
Пример
В следующем примере свойство Recordset создает новую копию объекта Recordset из текущей формы, а затем печатает имена полей в окне Debug.
В следующем примере свойство Recordset и объект Recordset используются для синхронизации наборов записей с текущей записью формы. Когда имя компании выбирается из комбо-окна, метод FindFirst используется для поиска записи для этой компании, в результате чего форма отображает найденную запись.
Следующий код помогает определить, какой тип наборов записей возвращается свойством Recordset в различных условиях.
Поддержка и обратная связь
Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.
Объект Recordset (ADO)
Область применения: Access 2013, Office 2013
Представляет весь набор записей из базовой таблицы или результаты выполненной команды. В любое время объект Recordset ссылается только на одну запись в наборе в качестве текущей записи.
Заметки
Вы используете объекты Recordset для управления данными от поставщика. При использовании ADO вы почти полностью управляете данными с помощью объектов Recordset. Все объекты Recordset состоят из записей (строк) и полей (столбцов). В зависимости от функций, поддерживаемых поставщиком, некоторые методы или свойства Recordset могут быть недоступны.
ADODB. Recordset — это ProgID, который следует использовать для создания объекта Recordset. Существующие приложения, ссылаясь на устаревшие ADOR. Recordset ProgID продолжит работать без перекомпилинга, но новая разработка должна ссылаться на ADODB. Recordset.
Существует четыре различных типа курсоров, определенных в ADO:
Динамический курсор — позволяет просматривать добавления, изменения и удаления другими пользователями; позволяет всем типам перемещения через Набор записей, который не полагается на закладки; и позволяет закладки, если поставщик поддерживает их.
Курсор Keyset — ведет себя как динамический курсор, за исключением того, что он не позволяет видеть записи, которые добавляют другие пользователи, и не позволяет получить доступ к записям, которые другие пользователи удаляют. Изменения данных другими пользователями по-прежнему будут видны. Он всегда поддерживает закладки и, следовательно, позволяет всем типам перемещения через Набор записей.
Статичный курсор — это статическая копия набора записей, которые можно использовать для поиска данных или создания отчетов; всегда позволяет закладки и, следовательно, позволяет все типы перемещения через Recordset. Добавления, изменения или удаления других пользователей не будут видны. Это единственный тип курсора, разрешенный при открывлении клиентского объекта Recordset.
Курсор только для форвардов — позволяет прокручивать только записи. Добавления, изменения или удаления других пользователей не будут видны. Это повышает производительность в ситуациях, когда необходимо сделать только один проход через Набор записей.
Установите свойство CursorType перед открытием набора записей, чтобы выбрать тип курсора, или передать аргумент CursorType с методом Open. Некоторые поставщики не поддерживают все типы курсоров. Проверьте документацию для поставщика. Если вы не указываете тип курсора, ADO открывает курсор только вперед по умолчанию.
Если свойство CursorLocation настроено на adUseClient для открытия набора записей, свойство UnderlyingValue для объектов Field не доступно в возвращаемом объекте Recordset. При использовании с некоторыми поставщиками (например, с поставщиком ODBC Microsoft для OLE DB совместно с Microsoft SQL Server) можно создать объекты Recordset независимо от ранее определенного объекта Подключения, передав строку подключения методом Open. ADO по-прежнему создает объект Connection, но не назначает этот объект переменной объекта. Однако если вы открываете несколько объектов Recordset по одному подключению, необходимо явно создать и открыть объект Подключения; это назначает объект Подключение к переменной объекта. Если эта переменная объекта не используется при открытии объектов Recordset, ADO создает новый объект Подключения для каждого нового набора записей, даже если вы передаете ту же строку подключения.
Вы можете создать столько объектов Recordset, сколько необходимо.
При открываемом наборе записей текущая запись устанавливается к первой записи (если таково), а свойства boF и EOF заданы false. Если записей нет, параметры свойств BOF и EOF верны.
Вы можете использовать методы MoveFirst, MoveLast, MoveNext и MovePrevious; метод Move; и свойства AbsolutePosition, AbsolutePageи Filter для повторного размещения текущей записи при условии, что поставщик поддерживает соответствующие функции. Объекты Recordset только для forward поддерживают только метод MoveNext. При использовании методов Move для посещения каждой записи (или переустановки наборов записей) вы можете использовать свойства BOF и EOF, чтобы определить, перешли ли вы за пределы начала или конца наборов записей.
Объекты Recordset могут поддерживать два типа обновления: немедленное и пакетное. При немедленном обновлении все изменения в данных немедленно вписаны в исходный источник данных после вызова метода Update. Вы также можете передать массивы значений в качестве параметров с помощью методов AddNew и Update и одновременно обновить несколько полей в записи.
Если поставщик поддерживает пакетное обновление, можно изменить кэш поставщика на несколько записей, а затем передать их одним вызовом в базу данных с помощью метода UpdateBatch. Это относится к изменениям, внесенным с помощью методов AddNew, Update и Delete. После вызова метода UpdateBatch можно использовать свойство Status для проверки любых конфликтов данных для их устранения.
Чтобы выполнить запрос без использования объекта Command, передайте строку запроса в открытый метод объекта Recordset. Однако для сохраняемого командного текста и его повторного выполнения или использования параметров запроса требуется объект Command.
Свойство Mode управляет разрешениями доступа.
Коллекция Fields является по умолчанию членом объекта Recordset. В результате два следующих кода эквивалентны.