Зазвичай для налагодження макросу його виконують в покроковому режимі. Для включення цього режиму необхідно натиснути кнопку За кроків (Single Step) на панелі інструментів у вікні Конструктора макросів або вибрати команду меню Запуск, По кроків (Run, Single Step). Тоді перед виконанням кожної дії буде з'являтися діалогове вікно Покрокове виконання макросу (Macro Single Step) (Мал. 14).
У цьому вікні відображаються ім'я макросу, ім'я виконуваної дії, умова її виконання і аргументи. При цьому в полях Умова (Condition) і Аргументи (Arguments) видно значення умовного виразу і аргументів дії. Якщо в рядку дії умова не вказано, в поле Умова (Condition) завжди буде показуватися значення Істина (True). Кнопки праворуч від полів в цьому вікні дозволяють виконати чергову макрокоманду, перервати виконання макросу (наприклад, якщо видно, що аргументи обчислені неправильно) і продовжити виконання в звичайному режимі, тобто не по кроках.
Мал.14. Діалогове вікно Покрокове виконання макросу
Якщо в процесі виконання макросу виникла помилка, з'являється діалогове вікно Помилка виконання макросу (Action Failed), аналогічне вікну Покрокове виконання макросу (Macro Single Step), але без можливості продовжити процес (кнопки Крок (Step) і Продовжити (Continue) недоступні). Можна тільки перервати виконання макросу, натиснувши кнопку Перервати (Halt). У вікні відображається макрокоманда, що містить помилку.
Пошук помилок в макросах, як правило, не викликає великих труднощів. Це пов'язано з тим, що:
більшість синтаксичних помилок перевіряється при введенні і система просто не дасть ввести неправильну назву дії або умовне вираз (правда, вона не захистить від введення неправильного імені об'єкта, наприклад неіснуючої форми або елемента керування у формі);
макроси, як правило, досить прості і не містять довгих послідовностей макрокоманд, в іншому випадку краще написати процедуру на VBA, т. к. мову VBA надає більше можливостей і має суттєво кращі засоби налагодження.
Основні помилки, які виникають в макросах, пов'язані або з неправильним введенням імен об'єктів, і тоді Access не може знайти відповідний об'єкт, або з тим, що об'єкти, на які посилається макрокоманда, недоступні, наприклад форма не відкрита. Тому при виникненні помилки в першу чергу потрібно перевірити, чи правильно введені імена об'єктів і відкриті форми, використані в умовах або аргументах макрокоманд.
Порада
Перш ніж використовувати посилання на форму або елемент керування, рекомендується виконувати перевірку, чи відкрита форма, за допомогою функції isLoaded (). На жаль, ця функція не є стандартною функцією Access, а зазвичай включається в модуль "Службові функції" (Utility Function) бази даних "Борей". Ви можете скопіювати її звідти в свою базу даних.
Стандартним прийомом налагодження як процедур, так і макросів, є висновок на екран спеціальних повідомлень, які говорять про проходження певних етапів процесу. У макросах це здійснюється шляхом вставки додаткових макрокоманд ВиводСообщенія (MsgBox) для відображення таких повідомлень. Причому в повідомленні можна вивести значення властивостей елементів управління, наприклад: "Ціна товару =" & Forms! Товари! Ціна
Можна легко відключити вивід на екран налагоджувальних повідомлень, для чого введіть у стовпчик "Умови" (Condition) навпроти відповідних макрокоманд значення Брехня.
Ще один стандартний прийом - установка точок зупину. Його застосовують для того, щоб зупинити виконання макросу в певній точці до завершення процесу. Для цього використовується макрокоманда ОстановітьМакрос (StopMacro). Макрос буде виконуватися до дії ОстановітьМакрос (StopMacro), після цього можна перевірити результати. Таким чином, можна локалізувати помилку з точністю до дії.