Макрос синхронної обробки даних двох форм

Розглянемо створення групи макросів, призначених для фільтрації записів в одній формі, які запускатимуться при ініціації користувачем події в іншій формі.

Хай при перегляді даних про предмет, що вивчається студентами, необхідно відображати інформацію про всіх студентів, що одержали двійки по цьому предмету.

Для рішення задачі використовуємо форми ПРЕДМЕТі Двієчники.Форма ПРЕДМЕТ створена для перегляду інформації про предмети. Форма Двієчникистворена на основі запиту, який з таблиць УСПІШНІСТЬ і СТУДЕНТ вибирає поля КП (Код предмету), ФІО студента, ОЦІНКА, в якому для поля ОЦІНКА в рядку Умова відбору записана значення 2. Форма відобразить список всіх записів про двійки, одержані студентами по всіх предметах. Обидві форми мають поле КП, що містить найменування предмету.

Для рішення задачі створіть групу макросів з ім'ям Двієчники,що включає макроси Ml і М2. Хай макрос Ml виконується при відкритті форми ПРЕДМЕТ,відкриває форму Двієчникиі визначає її местополо-ження на екрані. Макрос М2 фільтрує записи про двієчників по значенню поля КП, узятому з поточного запису форми ПРЕДМЕТ.Макрос повинен виконуватися тоді, коли користувач, працюючи у формі ПРЕДМЕТ,ініціює подію Вхід для поля. Створення груп макросів дозволяє об’єднати макроси, призначені для вирішення однієї задачі, і спростити супроводження додатку.

1. Для створення макросу виберіть у вікні бази даних вкладку Макросиі натисніть кнопку Створити.

2. Щоб доповнити вікно макросу стовпцем, що дозволяє створити групу макросів, клацніть на панелі інструментів Конструктор Макросівна кнопці Імена макросів.

3. Запишіть макрокоманди макросів Ml і М2 так, як показано на мал. 3, і збережіть групу макросів під ім'ям Двієчники.Це ім'я буде виводитися в списку макросів у вікні бази даних.

4. Для запуску макросу Ml встановіть зв'язок події Открытие форми ПРЕДМЕТз макросом. Відкрийте форму в режимі конструктора, клацніть на кнопці Свойствавкладки События.Як значення властивості Открытие виберіть ім'я макросу Двієчники.М1(мал. 4).

Для запису імені макросу групи використовується наступний синтаксис: ім’я-ГрупиМакросів.ім’яМакроса.

5. Для запуску макроса М2 встановіть як значення властивості події Двойное нажатие кнопки елемента керування поля КП форми ПРЕДМЕТ значення Двієчники.М2.

Мал. 3.

 

Мал. 4.

 

6. Подія Подвійне натиснення кнопки для елемента управління КП виникає, якщо користувач двічі швидко клацає лівою кнопкою миші в той момент, коли курсор миші встановлений на полі КП або приєднаному до нього написі.

7. Щоб перевірити роботу макросів, відкрийте форму ПРЕДМЕТ.На екрані буде відображений результат роботи Ml — відкриття форм Двієчникиі ПРЕДМЕТ.Причому у формі Двієчникивідобразяться записи про двійки, одержані по всіх предметах.

8. Виконайте подвійне клацання на полі з кодом предмету у формі ПРЕДМЕТ.Результат виконання макросу М2відобразиться на екрані. До форми Двієчники буде застосований фільтр, в якому як умови відбору записано [КП]=Forms![Предмет]![КП], і тепер в ній відображаються тільки записи із значенням коду предмету з форми ПРЕДМЕТ.

9. Щоб макрос М2 виконувався, коли користувач, працюючи у формі ПРЕДМЕТ, входить в поле КП:

- видаліть зв’язок макроса М2 з подією Подвійне натиснення кнопки для елемента управління КП;

- встановіть його зв’язок з подією Вхід цього ж елемента управління;

подія Вхід наступає при переміщенні курсора в поле КП, при переході до іншого запису, якщо поточним є поле КП. Окрім того при відкритті форми разом з подією Открытие для поточного елемента управління форми настає подія Вхід. Якщо в списку на формі, що визначає послідовність переходу по її полях при натисненні клавіші <Таb>, на першому місці знаходиться поле КП, то воно при відкритті форми стає поточним елементом управління. Тому при відкритті форми виконаються обидва макроси.

 

Увага! Одна дія користувача може приводити до виникнення декількох подій, причому важливо знати послідовність настання таких подій, оскільки це визначає і послідовність виконання макросів.

 

10. Прогляньте послідовність полів у формі ПРЕДМЕТ,виконавши команду Послідовність переходув контекстному меню форми або елемента управління. Якщо поле КП розташовано на першому місці, перемістіть його нижче.

11. Відкрийте форму ПРЕДМЕТі переконайтеся, що при переході від запису до запису синхронно відображаються відповідні записи форми Двієчники.Курсор повинен залишатися в полі КП.