Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
БазыДанных(заочка) / методичка БД .doc
Скачиваний:
101
Добавлен:
17.04.2015
Размер:
768.51 Кб
Скачать

Связывание с событиями

В базе данных хранится информация о состоянии ее объектов. Любое изменение состояния формы или отчета называется событием. Каждый из этих объектов имеет свой набор событий.

С событиями удобно связывать макросы. Попробуем связать соз­данный ранее макрос Размещение на экране с открытием базы. Для этого необходимо:

- Маркировать макрос Размещение на экране в окне базы дан­ных.

- Выбрать в меню Правка команду Переименовать и присвоить макросу Размещение на экране новое имя - Autoexeс (макрос с таким именем автоматически выполняется при загрузке базы данных). При этом можно произвольным образом пользоваться строчными и пропис­ными буквами.

Теперь макрос связан с открытием базы данных. Таким способом автоматизируются операции, которые должны всегда выполняться в момент загрузки базы. При каждом открытии базы данных Access 97 проверяет, присутствует ли в ней макрос с именем AutoExec, и, ес­ли находит, выполняет его. В противном случае открытие базы не сопровождается дополнительными действиями. Внутри одной базы дан­ных можно использовать только один макрос AutoExec.

Для проверки работоспособности макроса, нужно закрыть, а за­тем открыть базу данных.

Совет:

Если имя AutoExec присвоено макрогруппе, то при открытии ба­зы данных будет выполнен только первый макрос этой группы. Чтобы при загрузке базы последовательно приводились в испол­нение несколько макросов, необходимо ввести в макрос AutoExec макрокоманду ЗапускМакроса, что позволит выполнить мак­рос с произвольным именем (имя задается аргументом) и вер­нуться к следующей за ЗапускМакроса макрокоманде в макросе AutoExec.

Макрос AutoExec не выполняется, если перед открытием база данных нажать и удерживать клавишу [Shift].

Задание

  1. Изучить события базы данных.

  2. Создать макросы для поиска фиксированной информации в таблицах Зарплата и Сведения.

  3. Выполнить п.2 для случая поиска произвольной информации.

  4. Создать макрос для копирования данных из таблиц Зарплата и Сведения в буфер обмена.

  5. Объеденить макросы по работе с формой и отчетом в макрогруппы.

  6. Создать макрос связанный с событием открытия базы данных.

  7. Создать макрос для печати отчета.

  8. Освоить методику отладки макросов в пошаговом режиме.

КОНТРОЛЬНЫЕ ВОПРОСЫ

  1. Какие виды ошибок имеют место в Access?

  2. Что дает пошаговый режим отладки макросов ?

  3. Каким образом производится объединение макросов в макрогруппы?

  4. Как связать макрос с командами меню ?

  5. Перечислите события, связанные с клавиатурой и мышью.

  6. Назовите основные события данных

  7. Перечислите события управления объектами.

  8. Назовите события печати.

  9. Как создать макрос, связанный с событием базы данных ?

ЛАБОРАТОРНАЯ РАБОТА N 11

МАКРОСЫ С УСЛОВИЕМ. ПРЕДСТАВЛЕНИЕ ОБЪЕКТОВ. УСТАНОВКА ИМЕН И ЗНАЧЕНИЙ

Цель работы: Изучить методику создания макросов с условием, управление представлением объектов из макроса, указание имен объектов, установку значений.

ВЫПОЛНЕНИЕ МАКРОСА С УСЛОВИЕМ

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

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

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

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

- В первую ячейку столбца условий ввести логическое выраже­ние [Населенный пункт]="Москва".

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

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

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

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

- Открыть форму Информция о клиентах в режиме конструктора.

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

- На вкладке События найти поле После обновления и выбрать в списке макрос Сообщение о клиенте. Тем самым будет задано выполне­ние макроса с событием, связанным с вводом слова Москва в поле Населенный пункт.

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

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

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

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

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

- В первое поле столбца условий ввести условие [Оклад] >10000.

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

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

- Открыть форму Зарплата в режиме конструктора и активизировать окно свойств.

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

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

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