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

 

 

 



© 2018 | Анна Петросян | pashelp@yandex.ru