Автоматический запуск макроса

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

· В окне базы данных выберите вкладку Макрос.

· Нажмите кнопку Создать. На экране появится пустое окно макроса в режиме конструктора.

· Нажмите мышью самую верхнюю строку столбца «Макрокоманда» (кнопка со стрелкой). В появившемся списке выберите элемент Открыть форму.

· Определите аргументы макрокоманды. В строке «Имя формы» в нижней части окна выберите из списка ту форму, которая должна открываться автоматически (например, «Кнопочная форма» для открытия Главной кнопочной панели, которую мы создали ранее в качестве интерфейса пользователя для базы данных Автомобили). Для всех остальных аргументов можно оставить стандартные установки.

· Сохраните новый макрос под именем Autoexec. При следующем открытии базы данных автоматически будет открываться Главная кнопочная форма . Если в исключительном случае потребуется подавить выполнение Autoexec – макроса, при открытии базы данных следует удержать нажатой клавишу [Shift].

 

Создание макроса, содержащего группу макрокоманд

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

Определим группу макрокоманд аналогично определению отдельной макрокоманды.

· В окне базы данных выберем вкладку Макросы, кнопку Создать.

· В меню Вид, Имена Макросоввключается столбец «Имя макроса».

· Назначьте уникальное имя для каждого макроса в группе. Первый макрос должен закрывать форму. Назначьте ему имя Закрыть.

· В нижней части экрана отображаются оба аргумента макрокоманды – «Тип объекта» и «Имя объекта». В строке «Тип объекта» выберите из списка элемент «Форма». В поле «Имя объекта» выберите из списка имя той формы, в которой вы хотите поместить копки панели управления и которая должна быть закрыта.

· Вторая макрокоманда должна выполнять переход к новой записи в форме. Введите имя «Перейти на новую запись», из списка типов объектов выберите объект «Форма», в строке «Имя объекта» выберите имя нужной формы, в строке «Запись» выберите из списка «Новая».

· Сохраните макрос под тем же именем, что и форма, к которой он относится.

· Откройте в режиме конструктора форму, в которой нужно поместить кнопки, нажатие которых вызывает выполнение макроса. Создайте кнопку «Закрытие формы» (отключите кнопку Мастера). В окне свойств нажмите вкладку События и в строке «Нажатие кнопки» выберите присвоенное вами имя созданного макроса на закрытие этой формы. Создайте кнопку «Добавить новую запись» и также свяжите ее с событием «Нажатие кнопки» соответствующим макросом.

Рассмотрим, как создать некоторые макросы.

 

Задание к лабораторной работе 7

1. Введите в таблицу Клиенты и заказы два новых поля: Дата ввода и Дата обновления. Напоминаю, что дополнительные поля в таблице создаются в режите Таблица, Конструктор.

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

 

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

· Создайте в форме Клиенты и заказы кнопки для вызова макросов на ввод и обновление записей (во время создания этих кнопок отключите кнопку Мастера).

· Создайте новый макрос на занесение даты ввода записи. В качестве макрокоманды выберите из списка Задать значение. В строку аргумента «Элемент» задайте имя поля [Дата ввода]. В строку «Выражение» занесите имя функции DATE(), которая определит текущую дату (можете воспользоваться построителем выражений).

· Сохраните макрос, например, под именем «Дата ввода».

· Перейдите в форму, для которой создавался макрос и свяжите кнопку вызова этого макроса с именем макроса. Для этого в режиме конструктора щелкните по кнопке, вызовите окно свойств, вкладку События и в строке «Нажатие кнопки» из списка выберите имя созданного для этих целей макроса.

· Аналогично создается макрос на обновление даты изменения.

Чтобы оба макроса выполнялись автоматически, свяжите макрос регистрации даты создания записи со свойством формы «До обновления», а макрос регистрации обновления со свойством «После обновления» (в этом случае соответствующие кнопки вызова макросов в форме можно удалить).

 

4. Создайте макрос для ускорения поиска записей.

