Como debería hacer para que si la ruta esta mal lo comunique en vez que no haga nada.

Tengo esta instrucción y el problema es que si la ruta esta mal el botón para abrir el documento no hace nada, en resumen si la ruta esta bien lo habré si no hay ruta ejecuta el "Box" pero si esta mal puesta como he dicho no hace nada.

Que debería hacer para que ejecute un "box" avisando del problema.

Private Sub Comando376_Click()
On Error Resume Next
If IsNull(Archivo2) Then
MsgBox " ¡LO SIENTO!" & vbCrLf & vbCrLf & " No hay factura para mostrar.", vbInformation
Else
If Nz(Me.TxtPdf_Recibo, "") = "" Then Exit Sub
Application.FollowHyperlink Me.TxtPdf_Recibo
End If
End Sub

1 respuesta

Respuesta
1

Carlos: Para que te advierta si la ruta no es adecuada, tendrás que compararla con la tengas definida.

Imaginemos que tienes una variable en la Cabecera del Módulo donde está ese botón Comando376, así: Suponiendo que Archivo2 sea un Cuadro de Texto o Combo con 1 Columna

Dim RutaAdecuada As string

Entonces el código te quedaría.

Private Sub Comando376_Click()
On Error Resume Next

RutaAdecuada = "C:\Arenas\DosDias\"

'Tiene 18 Caracteres, que son los que cito abajo
If IsNull(Me.Archivo2) Or Left(Me.Archivo2,18) <> RutaAdecuada Then
MsgBox " ¡LO SIENTO!" & vbCrLf & vbCrLf & " No hay factura para mostrar o la Ruta es Erronea.", vbInformation
Else
If Nz(Me.TxtPdf_Recibo, "") = "" Then Exit Sub
Application.FollowHyperlink Me.TxtPdf_Recibo
End If
End Sub

Espero sea lo que buscs. Saludos >> Jacinto

Hola Jacinto:

Ya sabes que se más bien poco sobre esto, mi pregunta es como o que instrucción debo de poner en el modulo.

Gracias.

Carlos: Quizá no has reparado pero arribba te comentaba que en la cabecera del Módulo del Formulario pusieras;

Dim RutaAdecuada As string

Pero si dudas, pon eso mismo dentro del Procedimiento que tienes y que te he sustituido.

Private Sub Comando376_Click()
On Error Resume Next

'Y auí lo pones

Dim RutaAdecuada As string

'.......

'............

End Sub

Lo demás, creo que se ve pero por si acaso, donde yo pongo>>

RutaAdecuada = "C:\Arenas\DosDias\" tu tendrás que poner la Ruta que quieres que valíde.

Y en
... Or Left(Me. Archivo2, 18) ... el 18 ha de ser el Numero de caracteres que tiene la Ruta que pongas, sin contar las comillas, pero si todo lo demás.

Mis saludos >> Jacinto

Jacinto, cada vez entiendo menos lo que as mandado es un Modulo o una instrucción SQL

Y también el numero 18 es que tienen que haber 18 caracteres en la ruta obligatoria mente

Carlos: Ni una ni otra

Es el procedimiento que tú tenías en en el Botón Comando376.

Si ves que no te acaba de salir, me dices el Nombre del directorio que quieres validar y me mandas tu BD. Si no encuentro dificultades te la reeenvío esta noche.

Mis saludos >> jacinto

Eres muy amable, te mando la Bd.

Gracias

Carlos: No mecitas el directorio que quieres validar.

Mis saludos >> jacinto

Buenos días Jacinto.

No te comprendo al decir si no necesito el directorio.

Carlos: Hay una palabra junta en mi post.

Quería decir no me citas. O sea que necesitaría saber que directorio es el que quieres filtrar.

Ejemplo: C:\DatosCarlos\Informes\....

Mis saludos>> Jacinto

Veamos, en el formulario "Gastos generales" hay dos botones uno "Facturas" y otro "Recibos" tanto uno como el otro tienes esta instrucción.

On Error Resume Next
If IsNull(Archivo1) Then
MsgBox " ¡LO SIENTO!" & vbCrLf & vbCrLf & " No hay Recibo para mostrar.", vbInformation
Else
If Nz(Me.TxtPdf_Recibo, "") = "" Then Exit Sub
Application.FollowHyperlink Me.TxtPdf_Recibo
End If

la instrucción funciona bien si la ruta del formulario "Edita Gasto" esta bien y si esta vacía, en el momento que dicha ruta esta mal por el motivo que sea el botón de búsqueda del recibo o factura del formulario"Gastos Generales" no hace nada, mi pregunta es si se puede hacer que avise de algún modo que la ruta esta mal así como cuando  dicha ruta esta vacía y te avisa en que "No hay Factura para mostrar"

Saludos.

Carlos: Acabo de mandarte la BD por Email.

Pongo aquí el código por si otro usuario se pude beneficiar de la aclaración

Private Sub Comando376_Click()
'On Error Resume Next
'DoCmd.SetWarnings False  ''Aquí lo veo innecasario
If IsNull(Me.Archivo2) Then
        MsgBox "       ¡LO SIENTO!" & vbCrLf & vbCrLf & "    No hay factura para mostrar.", vbInformation
Else
        If Nz(Me.TxtPdf_Recibo, "") = "" Then
                Exit Sub
        ElseIf Right(Me.TxtPdf_Recibo, 3) = "pdf" Then
                Application.FollowHyperlink Me.TxtPdf_Recibo
        Else
                MsgBox "La Ruta está incompleta o mal Informada", vbCritical, "RUTA INADECUADA"
        End If
End If
'DoCmd.SetWarnings True 'Aquí lo veo innecasario
End Sub

Ya me contarás. Saludos  >> Jacinto.

Hola de nuevo Jacinto parece que te estoy dando mucho la lata.

A ver. Lo que has modificado funciona perfecto, la cuestión he copiado la instrucción y la e puesto en En el "Botón Recibo" cambiando estas líneas.

"If IsNull(Me.Archivo2) Then " por "If IsNull(Me.Archivo1) Then" y estas 

"ElseIf Right(Me.TxtPdf_Factura, 3) = "pdf" Then
Application.FollowHyperlink Me.TxtPdf_Factura" por estas

ElseIf Right(Me.TxtPdf_Recibo, 3) = "pdf" Then
Application.FollowHyperlink Me.TxtPdf_Recibo

He cambiado el nombre de "Archivo1" por "Archivo2" y factura por Recibo y ahora sale este aviso. Que demonios he hecho mal.

Gracias.

Gracias por todo Jacinto, lo solucione.

Parece que funciona bien, evidentemente abiar algún error.

Muchísimas gracias por tu ayuda.

Saludos.

Perfecto Carlos: Me alegra.

Poco a poco se va lejos. Mis saludos >> Jacinto

Carlos: no te olvides de valorar la respuesta. Mis saludos >> Jacinto

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas