Эта метка является точкой выхода для процедуры. Рекомендуется использовать только одну точку выхода в одной процедуре. Если процедура выполняется без ошибок, вызывается код ExitHere и процедура заканчивает работу. Код в ErrorHandler не выполняется, поскольку он находится в самом конце процедуры. Выполнение не доходит до этой точки в процедуре, поскольку выход из процедуры уже состоялся.
Метка
ExitHere — идеальное место для вставки кода очистки. Например, можно освободить любые объектные переменные, присвоив им пустое значение, закрыть базу данных, возвратить курсор в форме песочных часов на значение, принятое по умолчанию, и включить обновление экрана.
Оператор
On Error Resume
обычно должен быть первым в процедуре выхода. Это необходимо, поскольку некоторые выражения очистки сами по себе могут стать причиной ошибки. Например, если сбой произошел до открытия базы данных и объектной переменной в процедуре выхода присвоено значение Nothing (Set db = Nothing), возникает ошибка.
СОВЕТ
Если процедура выполняется медленно и при этом включается/выключается курсор в форме песочных часов, (соответственно в начале и конце процедуры) необходимо быть очень осторожным, чтобы избежать проблем при возникновении ошибки. Примером кода очистки, который необходимо поместить в код ExitHere
перед выходом из процедуры вне зависимости от того, возникла ошибка или нет, может служить Docmd.Hourglass false,
СОВЕТ
В коде ExitHere необходимо возвратить курсор в форме песочных часов на значение, принятое по умолчанию. Песочные часы можно включить в начале процедуры. При возникновении ошибки перед обычным исчезновением песочных часов в конце процедуры выполнение кода переходит к обработчику ошибок и изображение песочных часов остается на экране. Если в точке выхода курсору возвращается значение, принятое по умолчанию, он в любом случае будет переустановлен.
Ниже приводится пример процедуры выхода с кодом очистки:
ExitHere:
On Error Resume Next
DoCmd.Hourglass False
DoCmd.Echo True
DoCmd.SetWarnings False