Макрос для послідовного виконання запиту

Нехай є задача, що вимагає послідовного виконання запитів і відображення результатів їх виконання. Нехай потрібно підрахувати кількість студентів в групах і внести ці дані в поле КІЛ таблиці ГРУПА. Підрахунок реалізований запитом КІЛЬКІСТЬ. Оновлення поля КІЛ на основі отриманих у цьому запиті даних виконує запит Оновлення_ГРУПА_КІЛ. Поставлена задача розв’язується шляхом послідовного виконання таких запитів.

Створимо макрос, що послідовно виконає ці запити. Крім того, включимо у макрос макрокоманди, що автоматизують дії користувача по управлінню об’єктами на екрані при рішенні задачі і дії по відображенню на екрані результатів рішення задачі у зручному для нього виді.

1. Для початку на вкладці Макроси натиснемо кнопку Створити і відкриємо вікно макроса (мал. 1).

2. Макрокоманди, що складають макрос, вводяться у стовпчик Макрокоманда за допомогою кнопки розкриття списку макрокоманд у цьому стовпці і вибрати ОткрытьЗапрос, щоб виконати перший запит.

3. Із списку у розділі Аргументи макрокоманди у нижній частині вікна макроса вибрати ім’я запиту КІЛЬКІСТЬ.

4. У стовпчик Примітка ввести текст, що описує результат виконання макрокоманди, наприклад, Створення таблиці з результатами підрахунку числа студентів в групі.

5. Для виконання запиту Оновлення_ГРУПА_КІЛвведемо макрокоманду ОткрытьЗапрос. Порядок розміщення макрокоманд бланку визначає послідовність їх виконання.

6. Щоб включити в макрос цю макрокоманду, скористайтеся перетягуванням об'єктів за допомогою миші. У вікні бази даних виберіть запит Оновлення_ГРУПА_КІЛі перетягніть його в рядок макрокоманди Сформується макрокоманда ОткрытьЗапрос, в аргументах якої автоматично з'явиться ім'я запиту, що відкривається, режим відображення запиту і режим роботи з його даними.

 

  1. Зберегти макрос під іменем Розрахунок числа студентів, скориставшись кнопкою панелі інструментів макроса Сохранить.
  2. Запустити макрос кнопкою на панелі інструментів Запуск.

  1. Під час виконання макроса на екран виводиться попередження від запитів, що виконуються. Для тимчасового відключення виведення на екран вікон цих повідомлень, доповнити макрос макрокомандою УстановитьСообщения. У рядку аргумента ВключитьСообщения вибрати значення Нет. Для відновлення виведення повідомлень після виконання запитів слід задати значення Да. Проте цю макрокоманду можна опустити, оскільки після припинення роботи макросу виведення попереджень відновлюється автоматично.
  2. Організуйте виведення на екран таблиць ГРУПА і Число студентів, щоб зробити наочним процес роботи макросу і оновлення таблиці. Для цього доповніть макрос так, як показано на мал. 2.
  3. Закрийте макрос і запустіть його з вікна бази даних, скориставшися кнопкою Запуск.
  4. Хід і результати виконання запиту по оновленню поля КІЛ відображаються на екрані у вигляді повідомлень і таблиць.
  5. Створіть в будь-якій формі кнопку запуску макросу за допомогою миші. Для цього у вікні бази даних виберіть макрос Розрахунок числа студентів в групах,який необхідно запускати при натисненні кнопки. Перетягніть його у форму, відкриту в режимі конструктора. У форму буде поміщена кнопка, пв'язана з даним макросом, має підпис, відповідний імені макросу.

 

Зауваження Якщо в макросі міститься група макросів, при використанні цього методу запускається тільки перший макрос з групи і не можна запустити інший, що входить до групи. Для запуску іншого макросу з групи необхідно, знаходячись у формі в режимі конструктора, встановити курсор миші на кнопку і викликати її властивості. У властивостях на вкладці События в рядку Hажатие кнопки треба замінити ім'я першого макросу групи, вибравши потрібне.

Макрокоманди, що використовуються в програмі, призначені для виконання дій, перерахованих нижче.

  • Свернутьдозволяє згорнути вікно, яке було активним в момент запуску макросу на виконання. Якщо макрос запускається з вікна бази даних і окрім цього вікна немає відкритих вікон, на екрані буде відображено тільки згорнуте вікно бази.
  • ОткрытьТаблицувідкриває таблицю ГРУПА. Ім'я таблиць і режим її відкриття указуються аргументами макрокоманди. Відкрита таблиця ГРУПА відображатиметься на екрані до виконання макрокоманди Закрыть. Це дозволить проглянути вміст таблиці до і після виконання запитів.
  • СдвигРазмердозволяє задати розмір і місцеположення вікна активного об'єкту. В результаті виконання макрокоманди після відкриття таблиці змінюються параметри вікна таблиці.
  • Сообщениевидає повідомлення, вказане в аргументах макрокоманди.
  • Восстановить відновлює вікно, згорнуте перед рішенням задачі.

 

ЗауваженняДопускається використання в макросі ще не створених об'єктів. Наприклад, в аргументі Имя таблицы макрокоманди ОткрытьТаблицувказано ім'я ще неіснуючої таблиці Число студентів. Проте до моменту виконання макрокоманди ця таблиця повинна бути створена в базі даних. В даному прикладі таблиця Число студентів створюється запитом в ході роботи макросу до виконання макрокоманди, що відкриває її.