Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
БД7.doc
Скачиваний:
2
Добавлен:
29.08.2019
Размер:
143.36 Кб
Скачать

5.3. Переход от макросов к vba

В некоторых случаях макросы более предпочтительны, но в зависимости от решаемых задач использовать программы на VBA значительно удобнее. Кроме того программы на VBA выполняются значительно быстрее, чем макросы. Однако использование только VBA увеличивает сроки разработки программ.

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

Если необходимо создать форму или отчет, которые будут обращаться к другим БД, следует разработать процедуры обработки событий на VBA. Чтобы процедуры VBA можно было подсоединить к форме или отчету, необходимо автоматически копировать в форму и процедуры обработки событий.

Иногда может понадобиться перезаписать некоторые макросы в процедуры VBA для того, чтобы по аналогии разработать новую процедуру. Access позволяет конвертировать макросы в код VBA автоматически. Для выполнения конвертации надо:

  1. Выбрать карточку Макросы в окне БД.

  2. Выбрать макробиблиотеку, в которой находится нужный макрос.

  3. Выделить этот макрос.

  4. Выполнить команду Файл | Сохранить как / Экспорт.

  5. В диалоговом окне Сохранение выбрать опцию В виде модуля Visual Basic и нажать OK.

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

  7. Щелкнуть на кнопке OK.

  8. Access выведет на экран карточку Модули окна БД, в которой появится новый модуль.

Код, создаваемый Access из макроса, начинается с оператора DoCmd. Все процедуры, начинающиеся с оператора DoCmd, Access выполняет в среде VBA. Это такие важные действия, как закрытие окон, открытие форм и установка значений управляющих переменных.

В окне модуля можно просматривать процедуры, созданные из макросов. В начале каждой функции Access вставляет 4 строки комментария для имени функции. За строками комментария следует оператор Function. Access присваивает имена функциям, используя имя макробиблиотеки как префикс, за которым через знак подчеркивания следует имя макроса и имя функции. Если задана возможность обработки ошибок, Access автоматически подключает оператор On Error в качестве первого оператора процедуры. Наличие оператора On Error приводит к появлению других операторов в тексте функции.

Удобным средством написания процедур обработки событий является мастер создания командных кнопок. Когда мастер создает командную кнопку, строится процедура обработки события, которая назначается событию щелчка на данной кнопке. Текст этой процедуры можно открыть, просмотреть и модифицировать.

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

6. Среда программирования Access

Язык программирования Visual Basic представляет собой инструментальный набор эффективных команд для манипулирования записями в таблицах, элементами управления в формах и другими объектами БД.

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

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

Модули общей области независимы от отдельных форм и отчетов. Такие модули используются для хранения программ и отдельных процедур, которые применяются во всем приложении - в выражениях, макросах, процедурах обработки событий и даже в других процедурах общей области. Обычно модули содержат процедуры, которые некоторым образом связаны друг с другом.

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

Переменная - поименованная область в памяти компьютера, в которую записывается какое-либо значение, чтобы потом к нему можно было обращаться. Описание переменных до того, как им будет назначено некоторое значение, обеспечивает резервирование места для них в памяти компьютера. Объем зарезервированной памяти для каждой отдельной переменной зависит от того, какой тип данных предполагается сохранять в этих переменных. Рекомендуется не применять неописанных переменных.

Для описания переменных используется оператор Dim. Синтаксис этого оператора следующий: Dim <имя переменной> As <тип данных>. Тип данных сохраняется вместе с именем переменной. В VBA имеется 11 встроенных типов данных.

Если необходимо описать переменные для использования во всех модулях приложения, то нужно применять оператор Public. Этот оператор применяется только в области описания. Если в процедуре будет обнаружен оператор Public, то выдано сообщение об ошибке.

В области описания наряду с оператором Dim можно использовать оператор Private. Практически между этими операторами разницы нет, но желательно для описания в модуле переменных, доступных для всех процедур модуля, использовать оператор Private. Смысл применения оператора Private состоит в следующем.

  1. Отличить эти переменные от переменных оператора Dim, которые могут описываться прямо из процедуры и область применения которых ограничена только данной процедурой.

  2. Отличить эти переменные от переменных оператора Public, которые описываются для применения во всем приложении.

Для перехода в область описания следует выбрать опцию описания в поле со списком Процедура или опцию Общая область в поле со списком Объект.

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

VBA предлагает два оператора для выполнения программы по условию:

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]