Свойство Error.Source (DAO)
Область применения: Access 2013, Office 2013
Возвращает имя объекта или приложения, которые изначально создали ошибку.
Синтаксис
expression . Источник
Выражение Переменная, представляющая объект Error .
Замечания
Значение свойства Source обычно является именем класса или программным идентификатором объекта. Используйте свойство Source , чтобы предоставить пользователям сведения, если код не может обработать ошибку, созданную в объекте в другом приложении.
Например, если вы обращаетесь к Microsoft Excel и он создает ошибку "Деление на ноль", Microsoft Excel задает значение Error.Number в код Microsoft Excel для этой ошибки, а свойство Source — Excel.Application. Обратите внимание, что если ошибка создается в другом объекте, вызываемом Microsoft Excel, Microsoft Excel перехватывает ошибку и по-прежнему задает значение Error.Number в коде Microsoft Excel. Однако другие свойства объекта Error (включая источник) будут сохранять значения, заданные объектом, который создал ошибку. Свойство Source всегда содержит имя объекта, который первоначально создал ошибку.
На основе всей документации по ошибкам можно написать код, который будет обрабатывать ошибку соответствующим образом. Если обработчик ошибок завершается сбоем, можно использовать сведения об объекте Error , чтобы описать ошибку пользователю, используя свойство Source и другие свойства Error , чтобы предоставить пользователю сведения о том, какой объект изначально вызвал ошибку, описание ошибки и т. д.
Примечание.
Конструкция On Error Resume Next может быть предпочтительнее , чем On Error GoTo при работе с ошибками, созданными при доступе к другим объектам. Проверка свойства Объекта Error после каждого взаимодействия с объектом устраняет неоднозначность относительно того, к какому объекту обращается код при возникновении ошибки. Таким образом, можно убедиться, какой объект поместил код ошибки в Error.Number, а также какой объект изначально создал ошибку (Error.Source).
Пример
В этом примере выполняется принудительное выполнение ошибки, ее перехват и отображаются свойства 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