Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Тойота_макросы_модули.doc
Скачиваний:
2
Добавлен:
20.11.2019
Размер:
2.34 Mб
Скачать

Редактирование макросов

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

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

и краткое описание макрокоманды отображаются в окне макросов только при ее маркировке.

Выполнение макроса с условиями

Порядок выполнения макрокоманд, содержащихся в макросе, определя­ется условиями, задаваемыми в столбце Условие. Условие — это логическое выражение, принимающее значение Истина (True) или Ложь (False). Посред­ством условия осуществляется управление запуском и выполнением макроса.

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

• Создайте новый макрос и присвойте ему имя Сообщение о клиенте.

• Если столбец Условие не отображается на экране, щелкните на кнопке Условие панели инструментов или активизируйте команду Условия из меню Вид.

• В первую ячейку столбца условий введите логическое выражение

[Населенный пункт]="Киев"

• В той же строке, но в столбце Макрокоманда выберите макрокоманду Сообщение и задайте значение Местный клиент! для аргумента Сообще­ние. Именно эта фраза отобразится на экране в окне сообщения при выполнении заданного условия. Для аргумента Тип установите значение Информационное. При этом в окне сообщения кроме текста появится пиктограмма с изображением литеры i (это принято в Windows 95 при выдаче сообщений).

Сохраните созданный макрос.

Рис. 5.1. Макрос Сообщение о клиенте

Имя анализируемого условием поля, содержащее пробел или знак пре­пинания, следует заключать в квадратные скобки: [Населенный пункт].

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

• Откройте форму Информация о клиентах и активизируйте режим конст­руктора.

• Откройте окно свойств формы, выполнив двойной щелчок за пределами области примечаний.

• Найдите поле После обновления и выберите в списке макрос Сообщение о клиенте. Тем самым вы зададите выполнение макроса с событием, связанным с вводом слова Киев в поле Населенный пункт (рис. 7.10).

• Закройте окно свойств формы и перейдите в режим заполнения.

В поле Населенный пункт введите слово Киев.

Рис. 5.2. Связывание макроса с событием

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

Рис. 5.3. Сообщение, выданное макросом, при выполнении условия

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

Проиллюстрируем сказанное примером. Предположим, необходимо сле­дить, чтобы число, вводимое в поле Номер договора, не превышало 9999. При вводе в это поле числа, которое больше 9999, на экране должно появляться указание восстановить значение, которое до этого находилось в поле Номер договора.

• Создайте новый макрос с именем Управление вводом.

• В первое поле столбца условий введите условие

[Номер договора] > 9999

• В поле Макрокоманда выберите макрокоманду Сообщение и введите для нее текст сообщения Слишком большой номер договора!

• Во вторую строку столбца условий введите многоточие (...), а столбца Макрокоманда — макрокоманду ВыполнитьКоманду с аргументом Undo (Отменить). Закройте окно макроса.

• Откройте форму Информация о клиентах и активизируйте окно свойств в режиме конструктора.

• В поле После обновления выберите макрос Управление вводом и перейдите в режим заполнения формы.

Теперь можно проверить работу созданного макроса. Выполнение макроса связано с событием После обновления (с обновлением формы). Для проверки следует выбрать одну из заполненных записей и заменить значение в поле Номер договора числом, которое больше 9999. Если после этого попытаться перейти к другой записи, программа выполнит условия, задан­ные в макросе, и откроет окно сообщения, после закрытия которого в поле Номер договора восстановится прежнее значение. Для полной проверки, замените номер договора числом из диапазона допустимых значений (например, 9900). В результате условия, заданные в макросе, не выполнятся, сообщение не появится, а номер договора будет изменен.

Примечание:

"Озвучить" макрос позволяет команда Сигнал. При выполнении этого макроса компьютер издает короткий звуковой сигнал. Возможности озвучивания есть и у команды Сообщение (аргумент Сигнал), что позво­ляет сопровождать звуковыми сигналами появление сообщений.

Указание имен объектов

Чтобы сослаться на элемент или свойство объекта базы данных, необхо­димо знать его точное имя. Имена элементов управления должны быть уникальными в одной форме (отчете) и могут совпадать в разных формах (отчетах) При создании ссылки на элемент управления необходимо учиты­вать, какой объект базы данных является активным

В рассмотренных примерах макросы Управление вводом и Сообщение о клиенте запускаются непосредственно из открытой формы, поэтому имена полей Населенный пункт и Номер договора, указанные в макросе, однозначно идентифицируют обрабатываемый объект.

Чтобы сослаться на элемент неактивного объекта, нужно указать полное имя этого элемента. Например, если запустить макрокоманду Управление вводом из окна базы данных, не открывая форму, содержащую поле Номер договора, то выполнение макроса будет прервано. Этот макрос можно ис­пользовать в другой форме или в другом отчете, если в них находится поле с таким именем. Такая универсальность макроса вряд ли может быть отнесена к его достоинствам, поскольку в большинстве случаев макросы разрабатываются для применения с конкретными объектами. Для доступа к элементу объекта необходимо включить в макрокоманду его полную специ­фикацию, которая в общем случае имеет вид:

Тип_0бъекта'[Имя_0бъекта]'[Имя_Элемента]

В рассматриваемом примере полная спецификация поля формы, указы­ваемая при задании условия, выглядит следующим образом:

FORMS'[Информация о клиентах]'[Номер договора] > 9999

Полная спецификация позволяет однозначно идентифицировать элемент формы. Восклицательный знак отделяет имя объекта от имени элемента. Если обрабатывается (анализируется) элемент отчета, то в качестве типа объекта следует задать тип Отчет. В результате спецификация будет иметь такой вид:

REPORTS'[Имя_0бъекта]'[Имя_Элемента]

Отладка макроса

Макрос не всегда функционирует так, как было задумано. Можно вы­делить две категории ошибок в макросах:

— синтаксические;

— логические.

Чаще всего появление ошибок в макросах обусловлено несоблюдением синтаксических правил. В случае выбора макрокоманд или значений аргу­ментов в предлагаемых списках вероятность возникновения ошибки крайне мала. Совсем по-другому обстоит дело с аргументами, значения которых задаются "вручную". Если в имени объекта допущена ошибка, действие не может быть выполнено.

Основы языка Visual Basic for Applications

Access 97 позволяет автоматизировать обработку баз данных двумя спо­собами: посредством макросов и путем программирования на языке Visual Basic for Applications.

Поскольку возможности языка макросов ограничены, для создания слож­ных приложений следует использовать язык Visual Basic for Applications (VBA), который доступен во всех приложениях Microsoft Office 97. Техноло­гия визуального программирования, реализованная в языке VBA, позволяет пользователям создавать приложения и самостоятельно решать многие зада­чи, не обращаясь к услугам профессиональных программистов.

У многих пользователей предложение самостоятельно написать несколь­ко строк на языке программирования вызывает отрицательную реакцию. Однако все не так сложно, как кажется на первый взгляд. Это автор и попытался доказать в данной главе, предложив вниманию читателей неболь­шой, но хорошо проиллюстрированный обзор возможностей программиро­вания на языке VBA.

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