Використання макросів для програмування у MS ACCESS
Використання макросів у конкретній програмі пропонується розглянути на прикладі наступного завдання.
При відкритті бази даних "АРМ FORMSNAVIGATOR 1.0" спочатку на екрані виводиться запрошення до роботи і потім відкривається основне вікно навігатора.
Для цих дій використовується макрос AUTOEXEC.

Він виконується відразу після відкриття бази даних у автоматичному режимі. Лістинг макросу див. у додатках.
Вікно FORMSNAVIGATOR 1.0 містить такі елементи керування: Група перемикачів "Вибір форми" та Кнопка "Запуск". Існує можливість вибору необхідної форми за допомогою Групи перемикачів. Підказка допомагає навіть недосвідченому користувачеві в організації найбільш оптимальної роботи. Після вибору необхідної форми слід натиснути кнопку "Запуск". Кнопка також має спливаючу підказку. Після натискання кнопки буде завантажено необхідну форму. Ця функція реалізована в макросі ДЛЯ_ГРУПИ. Лістинг його наведено у додатках.

Проте слід зазначити те що, що форма " Фінанси фірми " має обмежений паролем доступ. Реалізація цієї функції закладена у макрос ПАРОЛЬ. Лістинг його наведено у додатках. У цьому випадку після натискання кнопки "Запуск" буде виведено таке повідомлення

Після цього на екрані з'являється запрошення для введення пароля: Кнопка "Введення пароля" та спеціальне поле для нього.

Натискання кнопки "Введення пароля" запускає макрос CLEAR (листинг див. у додатках), який активує поле для введення пароля та очищає його. Символи, набрані в цьому полі, відображаються зірочками. Якщо пароль набрано неправильно, виводиться відповідне повідомлення і фокус переходить до кнопки "Введення пароля".

У разі жправильного введення пароля машина також повідомляє про це і відбувається завантаження форми "Фінанси"

Як було зазначено вище за ці події відповідає макрос ПАРОЛЬ.
У формі "Фінанси" при правильному паролі стає доступна фінансова інформація фірм. Навігація за записами здійснюється за допомогою Поля зі списком та Кнопки "Наступна фірма". При цьому виявляються задіяними макроси НАЙТИ1, НАЙТИ_ДАЛЕЕ1 і ВСТАНОВИТИ_ПІДПИС_КНОПКЕ1 (див. додатки). Вибір потрібної фірми в полі зі списком призводить до автоматичного виведення на екран фінансових відомостей про неї (а точніше про центральну фірму) і зміни підпису до кнопки "Наступна фірма", натискання кнопки призводить до пошуку інформації про філії.


Тут також використовується такий інтерактивний інструмент, як підказки.
При натисканні кнопки "До FORMSNAVIGATOR 1.0" виконується макрос К_ FORMSNAVIGATOR_1.0 і здійснюється перехід до головного вікна навігатора. Лістинг макросу див. у додатках.

Тепер вибираємо для запуску форму «Відомості про фірми» та запускаємо її натисканням кнопки. Я вже вказував на макрос, що працює тут.(ДЛЯ_ГРУПИ) Здійснюється перехід на форму «Фірма». Тут використовуються такі макроси: ЗНАЙТИ, ЗНАЙТИ_ДАЛІ для навігації за записами; ВСТАНОВИТИ_ПІДПИС_КНОПКУ для зміни зовнішнього вигляду кнопки;К_FORMSNAVIGATOR_1_0 для повернення до основного вікна навігатора; а також макрос ДЕТАЛЬНІШЕ, який залежно від того є чи ні прапорця «Відомості про реєстрацію» виводить або приховує поля з інформацією про реєстрацію фірми. Лістинг його у додатках.

