SQL запросы средствами VBA в СУБД Access

RSS, Twitter, Vkontakte, Facebook

VBA и SQL

SQL запросы средствами VBA в СУБД Access 2003 и 2007

Автор: Владимир Ткаченко

Источник: Обучение в интернет

В данной статье рассмотрим формирования запросов с использованием SQL в VBA для базы данных Microsoft Access 2003, 2007.

Известно, что SQL запросы в VBA могут быть сформированы с применением следующих технологий доступа к данным: DAO, RDO, ODBC, ADO.NET, ADO, OLE DB и др. Технологии ADO (ActiveX Data Objects) и OLE DB (Object Linking and Embedding, Database) пришли на смену DAO/RDO и ODBC (Open Database Connectivity) соответственно.

Так как мы рассматриваем локальную Microsoft Access 2003, 2007, то применим технологию DAO для реализации SQL запросов в VBA. Следует отметить, что DAO (Data Access Objects) – это объектно-ориентированный интерфейс (API) доступа к данным локальных БД типа Access.

В качестве объектных переменных используем конкретный тип объекта из объектной модели "Database" и новый создаваемый объект "QueryDef". Поскольку используются объектные переменные, то их надо не только объявить в программе VBA, но и присвоить (установить) им определенные значения.

Назначим им соответствующий объект с помощью специального оператора Set. Так как мы будем работать с объектами открытой БД Access, то объектной переменной Database присваиваем ссылку на текущую базу данных CurrentDb. Для создания объекта "QueryDef" (создания нового запроса) используем метод CreateQueryDef.

Для формирования запроса "Запр_гр" с использованием SQL в VBA запустим БД "sql_training_st1_cross-tab.mdb" и создадим новый объект: модуль.

В окне Code введем следующую процедуру:
Private Sub Запр_Гр ()
Dim oMyDb As Database
Dim oMyQuery As QueryDef
Set oMyDb = CurrentDb
Set oMyQuery = oMyDb.CreateQueryDef("Запр_гр", "SELECT * FROM Группы;")
End Sub

Скриншот кода программы модуля Module_Request представлен на рис. 1.


SQL запрос средствами VBA в СУБД Access
Рис. 1. SQL запрос Module_Request средствами VBA в СУБД Access

Для запуска программы надо щелкнуть на пиктограмме "Run Sub", затем на команде "Сохранить". После этого в окне БД в "Области переходов" в категории "Запросы" появится новый объект - запрос "Запр_гр", а в категории "Модули" - объект: "Module_Request". После создания запроса на выборку необходимо выполнить этот запрос, дважды щелкнув на объекте "Запр_гр" в "Области переходов". Результаты выполнения команды представлены на рис. 2.


Отображение SQL запроса  средствами VBA в СУБД Access
Рис. 2. Отображение SQL запрос Module_Request средствами VBA в СУБД Access

Таким образом, созданный запрос "Запр_гр" на выборку с использованием SQL в VBA для базы данных Microsoft Access 2003, 2007 будет постоянно отображаться в "Области переходов".


Подпишитесь на мою рассылку СУБД MS Access 2003, 2007 -это просто!