Error al querer abrir un PDF

En el formulario tengo un botón con esta instrucción

Private Sub Comando57_Click()
On Error GoTo sol_err
If IsNull(Me.Archivo1) Then
MsgBox " El registro solicitado" & vbCrLf & vbCrLf & " Ref. Nº " & IdDocumento & vbCrLf & vbCrLf & " No tiene documento para mostrar." & vbCrLf & " ", vbInformation, "No lo ves"
Else
If Nz(Me.Ruta, "") = "" Then
Exit Sub
ElseIf Right(Me.Ruta, 3) = "pdf" Then
Application.FollowHyperlink Me.Ruta
Else
MsgBox "La ruta documento está incompleta o mal Informada", vbCritical, "RUTA INADECUADA"
End If
Salida:
Exit Sub
sol_err:
If Err.Number = 16388 Then
Resume Salida
Else
MsgBox "Se ha producido el error " & Err.Number & ": " & Err.Description
End If
End If
End Sub

El cual abre un pdf si la ruta es correcta, si no fuese así debería abrir el MsgBox "La ruta documento está incompleta o mal Informada", vbCritical, "RUTA INADECUADA"

pero no se el porque aparece este error

una ayuda.

Gracias.

End If
End If

1 Respuesta

Respuesta
1

Daniel. No opino sobre lo que tienes puesto, aunque no me convence nada. Sólo te voy a hacer una puntualización. Imagínate que en el control ruta le pongo

coño\carajo\yoquese.pdf

Como los tres últimos dígitos son correctos, trataría de abrir ese archivo, aunque dudo mucho que tengas esos directorios.

Aparte de que creo que estás mezclando churras con merinas. Mira, si tengo el formulario, le he puesto los nombres que usas tu. Imagínate que pulso el botón sin haber escrito nada

Vamos a suponer que si tiene IdDocumento pero nada en archivo

Vamos a suponer que todo está relleno y con una ruta correcta

Cuando pulso el botón(comprueba que existe) y

Por el contrario, si en ruta pongo 

Cuando pulso el botón

¿Para qué va a intentar abrirme un archivo que no existe? Es preferible que antes de hacer nada lo compruebe.

Para eso declaro una función ExisteArchivo. Con lo que el código del formulario te quedaría simplemente

Public Function existearchivo(Ruta As String) As Boolean
If Len(Dir(Ruta)) > 0 Then
existearchivo = True
Else
existearchivo = False
End If
End Function
Private Sub Comando57_Click()
If IsNull(Me.Archivo1) Then
MsgBox " El registro solicitado" & vbCrLf & vbCrLf & " Ref. Nº " & IdDocumento & vbCrLf & vbCrLf & " No tiene documento para mostrar." & vbCrLf & " ", vbInformation, "No lo ves"
Else
    If existearchivo([Ruta]) Then
    Application.FollowHyperlink Ruta
    Else
    MsgBox "Nenico, nenico, no te das cuen de que ese archivo no existe", vbOKOnly + vbExclamation, "Señor,Señor"
    Exit Sub
    End If
End If
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas