VBA Access SQL — делаем запрос из макросов

VBA Access SQL

Периодически я вижу, как пытаются найти информацию: а как можно сделать запрос через SQL и макросов VBA? Сегодня я постараюсь осветить данную область и рассказать про связь VBA Access SQL.

CurrentProject.Connection

Это один из самых простых способов для связи Access и БД, но для его реализации необходимо связать локальные таблицы и БД. (Более подробно можно почитать на вики про DSN) Для этого заходим в меню, как на скриншоте:

vba access sql

 

Выбираем пункт «База данных ODBC» и в появившемся окне выбираем «Создать связанную таблицу для связи с источником данных.», см. скриншот:

vba access sql create link

vba access sql table link

После этого появиться окно, в котором можно открыть уже существующее или создать новое соединение. При создании каждый должен самостоятельно ответить на кучу различных вопросов для подключения к своей БД. После этого необходимо выбрать это подключение и добавить необходимы таблицы. В Access такие таблицы будут выделяться специальной иконкой, см. скриншот.

Ну и для того, чтобы сделать запрос к БД средствами VBA Access SQL приведу вот такой небольшой пример:

Комментариями в программе я постарался отметить ключевые моменты. В массив ColName записываются названия колонок, а в массив ValueCol значения. Стоит отметить, что данные массивы необходимо первоначально объявить и всегда актуализировать по размерности при помощи Dim и ReDim, т.к. в большинстве своем они буду динамические.