Abrir un archivo desde Access con VBA

Hola espero que estés bien, tengo que hacerles una pregunta resulta que en un proyecto me piden que al dar clic en un Botón de opción me abra un archivo por ejemplo llamado "Ayuda.pdf" que este almacenado en la misma carpeta o unidad de almacenamiento en el que esta la aplicación en Access... He ejecutado la aplicación con los siguientes códigos pero la mayoría de ellos sirve solo cuando el archivo Ayuda.pdf esta en la unidad C: u otra,,, pero necesito que busque el archivo sin importar su ubicación.
'1er codigo que no funciona:
'Dim xWord As Object
' Dim xDoc As Object
' Set xWord = CreateObject("Word.Application")
' xWord.Visible = True
' Set xDoc = xWord.Documents.Open("C:\INSTRUCCIONES.DOC")
'2do codigo que no me funciona:
' Dim DocumentoWord As Word.Document
' Dim VariableWord As Word.Application
' Set VariableWord = New Word.Application
' Set DocumentoWord = VariableWord.Documents.Add("C:\INSTRUCCIONES.doc")
' 'Le hago visible, así tengo la oportunidad de ver los resultados
' VariableWord.Visible = True
'3er codigo Solo me abre un documento en word en blanco y genera errores la aplicacion:
'Dim Nada
'Nada = Shell("C:\Program Files\Microsoft Office\Office12\WINWORD.EXE", vbMaximizedFocus)
'Documents.Open FileName:="\INSTRUCCIONES.doc"
' 4to código,el siguiente codigo vba permite abrir cualquier archivo pero este tiene que estar en C:, por otra parte para ejecutar este codigo se tuvo que _
' incluir una mano de codigo en Modulo1
'Dim Resultado As Variant
' intentamos abrir el archivo
'Resultado = OpenFile("\Prueba.txt")
' si ha habido cualquier problema ...
' If Resultado <> True Then
' ' mostramos el mensaje que nos envía el sistema
' MsgBox Resultado
' End If
'¡/*****
' 5 to codigo el siguiente codigo sirve si esta en la unidad C: el archivo
'Shell "Notepad.exe \Prueba.txt", vbNormalFocus
'Solo sirve si esta el archivo en C o en una unidad especifica:
Dim nombrearchivo As String
'
nombrearchivo = "\Prueba.txt"
'
OpenFile (nombrearchivo)
¿Qué hago para que alguno de estos códigos me sirva?,,, gracias..
3

3 respuestas

1
Respuesta de
Bueno considero que como ves todas estas opciones tienes sus particularidades, lo que encuentro útil para lo que quieres hacer es lo siguiente
Application.FollowHyperlink CurrentProject.Path & "\" & "Ayuda.pdf"
Con esto en cualquier lugar donde se guarde la base siempre que el archivo se encuentre junto con ella la abrirá
Saludos
Hola experto muchas gracias por su interés de verdad es de mucha importancia para mi proyecto, el inconveniente que tengo es que puse el código que me dijiste pero me sirve solo para un archivo gráfico (.jpg), más no me sirve para un pdf..
Gracias!.
Que raro mira yo tengo este ejemplo en una base que realicé y me funciona perfecto en un campo al que hago dobleclic
Private Sub OfSECG_DblClick(Cancel As Integer)
On Error GoTo Err_Corr_DblClick
Application.FollowHyperlink CurrentProject.Path & "\" & "Ordenes" & "\" & "Correo" & OfSECG & ".pdf"
Exit_Corr_DblClick:
Exit Sub
Err_Corr_DblClick:
MsgBox "No existe archivo asociado o el nombre no coincide", vbExclamation, "ERROR"
Resume Exit_Corr_DblClick
End Sub
En este ejemplo OfSECG es el campo al que al hacer dobleclic busca el pdf con el nombre del campo en la carpeta "Ordenes" donde se encuentra la base de datos, empezando con el nombre "Correo[nombre del campo].pdf"
Por ejemplo "correo123.pdf"
Y me abre el pdf sin problema
Espero que al ver el ejemplo te ayude
Saludos
Hola experto muchas gracias por su ayuda lo que me dijiste lo acomode a lo que necesitaba y quedo así:
Dim RutaArchivo As String
RutaArchivo = CurrentProject.Path & "\Proyecto en Access\Instrucciones.pdf"
If Len(RutaArchivo) = 0 Then
MsgBox "No se ha encontrado el archivo de ayuda", vbInformation, "Prueba"
Else
Application.FollowHyperlink RutaArchivo
End If
Muchas gracias de nuevo y dentro de pronto odriamos hablar para otro inconveniente que tengo con la aplicación.
Añade un comentario a esta respuesta
1
Respuesta de
Buenas Noches prueba con esta función a ver solo cambia la ruta de tu archivo
Function AbrirPDf()
Dim RutaArchivo As String
RutaArchivo = CurrentProject.path & "\Ayuda\Ayuda.pdf"
If Len(RutaArchivo) = 0 Then
MsgBox "No se ha encontrado el archivo de ayuda", vbInformation, "Prueba"
Else
Application.FollowHyperlink RutaArchivo
End If
End Function
Hola muchas gracias por la atención prestada y su ayuda pues haciendo el seguimiento del código que usted me envío todo parece funcionar bien pero me sale con error denotado con linea de color amarilla la linea de código Application. ¿FollowHyperlink RutaArchivo si pongo el cursor en la linea de código en dicha linea . no me abre el archivo pero si me señala la ruta en donde se encuentra el archivo por que no me abre el archivo si me lo señala bien? Gracias!.
Buenas prueba de la siguiente forma
Se modifica la parte en negrita
Function AbrirPDf()
Dim RutaArchivo As String
RutaArchivo = CurrentProject.Path & "\Ayuda\Ayuda.pdf"
If Dir$(RutaArchivo) = "" Then
MsgBox "No se ha encontrado el archivo de ayuda", vbInformation, "Prueba"
Else
Application.FollowHyperlink RutaArchivo
End If
End Function
Hola muchas gracias por su ayuda quedo excelente, eso era lo que necesitaba,,,, felicidades y muchas bendiciones.. un abrazo desde Colombia!
Att. Hernán Camilo Martínez V.
Añade un comentario a esta respuesta
1
Respuesta de
Ok, mandame tu cuenta de correo y te envío un ejemplo:
Para que des click en el botón y busques el archivo cuando lo encuentras te lo abre.
Mi correo es: franciscoboaz@hotmail.com
Si me escribes recuérdame de que se trata
Hola don francisco muchas gracias por su interés ya solucione el inconveniente, tuve que pasar el archivo de ayuda a formato .pdf,,, ahí te paso el código:
Dim RutaArchivo As String
RutaArchivo = CurrentProject.Path & "\Proyecto en Access\Instrucciones.pdf"
If Len(RutaArchivo) = 0 Then
MsgBox "No se ha encontrado el archivo de ayuda", vbInformation, "Prueba"
Else
Application.FollowHyperlink RutaArchivo
End If
Muchas gracias pero de todos modos nos estaremos hablando ya que necesito arreglar otro inconveniente con la aplicación.
Añade un comentario a esta respuesta
Añade tu respuesta
Haz clic para o
Escribe tu mensaje

Más respuestas relacionadas

¿No es la pregunta que estabas buscando?
Puedes explorar otras preguntas del tema Microsoft Access o hacer tu propia pregunta: