Создание макроса, работающего с данными нескольких объектов

¨ Пусть необходимо в сеансе ввода данных в таблицу УСПЕВАЕМОСТЬ подготавливать и выводить отчеты о полученных студентами двойках и пятерках.

Для решения задачи при заполнении таблицы УСПЕВАЕМОСТЬ через форму УСПЕВАЕМОСТЬ данными о результатах экзаменов подключим макрос, который будет заполнять таблицу ДВОЕЧНИКИ и таблицу ОТЛИЧНИКИ. По завершении заполнения таблицы УСПЕВАЕМОСТЬ макрос должен распечатывать соответствующие отчеты. Таблицы ДВОЕЧНИКИ и ОТЛИЧНИКИ после выдачи отчетов надо очищать. Это позволит в очередном сеансе ввода данных в таблицу УСПЕВАЕМОСТЬ для одной или нескольких групп студентов выдать отчеты для этих групп, а так­же использовать макрос при корректировках таблицы. В этом случае будут выдаваться отчеты по внесенным изменениям.

Макрос "Списки успеваемости", реализующий такую задачу, является груп­пой из трех макросов.

Рисунок 47

r  Макрос "Начало" открывает формы, используемые для заполнения таблиц ДВОЕЧНИКИ и ОТЛИЧНИКИ. Для выполнения этого макроса в момент, когда пользователь открывает форму УСПЕВАЕМОСТЬ, в свойства формы в строку события "Открытие" надо ввести имя макроса:

[Списки успеваемости].[Начало]'

 

Замечание

Если нет необходимости наблюдать за процессом наполнения списков двоек и пятерок через форму, могут быть использованы непосредственно таблицы ДВОЕЧНИКИ и ОТЛИЧНИКИ. Кроме того, чтобы они не отображались на экра­не, их можно, например, свернуть,

r Второй макрос, "Формирование", анализирует введенную оценку и в за­висимости от результата формирует новую запись в одной из таблиц (ДВОЕЧНИКИ или ОТЛИЧНИКИ). При вводе удовлетворительной оценки макрос не формирует запись. Чтобы макрос выполнялся при об­новлении каждой записи в форме УСПЕВАЕМОСТЬ, в свойствах формы в строке события "После обновления" надо ввести имя этого макроса:

[Списки успеваемости].[Формирование]

 

Замечание

Предполагается, что таблицы ДВОЕЧНИКИ и ОТЛИЧНИКИ имеют ключи, которые не допускают повторного ввода записи с одинаковыми значениями ключа. В про­тивном случае запись об одной и той же оценке может повторяться в формируе­мой таблице, если пользователь неоднократно работает с записью. Если необхо­димо предусмотреть такой вариант, то вместо макрокоманды "НаЗапись" можно использовать макрокоманду "ПрименитьФильтр" С помощью этой макрокоманды можно отфильтровать формируе­мую таблицу, и, если там уже есть запись именно об этой оценке студента, она просто будет записана поверх старой, т. е. ее полям повторно будут присвоены те же значения.

r Третий макрос, "Отчеты", открывает отчеты с данными об оценках, вве­денными в таблицы ДВОЕЧНИКИ и ОТЛИЧНИКИ, очищает таблицы, подготавливая их к последующим сеансам работы с экзаменационными ведомостями, и закрывает их. Для того чтобы макрос выполнялся при за­крытии пользователем формы УСПЕВАЕМОСТЬ, в свойствах формы в строке события "Закрытие" вводится имя этого макроса

[Списки успеваемости].[ Отчеты].

Рассмотрим назначение макрокоманд в макросе "Формирование".

r Макрокоманда "НаЗапись" позволяет сделать текущей но­вую запись в форме ДВОЕЧНИКИ. Имя этой формы указывается в аргу­ментах макрокоманды. В аргументе <3апись> указывается, что но­вая запись должна стать текущей. Макрокоманда и три следующие за ней   макрокоманды, в условии которых стоит многоточие, будут выполняться только в том случае, если в текущей записи формы УСПЕВАЕМОСТЬ в поле ОЦЕНКА стоит двойка

r Макрокоманды "ЗадатьЗначение присваивают полям новой записи формы ДВОЕЧНИКИ значения из полей текущей записи формы УСПЕВАЕМОСТЬ. Аргумент макрокоманды <элемент> определяет поле, которому должно присваиваться значение. Аргумент <выражение> определяет поле, из которого выбирается это значение

В аргументе <элемент> задана ссылка

Forms!Двоечники![имя поля].

В аргументе <выражение> задана ссылка

Forms! Успеваемость![имя поля].

Аналогичные действия выполняют макрокоманды, включенные в набор за­писей с условием оцЕНКА=5, но они работают е формой ОТЛИЧНИКИ.

Рассмотрим назначение макрокоманд в макросе "Отчеты".

r Макрокоманда "ОткрытьОтчет" выводит отчет на экран в режиме предварительного просмотра. Имя отчета и режим его открытия указываются аргументами макрокоманды. Если нет необходимости про­сматривать отчет, можно сразу получить печатный документ, установив в аргументе режим печати. Отчет, открытый для просмотра, будет отобра­жаться на экране до тех пор, пока пользователь не закроет его

r О Макрокоманда "ВыделитьОбъект" делает текущей указан­ную в аргументе форму ДВОЕЧНИКИ. Это позволяет в следующих мак­рокомандах выполнять команды меню для этого объекта

r О Макрокоманда "ВыполнитьКоманду" автоматически вы­полняет команду стандартного меню, заданную в ее аргументах. Вызов этой макрокоманды эквивалентен выбору пользователем указанной ко­манды в стандартном меню Access. Первая из записанных в макросе мак­рокоманд "ВыполнитьКоманду" выполняет заданную в аргументах макрокоманды команду (Command) — SelectAllRecords (Выделить все записи), что равносильно выполнению этой команды в меню Правка<Е(1и/ Вторая — выполняет команду (Command) Delete (Удалить) также принадлежащую меню Правка Обязательный аргумент <команда> ( Command ) указывает команду, которую следует выполнить. В раскрывающемся списке этой строки выводятся все команды стандартного меню Access. Однако выбирать следует только те команды, которые доступны для выполнения в текущем режиме.

r Макрокоманда "Закрыть" закрывает форму ДВОЕЧНИКИ, имя которой указывается в аргументе макрокоманды

 Аналогичными макрокомандами выполняется удаление всех записей формы ОТЛИЧНИКИ и ее закрытие.

Дополнением макроса "Начало" макрокомандами, определяющими разме­щение объектов на экране, можно получить удобное отображение всех форм. Это позволит наблюдать синхронный процесс ввода данных и запол­нения таблиц для отчета.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: