Читаем Access 2002: Самоучитель полностью

On Error GoTo Err_Название_фирмы_LostFocus_Click

При этом сама процедура Err_Hазвание_фирмы_LostFocus_Click может размещаться где угодно (но обычно в конце процедуры), важно, чтобы строка, определяющая вариант процедуры обработки ошибок, была введена перед началом процедуры, так как ошибки могут возникнуть только в ее операторах.

Инструкция On Error GoTo 0 отключает обработку ошибок внутри процедуры. Даже если строка с номером 0 существует, она не запустит программу обработки ошибок. Если инструкции On Error GoTo 0 в процедуре нет, то обработка ошибок отключается автоматически, как только программа завершится.

Если вы выбираете форму On Error Resume Next, то строка, вызвавшая ошибку, пропускается и управление передается следующей строке. Выполнение программы не прерывается. Удобство этой инструкции состоит в том, что она позволяет проверять свойства объекта Err сразу за строкой, в которой ожидается возникновение ошибки, а также устранять ошибки внутри самой процедуры, без помощи обработчика.

Из трех перечисленных форм инструкции On Error целесообразно выбрать первую – On Error GoTo метка – и вставить ее в текст процедуры непосредственно после оператора с названием процедуры. Синтаксис самой процедуры стандартен:

Err_Название_фирмы_LostFocus_Click: MsgBox Err.Description

Последний оператор позволяет вывести сообщение об ошибке с указанием ее типа и обычно задается в конце текста основной процедуры. Инструкция Resume

Инструкция Resume возвращает управление из обработчика ошибок в процедуру. Эту инструкцию следует включать в обработчик, если необходимо передать управление в определенную строку процедуры (см. ниже). Однако инструкция Resume не является обязательной: если она отсутствует, то процедура может завершиться, когда обработчик выполнит свои функции.

Есть три формы инструкции Resume:

• Resume или Resume 0 – возвращает управление строке, при выполнении которой произошла ошибка;

• Resume Next – возвращает управление той строке, которая непосредственно следует за строкой, вызвавшей ошибку;

• Resume метка – передает управление строке, которая задана в качестве значения аргумента метка. Он содержит номер строки или метку.

Инструкции Resume и Resume 0 обычно применяются, когда пользователю необходимо внести исправления. Например, система запросила имя таблицы для открытия, а вы ввели название несуществующего объекта. В таком случае запрос можно повторить и продолжить выполнение программы с инструкции, вызвавшей ошибку, внеся исправления.

Инструкция Resume Next используется для обработки ошибок внутри самого обработчика. При этом команда, которая вызвала ошибку, больше не будет выполняться, когда управление вернется в процедуру.

Наконец, для передачи управления в другую строку процедуры применяется последняя форма инструкции – Resume метка. Например, управление может передаваться процедуре выхода, описанной в следующем разделе. Обычно используется именно этот вид инструкции Resume, если нет каких-либо особых требований:

Перейти на страницу:

Похожие книги