¨ Пусть при просмотре данных о предметах, изучаемых студентами, необходимо отображать информацию обо всех студентах, получивших двойки по предмету.
Для решения задачи используем формы ПРЕДМЕТ и ДВОЕЧНИКИ. Форма ПРЕДМЕТ позволяет просматривать список предметов, форма ДВОЕЧНИКИ — список всех записей о двойках, полученных студентами по различным предметам. Обе формы имеют поле НП, содержащее наименование предмета.
При работе с формой ПРЕДМЕТ одновременно на экране должна открываться форма ДВОЕЧНИКИ. Причем через эту форму должны отображаться только те записи, которые соответствуют выбранному пользователем предмету в форме ПРЕДМЕТ. Создадим группу макросов с именем "Двоечники", включающую макросы "М1" и "М2".
Рисунок 46
Макрос "М1" открывает форму ДВОЕЧНИКИ и определяет ее местоположение на экране. Макрос "М1" должен выполняться при открытии формы ПРЕДМЕТ.
Макрос "М2" фильтрует записи о двоечниках по значению поля НП, взятому из текущей записи формы ПРЕДМЕТ.. Макрос должен выполняться при двойном нажатии пользователем кнопки мыши на поле НП, когда пользователь работает в форме ПРЕДМЕТ.
|
|
Когда макрос "Двоечники.М2" получает управление, текущей является форма ПРЕДМЕТ и открыта форма ДВОЕЧНИКИ. Для правильного выполнения макрокоманды "ПрименитьФильтр" ссылки в аргументе макрокоманды Условие отбора должны быть записаны следующим образом:
Forms! [Двоечники]! [НП] = Forms! [Предмет]! [НП]
Фильтрация формы ДВОЕЧНИКИ производится по полю НП, которому присваивается значение поля НП из формы ПРЕДМЕТ.
Для выполнения макросов при наступлении событий необходимо установить в форме ПРЕДМЕТ связь событий с макросами:
r Связь события формы "Открытие" с макросом "Двоечники. М1"
r Связь события элемента управления "Двойное нажатие кнопки" с макросом "Двоечники.М2"
Напомним, что события формы представлены в окне свойств формы, а события элемента управления — в окне его свойств, где и надо в строках нужных событий ввести имена макросов "Двоечники.М1" и "Двоечники. М2".
Заметим, что событие "Двойное нажатие кнопки" для элемента управления (поля) НП возникает, если пользователь дважды нажимает и быстро отпускает левую кнопку мыши в тот момент, когда курсор мыши установлен на поле НП или присоединенной к нему надписи.