Propiedad Error.Source (DAO)
Se aplica a: Access 2013, Office 2013
Devuelve el nombre del objeto o de la aplicación que generó originalmente el error.
Sintaxis
expresión . Fuente
Expresión Variable que representa un objeto Error .
Comentarios
El valor de la propiedad Source suele ser el identificador de programa o el nombre de clase del objeto. Use la propiedad Source para proporcionar a los usuarios información cuando el código no puede controlar un error generado en un objeto en otra aplicación.
Por ejemplo, si tiene acceso a Microsoft Excel y genera un error "División por cero", Microsoft Excel establece Error.Number en el código de Microsoft Excel para ese error y establece la propiedad Source en Excel.Application. Observe que si el error se genera en otro objeto invocado por Microsoft Excel, este intercepta el error y sigue estableciendo Error.Number en el código de Microsoft Excel. Sin embargo, las otras propiedades del objeto Error (incluida la propiedad Source) conservarán los valores establecidos por el objeto que generó el error. La propiedad Source siempre contiene el nombre del objeto que generó originalmente el error.
Basándose en toda la documentación del error, puede escribir código que controlará el error apropiadamente. Si el controlador de errores no actúa correctamente, puede usar la información del objeto Error para describir el error al usuario, utilizando la propiedad Source y las demás propiedades de Error con el fin de proporcionar al usuario información sobre qué objeto generó originalmente el error, la descripción del mismo, etc.
Nota:
[!NOTA] La construcción On Error Resume Next puede ser preferible a On Error GoTo cuando se tratan errores generados durante el acceso a otros objetos. La comprobación de la propiedad del objeto Error después de cada interacción con un objeto elimina la ambigüedad sobre cuál fue el objeto al que obtuvo acceso el código cuando se produjo el error. De este modo, puede saber con seguridad qué objeto colocó el código de error en Error.Number y qué objeto generó originalmente el error (Error.Source).
Ejemplo
En este ejemplo se fuerza un error, se captura y se muestran las propiedades Description, Number, Source, HelpContext y HelpFile del objeto Error resultante.
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