Estoy intentando hacerme una base de datos en la que quiero vincular documentos pdf de un expediente a la ficha de cada cliente y buscando he visto esta línea de código con la que estoy intentando funcionar.
La posibilidad de poner en una caja de texto un nombre de documento pdf y que con un botón me abra el citado documento es ideal para lo que quiero, pero después de adaptar el código y asignarle al botón la macro con este código, cuando pulso el botón, este no hace nada.
Yo trabajo con W7. Os pongo el código adaptado y con la ruta donde está la carpeta que he creado donde meter los documentos pdf y el nombre de la caja de texto(text1). estos son los únicos cambios que he hecho.
Código: Seleccionar todo
Option Explicit
Sub MostrarPdf (Evento)
Dim sArchivoSiguiente As String
Dim sTodosLosArchivos As String
Dim sDirNom as string
Dim sArchivoPdf as string
Dim sRuta as string
Dim encontrado as string
Dim sDirectorioActual As String
Dim mTmp()
Dim sArchivo As String
Dim txtArchivo As Object
Dim abrir
Dim sNombre as string
Dim sys
sDirectorioActual = "C:/Users/comercio/Desktop/COMERCIO/Controles/archivomercados"
mTmp = Split( sDirectorioActual, "/" )
mTmp(UBound(mTmp)) = ""
sDirectorioActual = Join( mTmp, "/" )
'El control donde esta el nombre del archivo
txtArchivo = Evento.Source.Model.Parent.getByName("text1")
sNombre = txtArchivo.text
sNombre = Join(Split(sNombre,"/"),"-")
rem msgbox sNombre
sDirectorioActual = sDirectorioActual & "Resoluciones/"
rem msgbox sDirectorioActual
encontrado = ""
'buscar el archivo .pdf correspondiente
sTodosLosArchivos = ""
sArchivoSiguiente = Dir(sDirectorioActual, 0)
While sArchivoSiguiente <> ""
if sArchivoSiguiente >= ("res " & sNombre) and sArchivoSiguiente <= ("res " & sNombre & "z") then
sArchivoPdf = sDirectorioActual & sArchivoSiguiente
rem msgbox "Se abrira el archivo : " & sArchivoPdf
'abrir el archivo pdf correspondiente
sys = CreateUnoService("com.sun.star.system.SystemShellExecute")
sRuta = sArchivoPdf
sys.execute( sRuta, "", 0)
encontrado = "SI"
endif
sTodosLosArchivos = sTodosLosArchivos & Chr(13) & sArchivoSiguiente
sArchivoSiguiente = Dir
wend
if encontrado<>"SI" then
msgbox "No se encontró un archivo .pdf para la resolución: " & Trim(txtArchivo.text)
endif
end sub
Gracias.