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