Создание макроса для синхронной обработки данных в двух формах

¨ Пусть при просмотре данных о предметах, изучаемых студентами, необ­ходимо отображать информацию обо всех студентах, получивших двойки по предмету.

Для решения задачи используем формы ПРЕДМЕТ и ДВОЕЧНИКИ. Форма ПРЕДМЕТ позволяет просматривать список предметов, форма ДВОЕЧНИКИ — список всех записей о двойках, полученных студентами по различным предметам. Обе формы имеют поле НП, содержащее наименова­ние предмета.

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

Рисунок 46

Макрос "М1" открывает форму ДВОЕЧНИКИ и определяет ее местополо­жение на экране. Макрос "М1" должен выполняться при открытии формы ПРЕДМЕТ.

Макрос "М2" фильтрует записи о двоечниках по значению поля НП, взято­му из текущей записи формы ПРЕДМЕТ.. Макрос должен выполняться при двойном нажатии пользователем кнопки мыши на поле НП, когда пользова­тель работает в форме ПРЕДМЕТ.

Когда макрос "Двоечники.М2" получает управление, текущей является фор­ма ПРЕДМЕТ и открыта форма ДВОЕЧНИКИ. Для правильного выполне­ния макрокоманды "ПрименитьФильтр" ссылки в аргументе макрокоманды Условие отбора должны быть записаны следующим образом:

Forms! [Двоечники]! [НП] = Forms! [Предмет]! [НП]

Фильтрация формы ДВОЕЧНИКИ производится по полю НП, которому присваивается значение поля НП из формы ПРЕДМЕТ.

Для выполнения макросов при наступлении событий необходимо устано­вить в форме ПРЕДМЕТ связь событий с макросами:

r Связь события формы "Открытие" с макросом "Двоечники. М1"

r Связь события элемента управления "Двойное нажатие кнопки" с макросом "Двоечники.М2"

Напомним, что события формы представлены в окне свойств формы, а со­бытия элемента управления — в окне его свойств, где и надо в строках нуж­ных событий ввести имена макросов "Двоечники.М1" и "Двоечники. М2".

Заметим, что событие "Двойное нажатие кнопки" для элемен­та управления (поля) НП возникает, если пользователь дважды нажимает и быстро отпускает левую кнопку мыши в тот момент, когда курсор мыши установлен на поле НП или присоединенной к нему надписи.


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



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