Abrir archivos mediante VBA de Access.

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 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
' 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"
' 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
'¡/*****
' 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 estos códigos me sirvan?,,.

1 respuesta

Respuesta
1
Te explico cómo debes hacerlo, teniendo en cuenta que te voy a modificar eso "de hacer click", de manera que sólo se te abrirá el archivo cuando el botón de opción esté marcado, y no desmarcado:
1.- Con el formulario en vista diseño, sacas las propiedades de ese botón de opción y te vas a la pestaña Otras->Nombre, y le escribes ahí opcAbrir
2.- Ahora te vas a la pestaña Eventos->Después de actualizar...
3.- A ese evento le generas es siguiente código:
---
Private Sub opcAbrir_AfterUpdate()
Dim miOpcion As Integer
Dim miArchivo As String
miOpcion = Me.opcAbrir.Value
If miOpcion = True Then
miArchivo = Application.CurrentProject.Path
miArchivo = miArchivo & "\Abrir.docx"
Call ShellExecute(Me.hwnd, "Open", miArchivo, "", "", 1)
End If
End Sub
---
Lo que te he marcado en negrita tú debes cambiarlo por el nombre de tu archivo con extensión incluida.
4.- Ahora, en ese módulo asociado al formulario, si miras arriba verás que te pone
Option Compare Database
Option Explicit (esta línea a lo mejor no te la pone. No pasa nada)
Pues justo debajo de esta o estas líneas que te salgan, copias el siguiente código
---
Private Declare Function ShellExecute Lib "shell32.dll" Alias _
"ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, _
ByVal lpFile As String, ByVal lpParameters As String, _
ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long
---
Y eso es todo.
Ya me dirás qué tal te ha ido.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas