Abrir un programa

Buenas, querría abrir un programa desde access con un archivo. Copie este código de esta web para abrir un archivo en pdf que se llama igual que el numero de orden de access.
Pero me gustaría se abriese en adobe y no en el explorer.
¿Hay alguna forma?
Dim Producto As String
Dim Ruta As String
Dim a As String
Producto = [Id_orden] & ".pdf"
Ruta = "explorer.exe U:\Documentacion\ordenes\" + Producto 'Doy la ruta de donde estan
'el nombre del archivo
Shell Ruta, vbMaximizedFocus 'Llamo el documento, en versión maximizada, aquí puedes
'cambiarle el foco, si le das a F1 sobre Shell, te dará
'el significado de las opciones de ventana

1 Respuesta

Respuesta
1
Probá de esta manera:
En un módulo estándar pegá este código y guardalo con cualquier nombre:
'---------------------------------------------------------
'
' OpenFile
'
' Código escrito originalmente por Juan M. Afán de Ribera
'
' Estás autorizado a utilizarlo dentro de una aplicación
' siempre que esta nota de autor permanezca inalterada.
' En el caso de querer publicarlo en una página Web,
' por favor, contactar con el autor en
'
' [email protected]
'
' Este código se brinda por cortesía de
' Juan M. Afán de Ribera
'
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
Private Declare Function FormatMessage Lib "kernel32" _
Alias "FormatMessageA" _
(ByVal dwFlags As Long, _
lpSource As Any, _
ByVal dwMessageId As Long, _
ByVal dwLanguageId As Long, _
ByVal lpBuffer As String, _
ByVal nSize As Long, _
Arguments As Long) As Long
Private Const SW_NORMAL = 1&
Private Const FORMAT_MESSAGE_FROM_SYSTEM = &H1000
' función que abre cualquier archivo ejecutable o documento
' que esté registrado en el sistema con su respectiva aplicación
Public Function OpenFile(FileName As String) As Variant
Dim RetVal As Long
Dim sError As String
Dim LenMsg As Long
' se manda abrir el archivo
RetVal = ShellExecute(0&, "open", FileName, 0&, vbNullString, SW_NORMAL)
' si se ha producido algún error
If RetVal < 33 Then
sError = Space(1024)
' obtenemos el mensaje de error que manda el sistema
LenMsg = FormatMessage( _
FORMAT_MESSAGE_FROM_SYSTEM, _
ByVal 0&, _
RetVal, _
0&, _
sError, _
Len(sError), _
0&)
' devolvemos el mensaje de error
OpenFile = Left(sError, LenMsg - 1)
Else
' la función tuvo éxito
OpenFile = True
End If
End Function
'---------------------------------------------------------

__________________________________________________________________
Y en el evento Al hacer clic de un botón, o donde queras:
Dim Resultado As Variant
' intentamos abrir el archivo
Resultado = OpenFile("c:\capeta\tu-archivo.pdf")
' si ha habido cualquier problema ...
If Resultado <> True Then
' mostramos el mensaje que nos envía el sistema
MsgBox Resultado
End If

_____________________________________________________________________
Espero que te sea útil!

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas