
- •Цель работы: Использование макросов в формах и отчетах
- •Макросы для форм
- •Макросы для отчетов
- •Вызов макросов с помощью комбинации клавиш
- •Макросы, связанные с событиями формы
- •Использование макросов в формах
- •Открытие формы с помощью макроса
- •Для этого выполните перечисленные ниже действия
- •Работа с двумя формами показана на рис 6
- •В аргументе Элемент лучше использовать не сокращенное (рис 31 10), а полное выражение
Работа с двумя формами показана на рис 6
Рис 31 6 Две синхронизированные формы
Как видно из рис 31 б, при работе с синхронизированными формами можно просматривать одновременно несколько записей Форма Customer будет автоматически обновляться при переходе от одной к другой записи таблицы формы Pets Display Свойство Текущая запись будет запускать макрос OpenCust при каждом изменении текущей записи данных Если вам это понятно, вы поймете и принцип использования свойства Текущая запись В данном случае это свойство запускает макрос, который находит соответствующую запись в форме Customer При каждом изменении в форме текущей записи активизируется свойство Текущая запись
Выполнение макроса при закрытии формы
Зачастую нужно выполнить некоторые действия при закрытии формы или выходе из нее Например, вам может понадобиться, чтобы после закрытия формы Pets Display автоматически закрывалась и форма Customer
Для того чтобы задать автоматическое закрытие формы Customer при закрытии формы Pets Display, напишите новый макрос, а затем укажите его для свойства Закрытие формы Pets Display
На рис. 7 показан новый макрос Close Customer, который добавлен к макросу OpenCust До этого момента макрос OpenCust имел единственное назначение При добавлении еще одного макроса он преобразуется в группу из двух макросов. где первый макрос, который открывает форму, установлен по умолчанию, а второй — имеет имя Close Customer
Рис 7 Добавление в группу макросов макрокоманды Закрыть
Рис 8 Окно свойств с заданным свойством Закрытие
Обратите
внимание, макрос
Close Customer
содержит только одну макрокоманду
Закрыть Для данной макрокоманды
определено два аргумента; оба должны
быть установлены Первый аргумент —
это Тип Объекта, где определяется тип
объекта, который вы хотите закрыть
Второй аргумент — это Имя объекта, в
котором вы задаете имя объекта для
закрытия (в данном случае это форма
Customer)
После
того как макрос
Close Customer
создан, присоедините его к форме
Pets Display.
1.
Выделите в окне базы данных форму
Pets Display и
щелкните на кнопке Конструктор
2. Откройте окно
свойств для данной формы
3.
В поле свойства Закрытие введите
OpenCust Close Customer
При этом макрос примет вид, показанный
на рис 8
4. Сохраните форму
с внесенными изменениями
^ди»»*"* Обратите внимание, при вводе имени макроса для свойства Закрытие, вначале вводится имя группы, затем
Ча заметку точка и лишь потом имя макроса
/
После открытия формы Pets Display, данные в форме Customer по-прежнему будут обновляться, поскольку для свойства Текущая запись задан соответствующий макрос Однако теперь макрос задан и для свойства Закрытие. Поэтому при закрытии этой 4юрмы будет автоматически закрываться форма Customer.
^ Макрос, заданный для свойства Закрытие, просто закроет форму Customer. Если пользователь случайно свинка закрыл форму Customer, а затем — форму Pets Display, Access не обнаружит в этом ошибки. Таким об-f-^ разом, задание свойства Закрытие не означает, что форма Customer может быть закрыта лишь при закрытии формы Pets Display.
Макросы, связанные с событиями элементов управления
До сих пор вы имели дело с заданием макросов для событий, выполняемых на уровне всей формы. Однако макросы можно запускать и на уровне отдельных элементов управления, используя для этого соответствующие события. Например, можно проверить корректность ввода сложных данных непосредственно на уровне поля (а не после выхода из этой записи), используя для этого свойство данного поля, а не свойства на уровне всей формы
Указание макросов для элементов управления
Для того чтобы элемент управления реагировал на событие, необходимо вначале создать макрос и указать его для соответствующего свойства этого элемента управления.
На формах могут быть размещены различные объекты — надписи, текстовые поля, подчиненные формы, кнопки, флажки и т.д. Для каждого из этих объектов существует свой набор характерных для него событий. И для любого из событий можно назначить некоторый макрос, выражение или программу Для работы со свойствами событий любого объекта следует открыть окно его свойств и выбрать вкладку События
Работа с макросами форм
Макросы форм можно разбить на шесть категорий, согласно характеру выполняемых ими функций.
• Подтверждение данных
• Установка значений
• Перемещение между формами и отчетами
• Фильтрация записей
• Поиск записей
• Распечатка записей
Каждый макрос использует свои макрокоманды для выполнения соответствующих задач
Установка значений
Вы можете значительно упростить ввод данных, если будете использовать макросы для элементов управления. Кроме этого, можно связать различные 4юрмы, базы данных и отчеты для более слаженной работы. При использовании макросов для установки значений можно выполнить следующие задачи.
• Скрыть или показать элемент управления в зависимости от некоторого значения (свойство Вывод на экран)
• Отключить или защитить элемент управления в зависимости от определенного значения (свойства Доступ и Блокировка)
• Обновить данные в поле формы в зависимости от значения другого элемента управления
• Установить значение элемента управления в форме в зависимости от значения элемента управления другой формы
В макросах для установки значений используется макрокоманда ЗадатьЗначение, которая имеет два аргумента
Элемент Название элемента управления или свойства Выражение Выражение задающее значение элемента
Преобразование значения поля в верхний регистр
Если для ввода в поля используются либо строчные, либо прописные буквы, то вам может потребоваться преобраз вать какую-нибудь запись текстового поля в верхний регистр Для этого воспользуйтесь макросом с макрокомандой За-датьЗначение, которая автомагически выполнит преобразование текста В строке аргумента Элемент введите я\ч поля, которого вы хотите преобразовать в верхний регистр а в строке аргумента Выражение — функцию UCase() именем преобразуемого поля (рис 9)
Рис 319 Преооразовтие содержимого ПО-1Я в верхний регистр
После создания макроса поместите его имя в nole свойства После обновления окна свойств Теперь, если пользователь введет имя клиента строчными буквами Access автоматически запустит этот макрос и п-образует запись в верхний регистр сразу после того как пользователь завершит обновление поля
Присвоение значений новым записям
Обычно, при вводе новых записей в базу данных, некоторые поля удобнее заполнять автоматически, исходя из зн^ ний другой открытой формы Для этого можно использовать макрокоманду ЗадатьЗначение (рис 31 10)