03. В ADO и DAO ошибки обрабатываются по разному, 
используйте этот пример для анализа действий вашей программы при 
аварийных выходах.
                
                
                
  
  
    | 
						
										|  |  
										| Option Compare Database Option Explicit
 '***************************************************************
 ' 03. Обработка ошибок разными методами
 '***************************************************************
 
 '==============================================================
 ' ADO. Обработка ошибок
 Private Sub butADO_Click()
 Dim cnn As New ADODB.Connection
 Dim oneErr As ADODB.Error, s As String
 On Error Resume Next
 cnn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=?"
 ' Информация о всех ошибках
 s = "Список ошибок;------ ADO -------;"
 For Each oneErr In cnn.Errors
 s = s & "Описание;" & oneErr.Description & ";"
 s = s & "Номер;" & oneErr.Number & ";"
 s = s & "Имя приложения;" & oneErr.Source & ";"
 s = s & "SQLState;" & oneErr.SQLState & ";"
 s = s & "NativeError;" & oneErr.NativeError & ";"
 s = s & "Код справки;" & oneErr.HelpContext & ";"
 s = s & "Файл справки;" & oneErr.HelpFile & ";"
 Next
 ' Полная информация о последней ошибке
 s = s & "Последняя ошибка;------ ADO -------;"
 Me.listErrors.RowSource = s & funLastError 'Отображаем ошибку
 Resume Next
 End Sub
 
 
 '==============================================================
 ' DAO. Обработка ошибок
 Private Sub butDAO_Click()
 Dim dbs As DAO.Database
 Dim oneErr As DAO.Error
 Dim strmdb As String, s As String
 
 On Error Resume Next
 Set dbs = DBEngine.OpenDatabase("?", , 2 / 0) ' Генерируем ошибку
 'Err.Raise 11 ' Самостоятельный генератор ошибок
 
 ' Информация о всех ошибках
 s = "Список ошибок;------ DAO " & DAO.Version & " -------;"
 For Each oneErr In DBEngine.Errors
 s = s & "Описание;" & oneErr.Description & ";"
 s = s & "Номер;" & oneErr.Number & ";"
 s = s & "Имя приложения;" & oneErr.Source & ";"
 Next
 ' Полная информация о последней ошибке
 s = s & "Последняя ошибка;------ DAO -------;"
 Me.listErrors.RowSource = s & funLastError 'Отображаем ошибку
 Err.Clear
 End Sub
 
 
 '==============================================================
 '  Возвращает информацию о последней ошибке
 '  ADO и DAO
 Private Function funLastError() As String
 Dim s As String
 s = "Описание;" & Err.Description & ";"
 s = s & "Номер;" & Err.Number & ";"
 s = s & "Код справки;" & Err.HelpContext & ";"
 s = s & "Файл справки;" & Err.HelpFile & ";"
 s = s & "Имя приложения;" & Err.Source & ";"
 s = s & "DLL код;" & Err.LastDllError & ";"
 funLastError = s
 End Function
 |  |