Abrir la ruta del textbox con programa asociado

Tengo una base de datos (access) y guardo la ruta de un archivo en ella, utilizo un flexgrid y los cuadros te texto al momento de dar click sobre el flexgrid los cuadros de textos se llenan con la información que tengo almacenada en la base de datos, la cuestión es que cuando quiero abrir el contenido del textbox que contiene la ruta no la puedo abrir, quiero que me abra la ruta que contiene el textbox con el programa asociado, utilicé la siguiente sentencia para abrir pero no hace nada:
ShellExecute hwnd, "open", filepath, vbNullString, vbNullString, 1
para buscar el achivo utilizo esta:
Dim file_name As String
                        CommonDialog1.CancelError = True
                        CommonDialog1.Flags = _
                        cdlOFNFileMustExist Or _
                        cdlOFNHideReadOnly Or _
                        cdlOFNExplorer Or _
                        cdlOFNLongNames
                    On Error Resume Next
                        CommonDialog1.ShowOpen
                    If Err.Number = cdlCancel Then
                        ' The user canceled.
                        Exit Sub
                    ElseIf Err.Number <> 0 Then
                        ' Unknown error.
                        MsgBox "Error " & Format$(Err.Number) & _
                        " selecting file." & vbCrLf & _
                        Err.Description
                        Exit Sub
                    End If
                  On Error GoTo 0
                    ' Do something with the file.
                    file_name = CommonDialog1.FileName
                    CommonDialog1.InitDir = Left$(file_name, _
                    Len(file_name) - _
                    Len(CommonDialog1.FileTitle) - 1)
                    txtarchivo.Text = file_name & vbCrLf & txtarchivo.Text

1 Respuesta

Respuesta
En el ShellExecute debes enviar al ruta y el nombre del archivo, debes asegirarte de eso, si solo envías ela ruta no sucede nada y eso es lo que ue te esta pasando ahora, por lo que entiendo.
¿Cómo? No entendí bien se supone en la sentencia
ShellExecute hwnd, "open", filepath, vbNullString, vbNullString, 1
filepath así se llama el textbox que contiene la ruta, se supone que ahi va todo desde la ruta hasta el nombre del archivo, o creo que no formulé bien mi pregunta
Si en filepath va tanto la ruta como el nombre del archivo debería hacerlo, ¿qué tipo de archivo es? Estas seguro que el tipo de archivo tiene en windows su asociación, por ejemplo cuando se instala office, los archivos .doc y .docx se asocian a word etc.
¿Tu archivo tiene asociada la aplicación que lo debe abrir?
Precisamente eso es lo que quiero, que al determinar la extensión sepa que programa tiene que abrir, si su extensión es .doc entonces tiene que abrir word, si tiene .pdf tiene que abrir acrobat y así sucesivamente, y en cuanto al filepath esa es una variable que puse la cual contiene la ruta. Explico:
Tengo un textbox que se llama filepath, cuando yo digo que voy a insertar una ruta para que se almacene en la base de datos me abre el cuadro de dialogo donde busco el archivo, una ves encontrado almacena la ruta en el textbox que se llama filepath y la garda en un campo que se llama archivo, y así almacena por números de rutas, cuando quiera consultar por clave, me abrirá los datos de la tabla junto con la ruta guardada del textbox (filepath), entonces al querer visualizar el archivo le voy a dar abrir y me tiene que abrir la ruta que está en el textbox. Según yo para abrir esa ruta la tengo así:
If Button.Index = 7 Then
                                 If filepath.Text = "" Then
                                        MsgBox " Selecciona un Archivo"
                                  Else
                                        ShellExecute hwnd, "open", filepath.Text, vbNullString, vbNullString, 1
                                  End If
End If
Pero no lo abre, en filepath tiene la ruta completa, carpeta en la que se encuentra, unidad, nombre del archivo, extensión, todo.
Espero que ahora si me haya explicado mejor
Pregunta tonta, ¿si abres un .doc esta instaaldo en el pC Word? ¿O si intentas abrir un .pdf esta instalado en el pc acrobat reader?
Tienes esto en tiu programa que asumo es VB6:
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
Si están instalados, y si, si tengo la función declarada, y si es vb6.
Si haces un paso a paso del programa, ¿le llega el valor correcto de la ruta y el nombre del archivo en el parámetro a la función?
¿No da ningún error? ¿Simplemente no lo hace?

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas