Palabras clave: manejador, control, errores, log
Autor: Parece que McPegasus
Extraído de: La web del Búho
Objetivo
Estandarizar el manejo del control de errores.
En un comando cualquiera, de un formulario cualquiera, un dia cualquiera y a una hora cualquiera...
Private Sub CmdFacturar_Click()
On Error GoTo Err_CmdFacturar_Click
'cuerpo del procedimiento, codigo cualquiera
Exit_CmdFacturar_Click:
Exit Sub
Err_CmdFacturar_Click:
'En la siguiente funcion ERRORES, recogemos errores para escribirlas posteriormente en un LOG
'además de mostrar datos en pantalla al usuario:
Errores Err.Number, Err.Description & vbCrLf & _
"Evento: " & Screen.ActiveControl.EventProcPrefix & vbCrLf & _
"Formulario: " & Me.Name
Resume Exit_CmdFacturar_Click
End Sub
En el resto de la aplicacion solo habrá que copiar y pegar la linea:
Errores Err.Number, Err.Description & vbCrLf & _
"Evento: " & Screen.ActiveControl.EventProcPrefix & vbCrLf & _
"Formulario: " & Me.Name
en todos los flujos de errores de todos los eventos de los formularios.Tampoco cuesta tanto...¿No?
Ahora en un módulo BAS,las funciones de apoyo para grabar indicencias y para dar aviso en pantalla al usuario....
Function Errores(NumeroError As Integer, Texto As String)
MsgBox "Atención, mensaje Nº: " & NumeroError & vbCrLf _
& Texto, vbInformation + vbOKOnly, "Servicio de Mantenimiento"
EscribeDatosTxt ("----------------------------------------------------------")
EscribeDatosTxt ("Incidencia en el programa:")
EscribeDatosTxt ("Aviso Nº: " & NumeroError)
EscribeDatosTxt ("Descripción: " & Texto)
EscribeDatosTxt ("Fecha de la incidencia:" & Date & " -> Hora : " & Time)
EscribeDatosTxt ("----------------------------------------------------------")
' Fin de control de esta incidencia
End Function
Function EscribeDatosTxt(Texto As String)
Dim NumeroArchivo
NumeroArchivo = FreeFile
Open CurrentProject.Path & "\Incidecnias.txt" For Append As #NumeroArchivo
Print #NumeroArchivo, Texto
Close #NumeroArchivo
End Function
....asi si abrimos el fichero de incidencias...observaríamos unas lineas grabadas como esta...
----------------------------------------------------------
Incidencia en el programa:
Aviso Nº: 2102
Descripción: El nombre del formulario 'McPegasus :-P' está mal escrito o hace referencia a un formulario que no existe.
Evento: CmdFacturar
Formulario: Facturacion
Fecha de la incidencia:23/10/2003 -> Hora : 10:03:05
----------------------------------------------------------