ИНФОРМАЦИОННОЕ ОБЕСПЕЧЕНИЕ и БАЗЫ ДАННЫХ

Коднянко В.А.

Лабораторные работы по СУБД Microsoft Access 2007

К содержанию

 


Лабораторная работа №8.
Макросы

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

1. Создание макросов

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

     В поле Макрокоманда можно выбрать необходимую команду (ОткрытьТаблицу, ОткрытьЗапрос, ОткрытьОтчет, ЗапускМакроса и т. д.) нажатием кнопкой мыши. Другой способ состоит в том, что в строку Макрокоманда можно просто перетащить любой объект базы данных (таблицу, форму и т. д.).

     После выбора макрокоманды на панели аргументов окна конструктора макросов могут появиться строки, предназначенные для задания значений аргументов соответствующей макрокоманды. Набор строк на этой панели зависит от конкретной макрокоманды. Заданные значения аргументов также появляются во втором столбце Аргументы панели описаний.

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

2. Макрос из одной макрокоманды

     Рассмотрим простой способ создания макрокоманды. Например, применим ее для открытия таблицы Автомобили базы данных Такси.

Последовательность выполнения:

  1. Выбираем вкладку Создание и в раскрывающейся кнопке Макрос выбираем команду Макрос. При этом открывается окно Конструктора макросов. Теперь с помощью мыши перетащите таблицу Автомобили (на рис. 1 на этот элемент наведен курсор мыши) из Области переходов в столбец Макрокоманда. В результате в нем появится макрокоманда Открыть таблицу, причем Access автоматически заполнит поля панели аргументов (рис.1).

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

Рис.1

3. Макрос из нескольких макрокоманд

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

Последовательность выполнения:

  1. В разработанном макросе перейдите на следующую строку окна конструктора макросов и в столбце Макрокоманда выберите из списка макрокоманду Сообщение.

  2. В поле Сообщение панели аргументов введите текст «Данные доступны для редактирования». Аргумент Сигнал служит для определения того, будет ли вывод сообщения сопровождаться звуковым сигналом. В аргументе Тип выберите вид диалогового окна. Укажите, например, значение Информационное. В поле аргумент Заголовок, позволяющего задать текст заголовка окна сообщения, введите текст«Сообщение».

  3. Сохраните макрос под именем "Открыть Автомобили". При этом строка с заголовком макроса появится в списке "Несвязанные объекты", как показано на рис. 3.

     После запуска макроса двойным щелчком мыши будет отображена таблица Автомобили, открытая в режиме редактирования, и поверх окна сообщение, представленное на рис. 3.

Рис. 2

Рис. 3

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

4. Группы макросов, назначение макросов событиям

     Приложение допускает размещение нескольких макросов в одном объекте. Такой объект называется группой макросов. Вызов требуемого макроса из группы осуществляется по имени этого макроса.

     Рассмотрим пример группы макросов, которая будет содержать три макроса - первый макрос будет открывать таблицы Автомобили, Заказы и Клиенты БД Такси, второй закрывать их, а третий будет закрывать тот объект, из которого вызван макрос (в нашем случае это будет специальная форма с кнопками, из которой будут запускаться наши макросы).

     Последовательность создания группы такова:

1. Выбираем вкладку Создание и в раскрывающейся кнопке Макрос выбираем команду Макрос. При этом открывается окно Конструктора макросов. Далее нажимаем кнопку Имена макросов . Теперь вид окна Конструктора макросов будет таким, как показано на рис. 4.

Рис. 4

2. В столбец Имя макроса введите имя первого макроса «ОткрВсехТабл».

3. Перейдите в следующую строку и в столбец "Макрокоманда" макроса введите соответствующие аргументы для открытия таблиц, как показано.

4. Пропустите одну строку.

5. Задайте имя нового макроса «ЗакрВсехТабл» и введите аргументы закрытия этих таблиц.

     Получится текст группы макросов, который показан на рис. 5.

Рис. 5


     Сохраните макрос под именем Макрос ОткрЗакрВсехТабл

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

     Выполните команду Создание / Конструктор форм. При этом в Конструкторе появится пустая форма. Положите на нее три кнопки . При каждом таком действии будет появляться окно Создание кнопок, как показано на рис. 6.

Рис. 6

     Выберите там нужную Категорию и Действие, как показано на рис. 6. Нажмите кнопку Далее. При этом появится окно, которое показано на рис. 7.

Рис. 7

     В нем для первой кнопки выберите макрос "Макрос ОткрЗакрВсехТабд.ОткрВсехТабл" (на рисунке он выделен), после завершения работы с первой кнопкой для второй кнопки выбирайте макрос "Макрос ОткрЗакрВсехТабд.ЗакрВсехТабл", для третей - "Макрос ОткрЗакрВсехТабд.ЗакрФорм".

     Надпись на кнопке, рисунок, его размеры и другие параметры задайте в свойствах кнопки (вызывается контекстным меню для кнопки), как показано на рис. 8. 

Рис. 8

     Чтобы Access понимал какую команду требуется выполнить при щелчке на кнопке, перейдите на закладку События и для события Нажатие кнопки выберите нужный макрос из созданной группы. Пример такого выбора показан на рис. 9.

Рис. 9

     Сохраните форму под именем "Форма с кнопками" и перейдите в режим формы. Вид формы показан на рис. 10.

Рис. 10

     Щелком на соответствующей кнопке проверьте, что кнопки и соответствующие им макросы работают.

5. Макросы с условиями

     В Access есть возможность выполнять макрокоманды макроса в зависимости от выполнения определенных условий. Рассмотрим пример.

     Создадим новую форму командой Создание / Конструктор форм. При это в Конструкторе появится пустая форма. Положите на форму три флажка и одну кнопку, как показано на рис. 11.

Рис. 11

     Дайте флажкам (а не названиям флажков!) имена Флажок1, Флажок2, Флажок3 и создайте подписи к ним, как показано на рис. 11 (имена задают на закладке Другие свойств, надписи на закладке Макет).

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

     Теперь создадим макрос, который будет выполнять эти действия. Нажмите кнопку Условия (см. рис. 12), при этом в макросе появится соответствующий столбец.

Рис. 12

     Теперь создайте сам макрос, дополнив его соответствующими макрокомандами, как показано на рис. 12. При вызове макроса, если флажок установлен (Истина), то будет открываться соответствующая таблица. Если флажка нет (Ложь), то таблица будет закрываться.

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

Рис. 13

6. Задания на выполнение самостоятельной работы

     Часто на формах вместе с кнопками используют другие элементы управления. Рассмотрим использование группы переключателей.

     Задание 1. Создайте новую форму и положите на нее группу переключателей и кнопку. В группу переключателей включите две позиции, как показано на рис. 14.

Рис. 14

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

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

Рис. 15

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

     Задание 2. Добавьте в группу переключателей "Макросы" новый переключатель, с помощью которого будут закрываться все таблицы и открываться запрос на те заказы такси, которые были отменены.


 

Для возврата к головной странице
щелкните на этой надписи:

К содержанию