Access. Программирование на VBA

       

Реагирование на возникновение ошибок


Значительную часть кода в процедуре обработки ошибок должен занимать оператор Select Case.

Сле­дует попытаться учесть все возможные ошибки, которые могут произойти, и создать список номеров ошибок в выражении Select Case обработчика ошибок. Затем можно создать код обработки для каждой ошибки.

Ожидаемая ошибка может быть обработана различными способами:

• Окно сообщения может предупредить пользователя об ошибке.

• Окно сообщения может предоставить пользователю информацию, необходимую для исправления ошибки (например. There is no disk in the disk drive (В этом дисководе нет диска)).

• Ошибку можно проигнорировать и продолжить выполнение кода.

• Ошибку можно проигнорировать и выйти из процедуры.

• Можно принять меры по исправлению ошибки в коде для продолжения успешного выполнения кода.

• Можно осуществить переход в другое место кода. Приведенный ниже код иллюстрирует вышесказанное:

ErrorHandler:

Select Case Err.Number

Case 11

If MsgBox("You divided a number by zero, enter a " & _

" different number. Do you want to try again? ", _

vbQuestion + vbYesNo) = vbYes Then

Resume



Else

Resume ExitHere

End If

Case Else

MsgBox "An unexpected occurred. Error Number: " & _

Err.Number & " Error Description: " & Err.Description

Resume ExitHere

End Select

End Sub

Можно даже создать общую процедуру обработки ошибок определенного типа. Например, если про­смотреть таблицу ошибок Access и Jet в файле Access and Jet Database Errors, mdb, можно заметить, что ошибки с номерами 58-76 относятся к файловым ошибкам. Сюда входят File already exists. Disk Full, Too many files и другое. Можно создать общую процедуру, работающую с данной группой ошибок, и вызы­вать эту процедуру из выражения Case Select обработчика ошибок:

ErrorHandler:

Select Case Err.Number

Case 58 To 76

' Общая процедура, обрабатывающая файловые ошибки.

Call FileTypeErrors

Case Else

MsgBox "An unexpected occurred. Error Number: " & _

Err.Number & " Error Description: " & Err.Description

Resume ExitHer

End Select

End Sub



Содержание раздела