Автор:Славніков Дмитро Васильович
Завантажити базу даних АРМ FORMSNAVIGATOR 1.0.
Після запрошення до роботи вибрати необхідну форму шляхомустановки відповідного перемикача та натиснути кнопку «Запуск».
У формі «Фірма» навігація за записами здійснюється так:
за допомогою поля зі списком знаходяться центральні відділення фірм;
за допомогою кнопки «Наступна . »знаходяться філії (якщо такі є).
Для входу у форму фінанси необхідно ввести пароль:
натиснути на кнопку "Введення пароля" (поле для введення очиститься і в ньому буде встановлений курсор);
ввести пароль (для безпеки символи відображатимуться зірочками);
натиснути клавішу введення;
при помилковому введенні пароля повторити всі дії.
У формі "Фінанси" навігація за записами здійснюється аналогічно формі "Фірма"
Для повернення в основне вікно FORMSNAVIGATORA 1.0 будь-якої форми слід натиснути кнопку «До FORMSNAVIGATORA 1.0».
Бажаємо успішної та плідної роботи в АРМ FORMSNAVIGATORA 1.0.
Автор:Славніков Дмитро Васильович
У цій науковій роботі було застосовано макросів. Причому їх дублюються через специфіки виконуваних функцій, інші не мають аналогів. Почнемо мабуть з AUTOEXEC – макросу. (див. додатки) Його специфіка полягає в тому, що макрос із таким ім'ям завжди запускається в автоматичному режимі під час завантаження бази даних. Ця його властивість дозволяє без втручання користувача вивести запрошення до роботи і відкрити головне вікно АРМ FORMSNAVIGATOR 1. 0. У всякому разі така автоматизація справляє належне враження на певну групу (я так думаю дуже велику) користувачів. Макрос AUTOEXEC дуже простий за структурою, тому й затримуватись на ньому не будемо.
Макрос ДЛЯ_ГРУПИ вже не такий простий, він містить умову і до того ж використовує велику кількість команд. Умова дозволяє здійснити вибіркористувачеві необхідної для завантаження форми. Крім того, хотілося б особливо відзначити макрокомандуЗАДАТИ ЗНАЧЕННЯ. Вона дуже універсальна і дозволяє в даному випадку здійснити виведення на екран та приховування певних елементів (кнопка «Введіть пароль» та поле для його введення). В даному випадку використані їх властивостівиведення на екран (Visible),яким за допомогою макрокомандиЗАДАТИ ЗНАЧЕННЯприсвоюється значення абоІСТИНА, абоБРЕХНЯ.Мабуть одна з найпростіших командПІСКОВІ ГОДИННИКИнадає роботі програми «фірмовий» вигляд, якщо машина занадто довго думає. Цей макрос «прив'язаний» до подіїнатискання кнопки«Запуск».
Далі розглянемо макрос ПАРОЛЬ. Він також містить умову: порівнюються справжнє значення пароля та пароль, введений користувачем. Якщо умова виконана, сховавши елементи введення пароля, відкриваємо форму «Фінанси» і виводимо на екран приховані фінансові відомості. Якщо користувач ввів пароль з помилкою, то йому надається нова можливість для введення пароля. Макрос запускаєтьсяпісля оновленняполя для введення пароля.
Через специфіку роботи програми для функції введення пароля був також використаний макрос CLEAR, що очищає поле для введення пароля. Макрос «прив'язаний» до подіїнатискання кнопки«Введення пароля».
Розглянемо також принцип роботи макросів, які відповідають за навігацію за записами у формах: ЗНАЙТИ (НАЙТИ1), ЗНАЙТИ_ДАЛІ (НАЙТИ_ДАЛІ1). При виконанні даного макросу фокус переходить на полі фірма, де здійснюється пошук. Найголовніша макрокоманда тут - це <ЗНАЙТИ ЗАПИС. За зразок пошуку приймається значення з поля зі списком. Пошук здійснюється від першого запису донизу. Потім фокус повертається до поля зі списком. В принципі остання команда працює лише длясуб'єктивної психології людини,. адже користувач і не здогадується як працює програма, а тому якщо він вибирає значення зі списку, то фокус не повинен «стрибати» по всій формі. Макрос починає працюватипісля оновленняполя зі списком фірм.
Макрос ЗНАЙТИ_ДАЛІ (НАЙТИ_ДАЛІ1) на перший погляд не відрізняється від попереднього, проте зміна всього в одному операнді макрокомандиЗНАЙТИ ЗАПИСпризводить до зовсім інших результатів. Вся різниця в операнді – перше входження. Тут пошук здійснюється вже не з першого, а з поточного запису. Таким чином відбувається пошук відомостей про філії . Запуск макросу відбувається післянатискання кнопки"Наступна . . . ".
Макрос ВСТАНОВИТИ ПІДПИС КНОПКУ (ВСТАНОВИТИ ПІДПИС КНОПКУ1) складається взагалі з однієї макрокомандиЗАДАТИ ЗНАЧЕННЯ. Але тим не менш дуже витончений і робить дуже гарну з погляду користувача функцію (та й корисну, адже без нього кнопка "Наступна ..." могла б сприйматися в очах користувача як кнопка для переходу до наступного запису!). Функції Caption присвоюється значення "Наступна" & [Forms]![Фірма]![пссфм], тобто наступна + значення поля зі списком. Макрос працює за якістюкнопка вгорудля кнопки «Наступна. » та привідкриттіформи.
Макрос ДЕТАЛЬНІШЕ дозволяє користувачеві простою установкою прапорця виводити на екран (або знявши прапорець, прибирати з екрана) відомості про реєстрацію фірм. Ця властивість дуже корисна, тому що дозволяє прибирати з екрана непотрібну на даний момент інформацію. Ця функція виконується за допомогою умови і все тієї ж універсальної і всіма улюбленою командоюЗАДАТИ ЗНАЧЕННЯ. Тут знову-таки ми використовуємо для операнда елемент Visible для приміток форми, де і знаходятьсянаші відомості про реєстрацію. Макрос «прив'язаний» до подійпісля оновленняпрапорця тазавантаженняформи «Фірма».
Макрос К_FORMSNAVIGATOR1_0 використовується як у формі "Фірма". Так і у формі «Фінанси» для здійснення повернення до основного вікна FORMSNAVIGATOR1. 0. Його склад дуже простий. Такий макрос думаю я здолає більшість студентів, а тому і зупинятися на ньому не будемо.
Розглянувши всі застосовувані тут макроси хотілося б зробити деякі висновки:
Насамперед макроси негаразд складні як про них думають, отже, слід сміливо їх застосовувати;
макроси цілком здатні (щоправда) замінити справжнє програмування на VisualBasic
макроси в деяких випадках можуть навіть те, на що не здатний VisualBasic
часто та сама макрокоманда здатна здійснювати різні функції (наприклад, команда ЗАДАТИ ЗНАЧЕНИЕ)
програмування в макрокомандах дозволяє краще зрозуміти всю структуру БД, а тим самим створити дуже зручне користувальницьке додаток.
Автор:Славніков Дмитро Васильович
Передбачається, що філії заносяться до бази даних після відомостей про центральну фірму