Access 2002

Функция Erl


Чтобы текущее значение переменной intState было более информативным, вместо чисел 1 и 2 используются константы conFStateOpeni ngFi 1 el и conFStateOpeni ngFi 1е2.

Другой способ, позволяющий определить, какой оператор привел к возникновению ошибки, основан на использовании номеров строк программного кода (да-да, в VBA по-прежнему можно использовать номера строк, которые в первых версиях Basic были обязательными, но теперь не являются необходимыми для каждой строки). В нем используется функция Erl, возвращающая номер строки кода, которая была выполнена последней. Например, предыдущую программу можно было бы переписать так, как  12.5. Заметьте, что мы поместили номера только в те строки, которые могут вызвать ошибку. Обратите  и на то, как обработчик ошибок проверяет значения, возвращенные функцией Erl.

Функция Erl не интерполирует номера строк. То есть она возвращает только номер последней обработанной строки, у которой имеется ассоциированный с ней номер. Если VBA выполнил строку кода, ассоциированную с номером 10, а затем выполнил еще несколько строк кода перед тем, как возникла ошибка времени выполнения, то функция Erl по-прежнему возвратит значение 10, потому что это был последний ассоциированный номер строки, обработанный VBA.

Для возвращения из обработчика ошибок в основную часть процедуры применяется оператор Resume. Оператор Resume имеет три формы:

О Resume;

О Resume Next;

О Resume Метка.

Они описываются в следующих разделах.

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

Комментарии закрыты