Сбор ошибок (DAO)
Область применения: Access 2013, Office 2013
Коллекция Errors содержит все сохраненные объекты Error , каждый из которых относится к одной операции с dao.
Замечания
Любая операция с использованием объектов DAO может привести к одной или нескольким ошибкам. При возникновении каждой ошибки один или несколько объектов Error помещаются в коллекцию Errors объекта DBEngine . Когда другая операция DAO создает ошибку, коллекция Errors очищается, а новый набор объектов Error помещается в коллекцию Errors . Объект с наибольшим номером в коллекции Errors (DBEngine.Errors.Count — 1) соответствует ошибке, сообщаемой объектом Err microsoft Visual Basic для приложений (VBA).
Операции DAO, которые не создают ошибку, не влияют на коллекцию Ошибок .
Элементы коллекции Errors не добавляются, как обычно в другие коллекции, поэтому коллекция Errors не поддерживает методыAdd и Delete .
Набор объектов Error в коллекции Errors описывает одну ошибку. Первый объект Error — это ошибка наименьшего уровня, второй — следующий более высокий уровень и т. д. Например, если при попытке открыть объект Recordset возникает ошибка ODBC, первый объект ошибки содержит ошибку ODBC самого низкого уровня; последующие ошибки содержат ошибки ODBC, возвращаемые различными уровнями ODBC. В этом случае диспетчер драйверов ODBC и, возможно, сам драйвер возвращают отдельные объекты Error . Последний объект Error содержит ошибку DAO, указывающую, что объект не удалось открыть.
Перечисление конкретных ошибок в коллекции Errors позволяет подпрограммам обработки ошибок более точно определить причину и источник ошибки и предпринять соответствующие шаги для восстановления.
Примечание.
Если вы используете новый ключевое слово для создания объекта, который вызывает ошибку до или во время его размещения в коллекции Errors, коллекция не содержит сведений об ошибке об этом объекте, так как новый объект не связан с объектом DBEngine. Однако сведения об ошибке доступны в объекте VBA Err .
Пример
В этом примере выполняется принудительное выполнение ошибки, ее перехват и отображаются свойства Description, Number, Source, HelpContext и HelpFile результирующего объекта Error .
Sub DescriptionX()
Dim dbsTest As Database
On Error GoTo ErrorHandler
' Intentionally trigger an error.
Set dbsTest = OpenDatabase("NoDatabase")
Exit Sub
ErrorHandler:
Dim strError As String
Dim errLoop As Error
' Enumerate Errors collection and display properties of
' each Error object.
For Each errLoop In Errors
With errLoop
strError = _
"Error #" & .Number & vbCr
strError = strError & _
" " & .Description & vbCr
strError = strError & _
" (Source: " & .Source & ")" & vbCr
strError = strError & _
"Press F1 to see topic " & .HelpContext & vbCr
strError = strError & _
" in the file " & .HelpFile & "."
End With
MsgBox strError
Next
Resume Next
End Sub