С помощью макрокоманды ПриОшибке можно указать действие, выполняемое при возникновении ошибки в макросе.
Примечание: Макрокоманда "ПриОшибке" недоступна в веб-приложениях Access.
Настройка
Макрокоманда ПриОшибке имеет следующие аргументы:
Аргумент макрокоманды |
Описание |
||||||||
Перейти |
Определяет общее поведение после возникновения ошибки. Щелкните стрелку раскрывающегося списка и выберите одно из следующих значений:
|
||||||||
Имя макроса |
Если аргумент Перейти имеет значение Имя макроса, введите имя макроса, который будет использоваться для обработки ошибок. Введенное имя должно соответствовать имени вложенного макроса для текущего макроса; нельзя указать имя другого объекта. В следующем примере макрос "ОбработчикОшибок" содержится в том же объекте макроса, что и макрокоманда ПриОшибке. Этот аргумент должен оставаться пустым, если аргумент Перейти имеет значение Далее или Сбой. |
Замечания
-
Макрокоманда ПриОшибке обычно находится в начале макроса, но ее можно поместить и дальше. Правила, определяемые этой макрокомандой, будут действовать независимо от места ее запуска.
-
Если для аргумента Go to задано значение Fail, Access будет вести себя так же, как и при отсутствии действия OnError в макросе. То есть при обнаружении ошибки Access останавливает макрос и отображает стандартное сообщение об ошибке. Для параметра Fail main используется отключение обработки ошибок, установленных ранее в макросе.
Пример
Следующий макрос демонстрирует использование макрокоманды ПриОшибке. В данном примере макрокоманда ПриОшибке указывает, что при возникновении ошибки будет выполнен пользовательский вложенный макрос "ОбработчикОшибок". Если в любой из последующих макрокоманд произойдет ошибка, Access перейдет к вложенному макросу "ОбработчикОшибок". Макрос "ОбработчикОшибок" отображает окно сообщения с данными об ошибке из объекта ОшибкаМакроса.
Имя вложенного макроса |
Макрокоманда |
Аргументы |
ПриОшибке |
Перейти: Имя макроса Имя макроса: ОбработчикОшибок |
|
[Макрокоманда 2] |
||
... |
||
[Макрокоманда n] |
||
ОбработчикОшибок |
Окно сообщения |
Сообщение: ="Ошибка" & [MacroError].[Номер] & "в макрокоманде" & [MacroError].[ИмяМакрокоманды]. Сигнал: Да Тип: Отсутствует Заголовок: Произошла ошибка |
Ниже показан снимок экрана с конструктором макросов Access (в Access 2010 или более поздней версии), в котором настроен макрос из предыдущего примера. В этом случае выражение в макрокоманде ЗадатьЛокПеременную вызывает ошибку из-за попытки деления на нуль. Access переходит к вложенному макросу с именем "ОбработчикОшибок" и выводит окно сообщения со сведениями об ошибке.