Використання макросів в базі даних Microsoft Access
При обробці даних досить часто доводиться виконувати довгі послідовності дій. Однак будь-які дії, операції, можуть бути записані у вигляді макрокоманд. Виклик макрокоманд призводить до виконання послідовності раніше описаних дій.
Застосування макрокоманд дозволяє автоматизувати різні повторювані процеси, такі як заповнення бази даних, виконання запитів, відкриття різних об'єктів тощо. За допомогою макросів, можна виконати практично усі дії над об’єктами Microsoft Access, які були розглянуті раніше. Істотною особливістю Microsoft Access, порівняно з Microsoft Word і Microsoft Excel, є можливість за допомогою макросів і модулів VBA визначати реакцію додатка на різноманітні дії в формах і звітах, такі як натиснення кнопок, зміна даних, відкриття і закриття формі звітів тощо.
Макрокоманда – послідовність операцій, записаних у вигляді інструкцій на спеціальній мові. Набір макрокоманд в Microsoft Access доволі широкий, за допомогою макросів можна реалізувати багато з того, що дозволяють зробити процедури на VBA. Кожна макрокоманда має певне ім’я і один, або декілька аргументів, які задаються користувачем. Наприклад, при використанні макрокоманди „Відкрити форму”, як аргументи необхідно задати ім’я форми, що відкривається і режим її виведення на екран.
Макрос – структура, що складається з однієї, або декількох макрокоманд, які виконуються послідовно, або у порядку, який відповідає певним умовам.
Використання макросів обумовлено тим, що їх легко створювати і для цього не потрібно вивчати синтаксис мови програмування. Як буде показано нижче, для створення макросу потрібно лише знати основні прийоми роботи в Microsoft Access і Windows, такі як перетягування об’єктів з вікна „Бази даних”, в спеціальні вікно – „Конструктор макросів”, вибір дії зі списку і уведення виразів в якості аргументів макрокоманди.
Таким чином, основне призначення макросів – це створення зручного інтерфейсу додатка: щоб форми і звіти відкривались при натисканні кнопок у формі або на панелі інструментів, або ж звичним вибором команди меню; щоб при відкритті додатка користувач бачив на екрані не вікно бази даних, наповнене безліччю таблиць, запитів, форм і звітів, а конкретну зрозумілу форму, за допомогою якої можна було б відразу здійснювати бажані дії. За допомогою макросів можна створювати зручні меню і панелі інструментів для додатків.
Однак, використання макросів має і певні недоліки:
c можливості макрокоманд обмежені порівняно з можливостями мови VBA. Тому у ряді випадків, без програмування на VBA не обійтись, хоча спочатку потрібна впевненість, що ці додаткові можливості дійсно потрібні. Мова VBA надає більш широкі можливості для роботи з даними, дозволяє використовувати механізм програмування об’єктів для зв’язку з іншими додатками, викликати функції з бібліотек динамічного завантаження (DDL) Windows і створювати спеціалізовані функції;
c макроси можна використовувати практично усюди, де використовуються процедури VBA, однак процедури VBA, зазвичай, виконуються швидше;
c макроси є об’єктами, що існують окремо від форм і звітів, в яких вони використовуються, тому коли цих об’єктів стає дуже багато, їх підтримка стає достатньо скрутною.
Процедури обробки подій на VBA, використовувані в формах і звітах, є невід’ємною частиною цих форм і звітів, і в цьому є свої переваги. Наприклад, при перенесенні форм і звітів з однієї бази даних в іншу, з ними автоматично переноситься зв’язані процедури.
Незважаючи на вищевикладене, у багатьох випадках використання макросів цілком виправдано, тому що це істотно спрощує і прискорює розробку додатка. Їх можна використовувати при створенні багато користувальницьких, або додатків типу „клієнт-сервер”, де швидкість роботи додатка критична, необхідно застосовувати VBA.
Створення макросів
В Microsoft Access існує спеціальний засіб для створення макросів – „Конструктор макросів”. Відкрити вікно „Конструктора макросів” для створення нового макросу можна за допомогою двох способів:
1.За допомогою кнопки „Макроси” у вікні бази даних. Для розкриття списку макросів, необхідно клацнути лівою кнопкою миші по ярлику „Макроси” з наступним натисненням кнопки „Создать” у верхній частині діалогового вікна (рис. 13.1).
Рис. 13.1. Діалогове вікно для створення макросів у базі даних
2.За допомогою кнопки „Новий об’єкт” на панелі інструментів „База даних”і обравши елемент „Макрос” (рис. 13.2).
Рис. 13.2. Створення макросів за допомогою панелі інструментів.
Після цього відкриється вікно проектування макрокоманд (рис. 13.3.).
Вікно „Конструктора макросів” побудовано аналогічно „Конструктору таблиць”, тобто розділено на дві частині – панель описів і панель аргументів.
Верхня частина вікна „Конструктора” – панель описів, – складається з декількох стовпців. За умовчання на цій панелі виводиться два стовпця: „Макрокоманда” і „Примечание”. Панель описів дозволяє визначити послідовність макрокоманд, з яких складається макрос.
Рядок у стовпці „Примечание” – це звичайне текстове поле, до якого можна ввести коментар, що описує виконувану дію. Стовпець „Примечание” містить умовні вирази для управління процесом виконання макрокоманди. Цей стовпець не обов’язково з’являється при першому завантаженню вікна проектування макрокоманд. Обрати її можна у меню „Вид” включивши опцію „Примечание”.
Рис. 13.3. Діалогове вікно проектування макрокоманд
Рядок в стовпці „Макрокоманда” представляє собою поле зі списком, де можна обрати потрібну макрокоманду. Необхідну інструкцію можна обрати з наданого списку. Коли поле „Макрокоманда” заповнене, то у нижній частині вікна „Конструктора макроса” з’являється панель аргументів, яка служить для введення значень аргументів відповідної макрокоманди. Список полів на цій панелі залежить від обраної макрокоманди, а може бути взагалі відсутнім, якщо макрокоманда не має аргументів. Ця особливість дозволяє не запам’ятовувати при створенні макросів список аргументі для кожної макрокоманди.
Примітка. Для швидкого переключення між панелями описів і аргументів, аналогічно роботі з таблицями і запитами в режимі Конструктора, можна використовувати клавішу <F6>.
Для уведення аргументів макрокоманди, найчастіше потрібно вибирати значення зі списків, або вводити вираз за допомогою клавіатури. Для введення виразів, можна скористатися побудовником виразів, кнопка якого знаходиться праворуч від поля аргументу. Ще одна кнопка побудовника виразів знаходиться на панелі інструментів. Як і в інших випадках, перед виразом потрібно поставити знак дорівнює (=). Виключення становлять аргумент „Выражение” макрокоманди „ЗадатьЗначение” і аргумент „Число повторений” макрокоманди „ЗапускМакроса”. Якщо ввести знак дорівнює перед виразом, що задає значення цих аргументів, то вираз буде обчислюватись двічі, що може привести до небажаних результатів.
Якщо в якості аргументу макрокоманди необхідно задати ім’я об’єкта бази даних, то його можна ввести за допомогою клавіатури або обрати його зі списку, що розкривається, або вказати назву об’єкта, перемістивши його з вікна бази даних.
Якщо база даних велика, то відбір записів у формі може зайняти певний час, тому рекомендується вивести на екран курсор у формі пісочного годинника, який буде показувати, що йде процес обробки даних. Щоб це зробити, потрібно скористатися макрокомандою „ПесочныеЧасы”. Макрокоманди у макросі виконуються у тій послідовності, у якій вони записані в стовпці „Макрокоманда”, тобто зверху вниз. Макрокоманду „ПесочныеЧасы” потрібно поставити першою, тому що курсор повинен змінитися перед виведенням форми. А для цього потрібно вставити новий рядок на панелі описів. Для забезпечення цієї процедури потрібно встановити курсор у перший рядок панелі і натиснути кнопку „Добавить строки”на панелі інструментів, або просто натиснути клавішу <Insert>. З’явиться пустий рядок. У цьому рядку в полі „Макрокоманда” необхідно обрати макрокоманду „ПесочныеЧасы”.Вполі „Включить” панелі аргументів з’явиться значення „Да”, встановлене за умовчання. Щоб повернути первісний вигляд курсору миші, в кінці створеного макросу потрібно увести таку ж макрокоманду „ПесочныеЧасы”,однак зі значенням „Нет” аргументу „Включить”.
Для збереження створеного макросу можна обрати в меню „Файл” команду „Сохранить как”, або натиснути клавішу <F12>. З’явиться вікно збереження макросу. Необхідно увести в поле введення ім’я макросу, дотримуючись правила іменування об’єктів Access.
Примітка. В Microsoft Word і Microsoft Excel є засоби автоматичного запису макросів. Ці засоби дуже зручні для вивчення VBA, оскільки дозволяють автоматично створювати процедуру, включивши запис макросу, виконавши необхідні дії і зупинивши запис. Тоді усі дії користувача, виконувані після включення запису і до її зупинки, перетворюються в текст процедури VBA. Потім цей текст можна переглянути і відредагувати за допомогою редактора VBA.В Microsoft Access засіб автоматичного запису макросів відсутній, відсутні також засоби автоматичного генерування коду VBA (за виключенням того, що створюють Майстри).
Створення груп макросів
При розробці додатка з використанням макросів, кількість макросів може виявитись величезною. Тому дуже важливо добре організувати доступ до потрібних макросів. Для цього в одному об’єкті „Макрос” можна поєднувати декілька макросів. Кожна з макрокоманд буде виконуватись незалежно від інших макрокоманд в групі. Макрокоманди, що входять в макрогрупу, представляють собою іменовані послідовності інструкцій. Наприклад, доцільно усі макроси, які пов’язані з подіями у формі, або у звіті поєднати в окремий об’єкт, що відповідає даній формі, або звіту. Для того, щоб можна було це зробити, кожний макрос групи повинний мати своє ім’я, а ім’я об’єкта „Макрос” буде ім’ям групи макросів.
Щоб створити групу макросів необхідно:
Ø відкрити „Конструктор макросів” одним із відомих Вам способів;
Ø натиснути кнопку „Имена макросов” на панелі інструментів. На панелі описів у вікні „Конструктора макросів” з’явиться ще один стовпець „Имя макроса”(рис. 13.4.);
Рис. 13.4. Діалогове вікно для створення груп макросів
Ø у цей стовпець потрібно ввести ім’я першого макросу. Інші прядки даного рядка краще залишити пустими – це полегшить переміщення і копіювання команд;
Ø починаючи з наступного рядка, потрібно ввести усі макрокоманди макросу і відповідні аргументи для кожної макрокоманди;
Ø оскільки при обробці макросів пусті рядки ігноруються, то для зручності доцільно пропустити один, або декілька рядків, для розділення макросів у групі. Цей прийом, а також введення коментарів для складних макросів, що складаються з великої кількості макрокоманд, дозволяють покращити можливість зчитування макросів;
Ø повторіть кроки для кожного макросу, що уводиться в групу.
Для запуску одного з макросів групи використовується повне ім’я для посилання на макрос. Повне ім’я формується таким чином:
ИмяГруппы.имяМакроса