В следующих разделах содержатся полезные сведения о VBA. Имена объектов предоставляются, чтобы их можно было легко изучить в базе данных Northwind 2.0 Starter Edition.
VBA (Visual Basic для приложений) — это язык программирования, используемый во всех продуктах Microsoft 365, а не только в Access. Это в первую очередь описано здесь: Документация для разработчиков Access.Сведения о начале работы см. в статье Общие сведения о программировании Access.
При поиске сведений обязательно найдите примеры для Access и включите Microsoft Access в условие поиска. Часто решения для других продуктов Microsoft 365 будут работать, но могут потребовать изменений.
Microsoft Access — это зрелый продукт. Это означает, что есть много примеров там, что отлично для вас. Это также означает, что старые книги по программированию Access по-прежнему жизнеспособны для вас. Многие из старых книг по-прежнему доступны на используемых книжных сайтах за небольшую часть их первоначальной стоимости.
Файлы Microsoft Access — это файлы Microsoft 365. Файлы Microsoft 365 должны находиться в надежном расположении или включать их содержимое. Эти элементы считаются безопасными, так как вы создали их или они были получены из надежного источника. Эта проверка выполняется каждый раз, когда вы открываете какой-либо файл Microsoft 365. Мы будем называть это доверенным или включенным отсюда. Если новая версия приложения выпущена и открыта из ненадежного расположения, процесс включения содержимого будет повторяться. Дополнительные сведения см. в разделах Надежные расположения для файлов Microsoft 365, Решение о том, следует ли доверять базе данных, а также Добавление, удаление или изменение надежного расположения в Microsoft 365.
Макросы, функции и вложенные процедуры — это способ реализации бизнес-логики в базе данных Access.
Элементы управления в форме (например, кнопки, текстовые поля, метки и т. д.) могут использовать свои события (например, щелчок элемента управления) для запуска других процессов, таких как добавление, удаление записей или открытие форм. Эти процессы можно реализовать с помощью макросов или VBA. Northwind использует в основном макросы и некоторые VBA. Дополнительные сведения см. в разделе Макрокоманда RunCode.
Некоторые типы элементов управления имеют встроенные мастера, которые автоматически создают макрос. Например, при добавлении кнопки команды в форму откроется мастер, который предложит несколько возможностей для кнопки. При добавлении поля со списком откроется мастер, который можно настроить для поиска определенной записи в форме.
Область навигации — это основной способ просмотра и доступа ко всем объектам базы данных, который по умолчанию отображается в левой части окна Access. Панель навигации Northwind 2.0 Starter Edition была настроена. Мы создали пользовательскую категорию с именем Northwind Starter 2.0. Это позволяет упорядочить объекты по функциональной области. Дополнительные сведения см. в разделе Настройка области навигации.
Для вас важно узнать о области и видимости в Access и Microsoft 365. Область относится к доступности переменной, константы или процедуры для использования другой процедурой. Существует три уровня области: уровень процедуры, уровень частного модуля и уровень общедоступного модуля. Область переменной определяется при ее объявлении. Рекомендуется объявить все переменные явным образом, чтобы избежать ошибок с конфликтом имен между переменными с разными областями. Все модули имеют два оператора директив: Option Compare Database и Option Explicit. Дополнительные сведения см. в разделах Общие сведения о области и видимости, Общедоступной инструкции, Частной инструкции, Статической инструкции и Сведения о времени существования переменных.
Иногда переменная должна существовать после того, как созданный объект выходит за пределы области. Это можно сделать тремя основными способами: Общедоступные переменные, TempVars и хранение значений в локальной таблице. Каждый из них имеет плюсы и минусы. Многие разработчики используют их сочетание.
Общедоступные переменные и TempVars существуют для текущего сеанса и выходят за рамки при закрытии приложения. Что делать, если вы хотите сохранить пользовательские переменные в сеансах? Эти типы значений можно хранить в локальной таблице. В Northwind 2.0 Starter Edition эти значения содержатся в таблице SystemSettings. Например, значение в таблице — ShowWelcome. Это значение указывает нам, хотите ли вы видеть экран приветствия каждый раз, когда вы входите в систему.
Если вы использовали какие-либо мастеры управления, встроенные в Access, вы знаете, что при создании макроса часто не выполняется вообще обработка ошибок, а если создается VBA, это может быть ограничено функцией MsgBox, стилем Err.Description.
В Northwind 2.0 Starter Edition мы реализовали так называемый глобальный обработчик ошибок. Ошибки, происходящие в любой процедуре, вызывают функцию на глобальном уровне, чтобы отобразить ошибку. Большое преимущество заключается в том, что код является согласованным, и если сообщение необходимо изменить, например отображение номера ошибки или запись ошибки в файл, это можно сделать только в одном месте.
clsErrorHandler — это модуль класса, реализующий код обработки ошибок. Модуль класса хранит все свои основные и вспомогательные функции в одном блоке, что делает код более инкапсулированным. Макрос AutoExec в конечном итоге вызывает функцию запуска в modStartup, он создает экземпляр clsErrorHandler и сохраняет его как глобальную переменную, чтобы его можно было использовать во всем приложении.
На самом деле код обработки ошибок в процедурах настолько согласован, что мы смогли создать все его менее чем за пять минут, используя причудливый код VBA, который оснастил каждую процедуру соответствующим обработчиком ошибок. Этот код не включен в шаблон.