Макрокоманда «ПриОшибке»

Применяется к
Access для Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

С помощью макрокоманды ПриОшибке можно указать действие, выполняемое при возникновении ошибки в макросе.

Примечание

Макрокоманда "ПриОшибке" недоступна в веб-приложениях Access.

Настройка

Макрокоманда ПриОшибке имеет следующие аргументы:

Аргумент макрокоманды Описание
Перейти Определяет общее поведение после возникновения ошибки. Щелкните стрелку раскрывающегося списка и выберите одно из следующих значений:

Следующий: Access записывает сведения об ошибке в объекте MacroError , но не останавливает макрос. Выполнение продолжается со следующей макрокоманды.

Имя макроса: Access останавливает текущий макрос и запускает макрос с именем в аргументе Имя макроса .

Не: Access останавливает текущий макрос и отображает сообщение об ошибке.
Имя макроса Если аргумент Перейти имеет значение Имя макроса, введите имя макроса, который будет использоваться для обработки ошибок. Введенное имя должно соответствовать имени вложенного макроса для текущего макроса; нельзя указать имя другого объекта. В следующем примере макрос "ОбработчикОшибок" содержится в том же объекте макроса, что и макрокоманда ПриОшибке.
Этот аргумент должен оставаться пустым, если аргумент Перейти имеет значение Далее или Сбой.

Замечания

  • Макрокоманда ПриОшибке обычно находится в начале макроса, но ее можно поместить и дальше. Правила, определяемые этой макрокомандой, будут действовать независимо от места ее запуска.
  • Если для аргумента Go to задано значение Fail, Access будет вести себя так же, как и при отсутствии действия OnError в макросе. То есть при обнаружении ошибки Access останавливает макрос и отображает стандартное сообщение об ошибке. Основное использование параметра Fail заключается в отключении обработки ошибок, установленных ранее в макросе.

Пример

Следующий макрос демонстрирует использование макрокоманды ПриОшибке. В данном примере макрокоманда ПриОшибке указывает, что при возникновении ошибки будет выполнен пользовательский вложенный макрос "ОбработчикОшибок". Если в любой из последующих макрокоманд произойдет ошибка, Access перейдет к вложенному макросу "ОбработчикОшибок". Макрос "ОбработчикОшибок" отображает окно сообщения с данными об ошибке из объекта ОшибкаМакроса.

Имя вложенного макроса Действие Аргументы
ПриОшибке Перейти: Имя макроса
Имя макроса: ОбработчикОшибок
[Макрокоманда 2]
...
[Макрокоманда n]
ОбработчикОшибок Окно сообщения Сообщение: ="Ошибка" & [MacroError].[Номер] & "в макрокоманде" & [MacroError].[ИмяМакрокоманды].
Сигнал: Да
Тип: Отсутствует
Заголовок: Произошла ошибка

Ниже приведен снимок экрана конструктора макросов Access с предыдущим примером. В этом случае выражение в макрокоманде ЗадатьЛокПеременную вызывает ошибку из-за попытки деления на нуль. Access переходит к вложенному макросу с именем "ОбработчикОшибок" и выводит окно сообщения со сведениями об ошибке.

Рабочая область конструирования макросов Access с макрокомандой