- •Макросы
- •Техника создания макросов
- •Примечание:
- •Примечание:
- •Редактирование макросов
- •Выполнение макроса с условиями
- •Основные термины языка программирования vba
- •Р ис. 6.1. Окно модуля
- •Раздел описания
- •Создание процедуры
- •Тип данных Хранимые значения Область значений
- •Integer Целое число От -32768 до 32767
- •Условные операторы
- •Операторы цикла
- •Процедура-функция для обработки событий в формах.
- •Примечание:
- •Использование процедуры-функции в отчетах
- •Применение процедур-подпрограмм
- •Выполнение кода vba
- •Примечание:
- •Процедура Вызов
- •Примечание:
Процедура-функция для обработки событий в формах.
Как правило, процедуры-функции ориентированы на обработку событий. Access 97 позволяет связывать разработанные процедуры-функции с вычисляемым полем несколькими способами (например, можно создать процедуру-функцию, которая будет вызываться при выполнении щелчка на некотором поле, из макроса или из другой процедуры). Способ связывания зависит от типа процедуры-функции.
Результат выполнения процедуры-функции обычно применяется:
— в качестве значения по умолчанию для поля таблицы; — в качестве значения критерия для запросов или фильтров;
— в качестве содержимого поля.
В рассматриваемом примере используется процедура, вызываемая из формы Прейскурант цен. Так как пересчет цен будет происходить после ввода
значений цен в рублях, вызов процедуры должен осуществляться после актуализации поля Цена в рублях;
• Откройте форму Прейскурант цен в режиме конструктора.
• Маркируйте поле Цена в рублях и откройте окно свойств формы, активизировав в ее контекстном меню команду Свойства.
• На вкладке События задайте в поле После обновления вызов функции в такой форме.
=Рубли_в_Доллары ()
• Перейдите в режим конструктора формы и сохраните изменения. Внимание!
Если после имени функции не введена пара скобок, Access 97 заключит это имя в квадратные скобки и будет рассматривать как имя поля.
При вводе значения в поле После обновления можно воспользоваться услугами построителя выражений. Для этого надлежит нажать в окне свойств кнопку с тремя точками, расположенную справа от поля После обновления. В результате на экране появится диалоговое окно Построитель, которое служит для выбора варианта создания выражений, макросов или программного кода. Остановим выбор на построителе выражений.
Р ис. 6.7. Окно выбора построителя
Нажмите кнопку ОК, вследствие чего произойдет запуск Построителя выражений и откроется его диалоговое окно.
Р ис. 6.8. Связывание процедуры с помощью построителя выражений
В левом списке окна построителя найдите папку с функциями и выполните двойной щелчок, чтобы открыть ее. В списке категорий функций выберите функции для базы данных Почта и откройте список модулей базы, находящийся в средней части окна построителя. Затем выберите созданный нами модуль (Прейскурантные расчеты) и дважды щелкните на функции Рубли_в_Доллары (вы найдете ее в третьем списке). В верхней области окна будет сформировано выражение для вызова функции Рубли_в_Доллары:
Рубли_в_Доллары ()
Нажмите кнопку ОК, и построитель завершит свою работу, передав управление конструктору форм.
С этого момента каждое значение, введенное в поле Цена в рублях, будет автоматически пересчитано и занесено в поле Цена в долларах. Пересчет выполняется и после изменения текущего значения цены в рублях.
Примечание:
Чтобы процедура выполнялась, она должна быть скомпилирована. Этот процесс автоматизирован и занимает очень мало времени, но нужно быть готовым к возможному появлению сообщения об ошибке (если, конечно, ошибка будет обнаружена). Компилирование может быть произведено принудительно (если пользователь захочет проверить код на наличие ошибок) — с помощью команды Компилировать загруженные модули из меню Отладка.