'*******************************************
'Francisco Garcia Aguado (Bhuo)
'Agosto de 2002

'Esto va en un modulo BAS

Option Compare Database
Option Explicit
Private Const MAX_FILENAME_LEN = 256
Private Declare Function FindExecutableA Lib "shell32.dll" (ByVal lpFile As String, ByVal lpDirectory As String, ByVal lpResult As String) As Long


Function DameEjecutable(Fichero) As String
On Error GoTo Err_Comando7_Click
  Dim i As Integer
  Dim s2 As String
  
  s2 = String(MAX_FILENAME_LEN, 32) & Chr$(0)
  
  i = FindExecutableA(Fichero & Chr$(0), vbNullString, s2)
  
  If i > 32 Then
     DameEjecutable = Left$(s2, InStr(s2, Chr$(0)) - 1)
  Else
     DameEjecutable = ""
  End If
  
Exit_Comando7_Click:
    Exit Function

Err_Comando7_Click:
    MsgBox "Aviso Nº: " & Err.Number & " " & Err.Description, vbCritical + vbOKOnly, "Información"
    Resume Exit_Comando7_Click
End Function


=======EL anterior codigo ponle en un modulo BAS
de tal forma que cuando quieras saber, por ejemplo, la aplicacion que tienes asociada el
fichero Prueba.jpg, no tienes mas que llamar a la funcion desde cualquier
parte de tu aplicacion (En esta caso desde el boton de comando que mencionas), de esta forma:

Imaginemos que tu documento Word se llama Clientes.Doc y está situado en la ruta
C:\Mis Documentos

Pon en el boton de comando que mencionas

  Dim NombreEjecutable
  Dim Retval

  NombreEjecutable = Trim(DameEjecutable("c:\Mis Documentos\Clientes.doc"))
  If Len(NombreEjecutable) = 0 Then
   Exit Sub
  End If
  RetVal = Shell(NombreEjecutable & " " & "C:\Mis Documentos\Clientes.doc", 3)

Y de esta forma lanzarías el Word y visualizarias el fichero.
Identico proceso puedes hacer con cualquier fichero de cualquier extension.
(Siempre que Windows la reconozca como valida y ela ruta y el documento existan)


Insisto, para documentos Word y Excel, el propio lenguaje VBA nos brinda
otras posibilidades para interactuar con codigo propio de VBA y abrir
este tipo de documentos, interactuar con ellos etc.

Por ejemplo:

*Utilizo codigo VBA sin llamadas a la API
*Activa en Access 2000 la referencia a Microsfot Word 9,0

Function EscribeWord(RutaDocumento As String)
 
 'En RutaDocumento se recoge la ruta completa
 'incluido el fichero, por ejemplo C:\Mis Documentos\Carta.Doc
 
 '=========== Declaro variables
   Dim DocumentoWord As Word.Document
   Dim VariableWord As Word.Application
    
    
   Set VariableWord = New Word.Application
  
   Set DocumentoWord = VariableWord.Documents.Add(RutaDocumento)
   
   'Le hago visible, así tengo la oportunidad de ver los resultados
   VariableWord.Visible = True

End Function


    Source: geocities.com/es/ensolva/Descargas/Documentos

               ( geocities.com/es/ensolva/Descargas)                   ( geocities.com/es/ensolva)                   ( geocities.com/es)