MS Access | Обработка и журналирование ошибокСкачать примеры в zip: TwoRecordsetsExample.zip, RecordsetCycleSample.zipСкачать примеры в accdb: TwoRecordsetsExample.accdb, RecordsetCycleSample.accdb |
См. также MS VBA | Операторы | Err.Raise
'представляет ошибку программы / exception в виде строки Public Function CErr() As String CErr = "Error: " & CStr(Err.Number) & "; " & Err.Source & "; " & Err.Description 'например Error: 3421; DAO.Field; Ошибка преобразования типа данных. End Function
'при возникновении ошибки записать ее в поле формы (поле ERROR) Private Sub ... () On Error GoTo Err 'при ошибке перейти к err: ... 'код процедуры Exit Sub Err: Recordset!ERROR = CErr() 'CErr берёт текущий exception и делает из него строку End Sub
'показывает ошибку программы на экран Public Sub ShowError() MsgBox err.Description, vbCritical, err.Source End Sub
Например:
'при возникновении ошибки выдать подробности на экран Private Sub ... () On Error GoTo Err 'при ошибке перейти к err: ... 'код процедуры Exit Sub Err: ShowError End Sub
'при возникновении ошибки во вложенной процедуре поднять exception и выдать подробности на экран Private Sub ... () On Error GoTo Err 'при ошибке перейти к err: ... 'код вложенной процедуры Exit Sub Err: Err.Raise 1, CErr 'Public Function CErr() -- выше End Sub См. также MS VBA | Операторы | Err.Raise
'поднять exception при возникновении какой-то конкретной ошибки If ... Then 'если возникла какая-то конкретная ошибка Err.Raise 1, "Internal error", "ТЕКСТ_НА_ЭКРАН" End If
Скачать пример в zip: TwoRecordsetsExample.zipСкачать пример в accdb: TwoRecordsetsExample.accdb
|