Отладка
макросов и поиск ошибок
Обычно для
отладки макроса его выполняют в пошаговом режиме. Для включения этого режима
необходимо нажать кнопку
По шагам
(Single Step) на панели инструментов
в окне Конструктора макросов или выбрать команду меню
Запуск, По шагам
(Run,
Single Step). Тогда перед выполнением каждой макрокоманды будет появляться диалоговое
окно
Пошаговое исполнение макроса
(Macro Single Step) (рис. 11.14).
В этом окне
отображаются имя макроса, имя исполняемой макрокоманды, условие ее исполнения
и аргументы. При этом в полях
Условие
(Condition) и
Аргументы
(Arguments)
видны значения условного выражения и аргументов макрокоманды. Если в строке
макрокоманды условие не указано, в поле Условие (Condition) всегда будет показываться
значение
Истина
(True). Кнопки справа от полей в этом окне позволяют
выполнить очередную макрокоманду, прервать выполнение макроса (например, если
видно, что аргументы вычислены неправильно) и продолжить выполнение в обычном
режиме, т. е. не по шагам.
![](14.gif)
Рис. 11.14.
Диалоговое окно
Пошаговое исполнение макроса
Если в процессе
выполнения макроса возникла ошибка, появляется диалоговое окно
Ошибка выполнения
макроса
(Action Failed), аналогичное окну
Пошаговое исполнение макроса
(Macro Single Step), но без возможности продолжить процесс (кнопки
Шаг
(Step) и
Продолжить
(Continue) недоступны). Можно только прервать
выполнение макроса, нажав кнопку
Прервать
(Halt). В окне отображается
макрокоманда, содержащая ошибку.
Поиск ошибок
в макросах, как правило, не вызывает больших затруднений. Это связано с тем,
что:
-
большинство синтаксических
ошибок проверяется при вводе и система просто не даст ввести неправильное
название макрокоманды или условное выражение (правда, она не защитит от ввода
неправильного имени объекта, например несуществующей формы или элемента управления
в форме);
-
макросы, как правило,
достаточно просты и не содержат длинных последовательностей макрокоманд, в
противном случае лучше написать процедуру на VBA, т. к. язык VBA предоставляет
больше возможностей и имеет существенно лучшие средства отладки.
Основные ошибки,
которые возникают в макросах, связаны либо с неправильным вводом имен объектов,
и тогда Access не может найти соответствующий объект, либо с тем, что объекты,
на которые ссылается макрокоманда, недоступны, например форма не открыта. Поэтому
при возникновении ошибки в первую очередь нужно проверить, правильно ли введены
имена объектов и открыты ли формы, использованные в условиях или аргументах
макрокоманд.
Совет
Прежде чем использовать
ссылки на форму или элемент управления, рекомендуется выполнять проверку,
открыта ли форма, с помощью функции isLoaded(). К сожалению, эта функция не
является стандартной функцией Access, а обычно включается в модуль "Служебные
функции" (Utility Function) базы данных "Борей". Вы можете
скопировать ее оттуда в свою базу данных.
Стандартным
приемом отладки как процедур, так и макросов, является вывод на экран специальных
сообщений, говорящих о прохождении определенных этапов процесса. В макросах
это осуществляется путем вставки дополнительных макрокоманд ВыводСообщения (MsgBox)
для отображения таких сообщений. Причем в сообщении можно вывести значения свойств
элементов управления, например: "Цена товара = " & Forms!Товары!Цена
Можно легко
отключить вывод на экран отладочных сообщений, для чего введите в столбец "Условия"
(Condition) напротив соответствующих макрокоманд значение Ложь.
Еще один стандартный
прием — установка точек останова. Его применяют для того, чтобы остановить выполнение
макроса в определенной точке до завершения процесса. Для этого используется
макрокоманда ОстановитьМакрос (StopMacro). Макрос будет выполняться до макрокоманды
ОстановитьМакрос (StopMacro), после этого можно проверить результаты. Таким
образом, можно локализовать ошибку с точностью до макрокоманды.
Содержание раздела