Access VBA: gestionar un error
He elaborado un código para que al modificar algún dato en un formulario se actualice automáticamente un informe en pdf en el drive.
Cuando el informe existe, el nuevo informe se sobrescribe sobre el antiguo. La intención es que este siempre actualizado.
El problema me surge, si al intentar sobrescribir el archivo antiguo, este está abierto, me da error 2501. Quiero solucionarlo provocando un mensaje de atención para advertir que se cierre el archivo para que pueda volver a intentarlo.
En parte me funciona bien, si no hay error todo va bien, si surge el error me lanza el mensaje y al cerrar el archivo lo reintenta. Pero el problema me surge cuando no cierro el archivo y doy a aceptar en el cuadro de mensaje (ya se que no tiene mucho sentido, pero me gustaría dejarlo completo), en este caso al volver a intentarlo, no me funciona el salto del error (On error goto).
Pensaba que podía ser porque el error anterior permanecía en memoria, por lo que he intentado añadir la línea Error. Clear, pero sigue sin funcionar.
Sub ExportarDrive_InformeCliente() DoCmd.RunCommand acCmdSaveRecord Var_Subcarpeta_Drive = DLookup("[Nombre]", "Comerciales", "Id_Comercial= '" & Var_Id_Comercial & "'") Var_NombreCliente_Drive = DLookup("[Nombre Comercial]", "Tabla_Clientes", "Referencia=" & Cliente_Drive) Var_Cliente_PuntoVenta = DLookup("[Punto de venta]", "Tabla_Clientes", "Referencia=" & Cliente_Drive) Var_Activo_Drive = DLookup("[Activo]", "Tabla_Clientes", "Referencia=" & Cliente_Drive) If Var_Cliente_PuntoVenta = True Then Nombre_Fichero_Drive = Var_NombreCliente_Drive & " - Informe Clientes.pdf" Ruta_Directorio_Drive = "C:\Users\Jon\Google Drive\Informes Comerciales\" Ruta_Fichero_Drive = Ruta_Directorio_Drive & Var_Subcarpeta_Drive & "\" & Nombre_Fichero_Drive DoCmd.SetWarnings False 'Desactiva el mensaje de ACCESS de que se van a agregar registros If Dir(Ruta_Directorio_Drive, vbDirectory) = "" Then ChDir Ruta_Directorio_Drive MkDir Var_Subcarpeta_Drive Else End If Reinicio: On Error GoTo Advertencia DoCmd.OutputTo acOutputReport, "Informe Clientes para comercial", "PDFFormat(*.pdf)", Ruta_Fichero_Drive, , "", 0, acExportQualityPrint DoCmd.SetWarnings True 'Vuelve a activar los mensajesDim Var_Subcarpeta As String GoTo Saltar_Advertencia Advertencia: RespuestaAdvertencia = MsgBox("El archivo está abierto, cierralo para continuar", 48, "Atención") Err.Clear GoTo Reinicio Saltar_Advertencia: Else End If End Sub