Использование плагина SaveToDB как библиотеки VBA

Разработчики приложений на VBA могут использовать плагин SaveToDB в своих проектах.

Например, можно легко загружать данные из таблиц, представлений, хранимых процедур, текстовых файлов и веб-запросов.

Также, можно легко сохранять изменения в базы данных Microsoft SQL Server, Oracle Database, IBM DB2, MySQL, MariaDB, NuoDB и SQLite.

Для получения ссылки на плагин используется следующий код:

Dim addIn As COMAddIn
Dim automationObject As Object
Set addIn = Application.COMAddIns("SaveToDB")
Set automationObject = addIn.Object

Для сохранения изменений в базу данных используется метод Save:

automationObject.Save

А для загрузки данных с параметрами из именованных ячеек можно использовать следующий код:

Application.EnableEvents = False
Range("AccountName").Value = "My Bank"
Range("CompanyName").Value = "Carnation, Inc"
Range("ItemName").Value = Nothing
Application.EnableEvents = True
automationObject.RebuildCommandTextFromNamedCells

Как Вы видите, код достаточно простой. Но он работает для любой поддерживаемой базы данных, и позволяет обновлять запросы с параметрами и сохранять изменения обратно в базу данных.

Простой пример

Например, база данных приложения реестра платежей содержит следующие таблицы:

Таблицы реестра платежей

И нам необходимо создать форму ввода новых платежей:

Форма ввода платежей на VBA

Подход к реализации

Необходимо решить следующие задачи:

  1. Реализовать загрузку из таблиц Account, Company и Item в списки значений для выбора.
  2. Реализовать сохранение новых значений.
  3. Реализовать форму ввода.

Первая и третья задачи решаются обычными средствами Excel и не вызывают сложностей.

А вот вторая задача не очень простая, особенно, если проект необходимо использовать на большом количестве компьютеров, или требуется использование ODBC драйверов или OLEDB провайдеров.

Плагин SaveToDB позволяет решать такие задачи просто.

Необходимо проделать предварительные шаги:

  1. Загрузить данные в таблицу Excel.
  2. Настроить сохранение из Excel в базу данных, используя стандартные возможности плагина.

и далее в макросе выполнить следующие действия:

  1. Добавить новую строку в таблицу и скопировать в нее значения из формы.
  2. Вызвать метод Save плагина SaveToDB.

Заметьте, что VBA код не требует использования SQL-кода и работает с таблицами любой структуры!

Предварительные шаги

В нашем примере мы можем использовать два подхода для сохранения изменений:

  1. Сохранять изменения непосредственно в таблицы базы данных.
  2. Сохранять изменения с использованием хранимых процедур.

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

Второй подход требует дополнительных усилий, но позволяет решить вопросы разграничения доступа полностью.
Также, в хранимых процедурах можно реализовать и менять позднее любую бизнес-логику на стороне сервера, а не в макросах (и книгах пользователей, соответственно).

Настройка выполняется в визуальном режиме. Взгляните на скриншот:

Использование элементов управления плагина SaveToDB в приложениях VBA

Для подключения к таблицам, представлениям и хранимым процедурам используется Мастер подключения к данным (Connection Wizard).

Для сохранения изменений в базу данных используется кнопка Сохранить (Save).

Список запросов (Query List) отображает объект запроса активной таблицы и позволяет легко переключаться между объектами (таблицами, представлениями и хранимыми процедурами).

Параметры на ленте позволяют изменять параметры хранимых процедур и значения полей WHERE для таблиц и представлений. Параметры можно синхронизировать с одноименными именованными ячейками (например, ячейка AccountName для параметра AccountName).

Когда вы подключили таблицу к базе данных, и, по необходимости, настроили сохранение изменений, в макросах VBA можно использовать метод Save, который эквивалентен нажатию кнопки Save,

Загрузка данных с использованием VBA

Плагин позволяет легко фильтровать загружаемые данные с использованием макросов VBA.

Так, плагин автоматически помещает параметры хранимых процедур на ленту Excel. Для таблиц и представлений, можно выбрать поля, которые следует поместить на ленту и использовать в запросах WHERE.

На листе можно создать именованные ячейки с именами параметров, и далее использовать следующий код для изменения значений параметров запроса:

Range("AccountName").Value = "My Bank"
Range("CompanyName").Value = "Carnation, Inc"
Range("ItemName").Value = "Revenue"

На скриншоте отображен результат установки значений параметров запроса:

Фильтрация данных из макросов VBA

Следующие шаги

Загрузите и установите плагин SaveToDB, загрузите пакет для разработчиков приложений на VBA и посмотрите примеры, которые включают готовые книги и исходный код.

Надстройка SaveToDB для Microsoft Excel
Надстройка позволяет использовать Excel как настраиваемого клиента корпоративных приложений
Версия: 10.11 | 12.07.2023 | 20.5MB | Введение | Что нового | Редакции | Предыдущие версии
Скачать
Примеры для разработчиков на VBA
Пакет включает исходный код примеров для разработчиков на VBA
Версия: 8.18 | 21.12.2018 | 0.3MB
Скачать

Больше примеров использования плагина для разных платформ баз данных можно найти в SaveToDB SDK.

Попробуйте использовать плагин SaveToDB в ваших проектах. Вы сможете создавать их быстрее и легче.