Tratamiento de errores: On Error Resume Next
23/03/2023Tratamiento de errores: ¿Cómo lo desactivo?
27/03/2023
'Extracto de una función de Luis Viadel que sólo tiene valor a título informativo sobre cómo utilizar la instrucción "On error GoTo"
Public Const URLActualiza As String = "https://cloudcowcrm.com/cowharmonyactualiza/"
'Extracto de la función
Public Function CompruebaInicio()
'--------------------------------------------------------------------------------------------------------
' Fuente : https://access-global.net/tratamiento-de-errores-el-objeto-err
'--------------------------------------------------------------------------------------------------------
' Título : CompruebaInicio
' Autor original : Luis Viadel
' Creado : 02/01/2016
' Propósito : Comprobaciones necesarias antes del inicio de la aplicación
' 1. Conexiones (Internet y servidor)
' 2. Conexión a la BD
' 3. Si hay instalada licencia
'--------------------------------------------------------------------------------------------------------
Dim URLDia As String
Dim ruta As String, Dia As String
DoCmd.SetWarnings False
On Error Resume Next
'1. Comprobación de conexiones a internet
'Comprueba si hay conexión a Internet
If CheckInetConnection("https://google.com") Then
'Comprueba si hay conexión con el servidor
If CheckInetConnection(URLActualiza) = False Then
MsgBox "No se puede conectar con el servidor. Póngase en contacto con el administrador del sistema.", vbCritical + vbOKOnly, "¡ATENCIÓN! Aviso Importante"
DoCmd.Quit
End If
'Descarga la imagen de la pestaña archivo y del formuario de carga
Dia = "Dia.bmp"
ruta = Application.CurrentProject.Path & "Dia.bmp"
URLDia = URLActualiza & Dia
'Limpia la caché para que pueda descargar el fichero
DeleteUrlCacheEntry URLDia
URLDownloadToFile 0, URLDia, ruta, 0, 0
Else
MsgBox "No hay conexión a Internet y la aplicación se cerrará. Revise la conexión e inténtelo de nuevo.", vbCritical + vbOKOnly, "¡ATENCIÓN! Aviso Importante"
End If
On Error GoTo 0
'A partir de aquí se enviará el control a la línea LinErr si se produce un error
On Error GoTo LinErr
'2. Comprobación de la conexión a la BD
Set rstTable1 = CurrentDb.OpenRecordset("usuar")
'Si abre la tabla está todo ok, si no saltará un error
rstTable1.Close
Set rstTable1 = Nothing
'3. Comprueba si hay licencia
'4. Asigan las claves de IE
Exit Function
LinErr:
If ReintentoConexion = False Then
'Hay error de conexión no controlado. Lanza mensaje y cierra
MsgBox "Ha habido un error en la conexión con la Base de datos. Revise la conexión e inténtelo de nuevo.", vbCritical + vbOKOnly, "¡ATENCIÓN! Aviso Importante"
DoCmd.Quit
Else
'Procedimiento de reconexión
End If
End Function