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