Desplegar PDF en formulario de acuerdo a un filtro en Textbox

Éste código es el que ocupo para desplegar un documento dentro de un formulario

Dim mapaPDF As String
mapaPDF = "C:\PDF_Doctos\B18.pdf"
WebBrowser1.Navigate mapaPDF
End Sub

Ahora dentro de esta carpeta, "C:\PDF_Doctos" tengo 40 archivos, el objetivo es abrir cada documento dentro del mismo formulario de acuerdo a la información que se muestre en un cuadro de texto;

Es decir, si textbox1=A01 buscar en la carpeta el documento con el nombre "A01"

Y desplegarlo en el mismo formulario. Solo he podido con un archivo y debo cambiar la ruta para elegir otro distinto, además todo lo que he hecho no funciona o me da error, estoy aprendiendo y cualquier idea

Se agradece.

3 respuestas

Respuesta
1

En el primer ejemplo del video Nº 69 de mi canal (Uso del control WebBrowser) se trata justamente de mostrar un Pdf. En en este caso se utiliza un control Combobox en lugar de Textbox, y el proceso se ejecuta desde el evento Change del combo.

Si vas a partir de un control TextBox debieras utilizar el evento Exit, AfterUpdate o también Change evaluando que haya información allí.

También te invito a mirar el video Nº 68 (Listar carpetas, subcarpetas y archivos)... tema relacionado también con esta consulta.

Respuesta

Se puede intentar así:

mapaPDF = "C:\PDF_Doctos\" & Me.[textbox1] & ".pdf"

Se parte del supuesto de que textbox1 es un cuadro de texto del formulario activo.

Se puede verificar la existencia del documento antes de la asignación utilizando la función Dir.

¡Mil Gracias!  Funciona perfecto.

Tu ejemplo me ayudó mucho a entender la sintaxis en una línea de comando y abusando de tu ayuda

¿Cómo sería la sintaxis si la ubicación de los archivos y el mismo documento si estuviesen guardados en una tabla? 

Para obtener datos de una tabla (sin consultas o formularios) de puede utilizar la función de dominio DLookup o la alternativa de abrir un recordset (en la practica es lo que hace esa función).

La función DLookup utiliza la sintaxis que comparten las funciones de dominio, el campo que contiene el dato, la tabla (o consulta) que contiene al conjunto de registros y el tercer parámetro (que es opcional), la condición que ha de cumplir el dato (si hay mas de uno que la cumpla, 'el primero que localiza').

En una tabla de datos (Ubicaciones) con los campos dirección y Documento siendo el ID que nos interesa 'L1234', seria algo similar a:

mapaPDF = Dlookup ("Direccion", "Ubicaciones", "ID = 'L1234'") & "\" & Dlookup ("Documento", "Ubicaciones", "ID = 'L1234'")  & ".pdf"

Respuesta

Puede programar el evento Después de Actualizar del cuadro de texto, por ejemplo.

Private Sub TextBox1_AfterUpdate()
    Dim nombreArchivo As String
    Dim rutaCarpeta As String
    Dim rutaCompleta As String
    ' Nombre del archivo según el valor en TextBox1
    nombreArchivo = TextBox1.Value & ".pdf"
    ' Ruta de la carpeta donde están los archivos PDF
    rutaCarpeta = "C:\PDF_Doctos\"
    ' Ruta completa del archivo PDF a mostrar
    rutaCompleta = rutaCarpeta & nombreArchivo
    ' Validar si el archivo existe
    If Dir(rutaCompleta) <> "" Then
        ' Mostrar el PDF en el control WebBrowser1
        WebBrowser1.Navigate rutaCompleta
    Else
        MsgBox "El archivo especificado no existe."
    End If
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas