Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

ACCESS_2010-ч2

.pdf
Скачиваний:
93
Добавлен:
20.02.2016
Размер:
1.79 Mб
Скачать

10

По окончании формирования текста макроса закройте окно Конструктора с сохранением макроса с заданным именем.

Проверка работы макроса

Запустите макрос СРАВНЕНИЕ СЧЕТОВ на выполнение двойным щелчком по его значку в окне Все объекты Access. В нашем примере в качестве результата будет сообщение В банке депозитных счетов не больше,

чем карт-счетов.

Чтобы убедиться в работе другой ветви макроса, откройте таблицу СЧЕТ и добавьте в нее, например, две записи:

Номер

Тип

Дата

Капита-

Остаток

Номер

Номер

счета

счета

открытия

лизация

на счете,

филиала

клиента

 

 

счета

 

руб.

 

 

 

 

 

 

 

 

 

Ц18

Д

14.02.2010

Да

2000000

511

48

Ц22

Д

20.03.2010

Да

800000

513

48

После этого запустите макрос на выполнение – выводится сообщение В

банке депозитных счетов больше, чем карт-счетов.

Если ожидаемые результаты не получены, то отладьте макрос,

используя пошаговый режим.

Задание 6.3. Создать макрос, позволяющий выбирать вид открываемой формы КЛИЕНТ. Для этого он должен выводить диалоговое окно с вопросом к пользователю о виде открываемой формы и с двумя кнопками [Да] и [Нет].

По нажатии [Да] должна открываться форма без поля ПОДП, а по нажатии

[Нет] – со всеми полями.

Макрос сохранить с именем СКРЫТИЕ ПОЛЯ В ФОРМЕ.

Выполнение задания Откройте окно Конструктора макроса. Сформируйте текст условного

макроса, приведенного на рис. 6. 5.

Проверяемое условие в макрокоманде Если сформируйте в Построителе выражений – выберите функцию MsgBox из категории

11

Сообщения и задайте только два ее аргумента: prompt – текст, выводимый в диалоговом окне, в кавычках и button – число 4.

Рис. 6.5. Текст макроса СКРЫТИЕ ПОЛЯ В ФОРМЕ Закройте окно Конструктора с сохранением макроса с заданным

именем.

Проверка работы макроса

Запустите макрос СКРЫТИЕ ПОЛЯ В ФОРМЕ на выполнение. В

открывшемся диалоговом окне нажмите кнопку [Да] и убедитесь в том, что открывается форма КЛИЕНТ без поля ПОДП.

12

Затем закройте эту форму, повторно запустите макрос, в открывшемся диалоговом окне нажмите кнопку [Нет] – откроется форма КЛИЕНТ со всеми полями.

Задание 6.4. Создать макрос, позволяющий клиентам, имеющим карт-счета,

давать бонус в размере 10 % от остатка на счете и просматривать остатки на карт-счетах до и после предоставления бонуса.

Макрос сохранить с именем БОНУС.

Выполнение задания Откройте окно Конструктора макроса. Сформируйте текст макроса,

который содержит вложенный макрос, повторяющийся многократно, как на рис. 6.6.

Условие отбора записей в макрокомандах ПрименитьФильтр и ОткрытьФорму, ссылку на поле ОСТ и выражение для расчета его новых значений в макрокоманде ЗадатьЗначение создайте в Построителе выражений.

Выражение для подсчета числа повторов запуска макроса НАЧИСЛЕНИЕ в макрокоманде ЗапускМакроса наберите на клавиатуре.

13

14

15

Рис. 6.6. Текст макроса БОНУС Закройте окно Конструктора с сохранением макроса с заданным

именем.

Запустите макрос БОНУС на выполнение и убедитесь в его соответствии требованиям задания 6.4. В противном случае отладьте макрос в пошаговом режиме.

Итак, продемонстрированы макросы, различные по структуре: в

задании 6.1, – линейный; в задании 6.2, 6.3 – условные; в задании 6.4 – с

вложенным макросом, содержащим цикл.

16

6.2. Макросы, связанные с событиями

6.2.1.Внедренные макросы

Макрос данных

Для выполнения следующего задания скорректировать таблицу СЧЕТ таким образом:

1)добавить поле СОСТОЯНИЕ, которое будет предназначено для ввода значений состояния счетов клиентов из списка, включающего три значения – активный (со счетом могут выполняться операции),

заблокирован (со счетом не могут выполняться операции),

налогооблагаемый (счет, с суммы остатка которого взимается налог в размере 10%).

Для этого выполнить следующее:

открыть таблицу СЧЕТ в режиме Конструктора;

набрать имя поля СОСТОЯНИЕ, выбрать тип поля Мастер подстановок.

В результате появится 1-ое окно Мастера, в котором переключатель установить в положение Будет введен фиксированный набор значений и

нажать [Далее];

во 2-ом окне Мастера в первые три клетки столбца Столбец1 набрать значения активный, заблокирован, налогооблагаемый и [Далее];

в 3-ем окне Мастера установить флажок Ограничиться списком и

[Готово]. В результате для поля СОСТОЯНИЕ будет установлен тип поля

текстовый;

2)заполнить поле СОСТОЯНИЕ. Для этого перейти в режим таблицы и ввести в поле СОСТОЯНИЕ для всех записей значение активный,

выбирая его из раскрывающегося списка;

3)добавить поле НАЛОГ типа денежный, которое будет предназначено для хранения сумм налога, автоматически вычисляемых макросом данных.

17

Задание 6.5. Создать макрос данных, позволяющий при переходе счета из категории активный в категорию заблокирован или налогооблагаемый

автоматически вычислять сумму налога и заносить ее в поле НАЛОГ таблицы СЧЕТ.

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

Выполнение задания Откройте таблицу СЧЕТ в режиме таблицы и на вкладке Таблица в

группе До событий нажмите кнопку [До изменения]. В результате откроется окно Конструктора макроса. В нем сформируйте текст макроса,

приведенный на рис. 6.7. Проверяемые условия в макрокоманде Если

создавайте с помощью Построителя выражений.

Чтобы ввести макрокоманду Иначе если после набора текста второго примечания Если счет не заблокирован, то осуществляется проверка – является ли он налогооблагаемым, щелкните по гиперссылке Добавить блок

"Иначе если".

Рис. 6.7. Текст макроса До изменения

18

Закройте окно макроса. Данный макрос не регистрируется как объект БД в окне Все объекты Access. Он внедрен в таблицу СЧЕТ.

Проверка работы макроса

В таблице СЧЕТ измените состояние счетов К-11, К-37, Ц-34, Ц66, как на рис. 6.8, и убедитесь, что макрос данных До изменения автоматически вычислил сумму налога в поле НАЛОГ, как на рис. 6.8.

Рис. 6.8. Таблица СЧЕТ после работы макроса

Примечани е. Если потребуется удалить макрос данных, то на вкладке Таблица следует

нажать кнопку [Именованный макрос], выбрать Переименовать или удалить макрос, в открывшемся окне Диспетчер макросов данных выбрать нужный макрос

(например, До изменения), щелкнуть по гиперссылке Удалить, подтвердить удаление и закрыть окно Диспетчера.

Внедренный макрос

Для выполнения следующего задания создать форму ФИЛИАЛ по таблице ФИЛИАЛ. Для этого выделить данную таблицу, на вкладке

Создание нажать кнопку [Другие формы] и сохранить построенную форму с именем ФИЛИАЛ.

Задание 6.6. Создать внедренный в форму ФИЛИАЛ макрос, позволяющий при щелчке на некотором номере филиала в этой форме открывать отчет ОТЧЕТ2 и отображать в нем только записи, относящиеся к данному филиалу.

Выполнение задания:

откройте форму ФИЛИАЛ в режиме Конструктора;

19

для поля НФ вызовите окно свойств и на вкладке События в строке

"Нажатие кнопки" вызовите Построитель щелчком по кнопке ;

в открывшемся окне Построитель выделите Макросы и [ОК]. Откроется окно Конструктора макроса с заданным системой именем ФИЛИАЛ:НФ:Нажатие кнопки;

сформируйте текст внедренного макроса, как на рис. 6.9, и сохраните его.

Обратите внимание, что после этого в окне свойств поля НФ в строке

"Нажатие кнопки" появился текст [Внедренный макрос];

закройте с сохранением окно свойств и окно Конструктора формы.

Проверка работы макроса

Откройте форму ФИЛИАЛ в режиме формы. Щелкните на некотором номере филиала – отроется отчет ОТЧЕТ2 и в нем отобразятся только записи,

относящиеся к данному филиалу.

Рис. 6.9. Внедренный макрос

6.2.2. Макросы, связанные с событиями элементов управления в форме

Для выполнения следующего задания в форме КЛИЕНТ в "Области данных" создать свободное поле. Для поля вызвать окно свойств и на вкладке

Все в строке Имя дать ему имя ФИО_ КЛИЕНТА. Для надписи вызвать окно свойств и на вкладке Все в строке Подпись в качестве надписи этого поля

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]