'******************************************* '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