Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Область применения: Access 2013, Office 2013
Можно использовать действие OnError , чтобы указать, что должно произойти при возникновении ошибки в макросе.
Setting
Аргументы действия OnError приведены ниже.
Аргумент макрокоманды |
Описание |
||||||||
|---|---|---|---|---|---|---|---|---|---|
Перейти к разделу |
Укажите общее поведение, которое должно возникать при обнаружении ошибки. Щелкните стрелку раскрывающегося списка и выберите один из следующих параметров:
|
||||||||
Имя макроса |
Если аргумент Перейти к имеет значение Имя макроса, введите имя макроса, который будет использоваться для обработки ошибок. Введенное имя должно совпадать с именем в столбце Имя макроса текущего макроса; Невозможно ввести имя другого объекта макроса. В приведенном ниже примере макрос ErrorHandler содержится в том же объекте макроса, что и действие OnError . Этот аргумент необходимо оставить пустым, если для аргумента Перейти к задано значение Далее или Сбой. |
Замечания
Действие OnError обычно размещается в начале макроса, но вы также можете поместить его позже в макрос. Правила, установленные действием, вступают в силу при каждом выполнении действия.
Если для аргумента Go to задано значение Fail, Access будет вести себя так же, как и при отсутствии действия OnError в макросе. То есть при обнаружении ошибки Access останавливает макрос и отображает стандартное сообщение об ошибке. Для параметра Fail main используется отключение обработки ошибок, установленных ранее в макросе.
Пример
В следующем макросе показано использование действия OnError . В этом примере действие OnError указывает, что при возникновении ошибки Access запускает настраиваемый макрос обработки ошибок с именем ErrorHandler. При возникновении ошибки вызывается подмакро CatchErrors. Если номер ошибки равен 2102, отображается определенное сообщение и выполнение макроса останавливается. В противном случае отображается сообщение с описанием ошибки, а макрос приостанавливается, чтобы можно было выполнить дополнительные действия по устранению неполадок. Макрос ErrorHandler отображает окно сообщения, которое ссылается на объект MacroError для отображения сведений об ошибке.
Пример кода изсправочника программиста Microsoft Access 2010.
/* MACRO: mcrThrowErrors */
/* PURPOSE: Error handling using macros in Access 2010 */
OnError
Go to Macro Name
Macro Name CatchErrors
OpenForm
Form Name frmSamples
View Form
Filter Name
Where Condition
Data Mode
Window Mode Normal
MessageBox
Message This message appears after the OpenForm action
Beep Yes
Type None
Title
/* SUBMACRO: CatchErrors */
SubMacro: CatchErrors
If [MacroError].[Number]=2101 Then
MessageBox
Message Cannot find the specified form!
Beep Yes
Type Critical
Title
StopMacro
Else
MessageBox
Message =[MacroErro].[Description]
Beep Yes
Type None
Title Unhandled Error
SingleStep
End If
End SubMacro