Как правило, на практике приходится выполнять поиск определенного значения одного и того же поля. Для этого сначала необходимо перейти в требуемое поле, затем командой Правка, Найтиоткрыть диалоговое окно «Поиск в поле», ввести образец поиска и установить значение параметра «Совпадение». Используя две макрокоманды, эти действия можно упростить. Рассмотрим пример создания такого макроса для формы Клиенты и заказы.

· Откройте форму в режиме Конструктора. Создайте на свободном месте поле и откройте окно свойств.

· Откройте окно свойств, вкладку «Другие» и в строку «Текст строки состояния» введите текст «Введите фрагмент текста для поиска». В результате этих действий пользователь получит в распоряжение управляющий элемент, предназначенный для ввода образца для поиска.

· Измените имя элемента в окне свойств на вкладке «Другие» на слово «Образец поиска по фамилии» и измените подпись на слово «Образец поиска по фамилии».

· Поместите в форму кнопку Поиск записи.

· Создайте макрос, осуществляющий поиск. Если какой-либо макрос для этой формы уже есть, откройте его и добавьте новый макрос, образуя группу. Новому макросу присвойте имя «Поиск».

· Первое действие макроса должно активизировать элемент управления, в котором выполняется поиск. Из списка выберите макрокоманду К элементу управления.Для аргумента макрокоманды «Имя элемента» задайте имя управляющего элемента, который связан с полем поиска, например, «Фамилия».

· Следующая макрокоманда выполняет поиск. Выберите макрокоманду Найти запись. Для аргумента «Образец поиска» введите выражение = [Образец для поиска по фамилии]. Для “Совпадение” выберите значение “Поле целиком”, для области поиска –“Все”, в строке “Только в текущем поле” – значение “Да”, в строке “Первое вхождение” – значение “Нет”.

· Третьей макрокомандой опять будет К элементу управления. В качестве аргумента «Имя элемента» введите имя кнопки [Поиск записи].

· На последнем шаге остается связать кнопку Поиск записи со свойством «Нажатие кнопки».

 

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

Не всегда макрос должен выполняться сразу же после нажатия соответствующей кнопки. Рассмотрим, как задать условие выполнения макроса.

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

· Прежде всего следует указать макрокоманды в той последовательности, в которой они должны выполняться. Например, если требуется распечатать несколько отчетов, следует выбрать макрокоманду Открыть отчет в режиме печати несколько раз.

· С помощью аргумента «Режим» можно определить, будет ACCESS печатать отчет или открывать в режиме предварительного просмотра.

· Перейдите в столбец условий первой строки. Введите там следующее выражение:

MsgBox («Печатать?»;4+32)=6

Данная функция отображает на экране диалоговое окно с указанным текстом и двумя кнопками «Да» и «Нет». Функция возвращает значение 6, если нажмете кнопку «Да» или значение 24, если нажмете кнопку «Нет». Печать выполнится, если вы нажмете на кнопку «Да».

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

 

6. Создайте в режиме конструктора новую форму, на которой поместите три кнопки для соответствующих макросов. Составьте группу макросов с именем «Работа с формой», каждый из которых состоит из двух макрокоманд, выполняющих ниже перечисленные действия. Задайте каждому макросу имя.

 

Первый макрос.

· Открывает форму Клиентыи заказы(в режиме формы).

· Осуществляет переход на конкретную запись, например, пятую.

Второй макрос.

· Открывает форму Составная форма 2( в режиме формы).

· Осуществляет переход на запись, отстоящую от первой на три (используйте аргумент «Смещение»).

Третий макрос.

· Открывает форму Клиентыи заказы (в режиме формы).

· Осуществляет переход на последнюю запись.

3. Составить макрос с именем «Поиск заказа», который находит в таблице Клиенты и заказы запись о заказах, поступивших в определенный день.

4. Составить макрос с именем «Скидка», выдающий на экран сообщение «Послать телеграмму!» при вводе в форму Клиенты и заказы в поле Скидка значения больше 0,1.