Налагодження макросів та пошук помилок
Зазвичай для налагодження макросу його виконують у покроковому режимі. Для включення цього режиму необхідно натиснути кнопкуЗа кроками(Single Step) на панелі інструментів у вікні Конструктора макросів або вибрати команду менюЗапуск, По кроках(Run, Single Step). Тоді перед виконанням кожної макрокоманди з'являтиметься діалогове вікноПокрокове виконання макросу(Macro Single Step) (рис. 11.14).
У цьому вікні відображаються ім'я макросу, ім'я макрокоманди, що виконується, умова її виконання та аргументи. При цьому в поляхУмова(Condition) таАргументи(Arguments) видно значення умовного вираження та аргументів макрокоманди. Якщо в рядку макрокоманди умова не вказана, у полі Умова (Condition) завжди буде відображатися значенняІстина(True). Кнопки праворуч від полів у цьому вікні дозволяють виконати чергову макрокоманду, перервати виконання макросу (наприклад, якщо видно, що аргументи обчислені неправильно) і продовжити виконання у звичайному режимі, тобто не кроків.

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