Principales respuestas
openfilename en access

Pregunta
-
Buenas noches.
En excel existe el metodo Application.GetOpenFilename para seleccionar archivos, pudiendo indicarl la extensión del archivo que se muestra en el arbol.
Existe algo parecido en access?
Es posible indicarle que muestre 2 extensiones a la vez (por ejemplo .fan y .ant)?
Como sería el código?
Gracias por su ayuda.
Respuestas
-
Hola!
En Access, lo mismo que en Excel o Word puedes utilizar el FileDialog de Office, en la ayuda tienes un ejemplo muy clarito, ten presente que tendrás que declarar una referencia a Micorosoft Office X.0 Object Library.
Saludos a todos desde Huelva
http://www.mvp-access.es/emilio/- Marcado como respuesta rafa_c domingo, 15 de agosto de 2010 18:00
-
Tendrás que "encapsular" el filedialog en una función (Por ejemplo AbrirArchivo) que devuelva la ruta del archivo seleccionado y utilizar dicha función en la sentencia OPEN
Open AbrirArchivo for input as #1
Saludos a todos desde Huelva
http://www.mvp-access.es/emilio/- Marcado como respuesta rafa_c sábado, 21 de agosto de 2010 16:53
-
Yo utilizo este procedimiento
Public Function AbrirArchivoFD(Optional strRutaInicio As String, Optional strTipoArchivos As String, Optional strTitulo As String, Optional strBoton As String) As String
Dim fd As Object 'Office.FileDialog
Const msoFileDialogFilePicker = 3On Error GoTo AbrirArchivoFD_TratamientoErrores
Set fd = Application.FileDialog(msoFileDialogFilePicker)
' verifico la existencia de la ruta y en su defecto utilizo la carpeta actual
If Nz(strRutaInicio, vbNullString) = vbNullString Or Len(Dir(strRutaInicio, vbDirectory)) = 0 Then
strRutaInicio = CurrentProject.Path
End If
' si la ruta no acaba en contrabarra la añado
If Not Right(strRutaInicio, 1) = "\" Then strRutaInicio = strRutaInicio & "\"' título del cuadro de díalogo
If Nz(strTitulo, vbNullString) = vbNullString Then strTitulo = "Seleccione un archivo"
' título del botón
If Nz(strBoton, vbNullString) = vbNullString Then strBoton = "Abrir"With fd
.AllowMultiSelect = False
.InitialFileName = strRutaInicio
.Title = strTitulo
.ButtonName = strBoton
.Filters.Clear
.Filters.Add "Todos los Archivos", "*.*", 1
If Nz(strTipoArchivos, vbNullString) = vbNullString Then
.FilterIndex = 1
Else
.Filters.Add "Bases de datos de Microsoft Office Access", "*.mdb; *.mde; *.accdb; *.accde", 2
.FilterIndex = 2
End If
If .Show Then
AbrirArchivoFD = .SelectedItems(1)
End If
End With
AbrirArchivoFD_Salir:
Set fd = Nothing
On Error GoTo 0
Exit Function
AbrirArchivoFD_TratamientoErrores:
MsgBox "Error " & Err & " en proc.: AbrirArchivoFD de Módulo: mdlAbriArchivo (" & Err.Description & ")", vbCritical + vbOKOnly, "ATENCION"
Resume AbrirArchivoFD_Salir
End Function ' AbrirArchivoFDAllowMultiSelect permite seleccionar varios archivos, pero en ese caso habrás de recorrer la colección .SelectedItems para extraer todos los archivos seleccionados, de la ayuda:
For Each varFile In .SelectedItems
Me.FileList.AddItem varFile
Next
Saludos a todos desde Huelva
http://www.mvp-access.es/emilio/- Marcado como respuesta rafa_c miércoles, 25 de agosto de 2010 19:06
Todas las respuestas
-
Hola!
En Access, lo mismo que en Excel o Word puedes utilizar el FileDialog de Office, en la ayuda tienes un ejemplo muy clarito, ten presente que tendrás que declarar una referencia a Micorosoft Office X.0 Object Library.
Saludos a todos desde Huelva
http://www.mvp-access.es/emilio/- Marcado como respuesta rafa_c domingo, 15 de agosto de 2010 18:00
-
Hola Rafa!!
He realizado lo que me inidicaste y funciona perfectamente, pero tengo otra duda sobre este tema.
Tengo un programilla para analizar ficheros. Al pulsar el botón me pregunta mediante inputbox el nombre del fichero a analizar.Una vez indicado, hago un open "c:\archivo.txt" for input as #1. Utilizando filedialog, pretendía poder buscar el archivo en el arbol de directorios/archivos. esto ya lo tengo, pero ¿como hago que con el archivo seleccionado haga la misma operación que con open.....as #1?
Gracias
-
Tendrás que "encapsular" el filedialog en una función (Por ejemplo AbrirArchivo) que devuelva la ruta del archivo seleccionado y utilizar dicha función en la sentencia OPEN
Open AbrirArchivo for input as #1
Saludos a todos desde Huelva
http://www.mvp-access.es/emilio/- Marcado como respuesta rafa_c sábado, 21 de agosto de 2010 16:53
-
Hola Emilio!!
Algo estoy haciendo mal ya que al ejecutar la funcion e ir al procedimiento principal y ejecutar Open AbrirArchivo for input as #1 me dice que la ruta es incorrecta
La funcion que he creado es
Public Function AbrirArchivo() As String
Dim arbol As FileDialog
Set arbol = Application.FileDialog(msoFileDialogOpen)
With arbol
.AllowMultiSelect = True
.Show
End WithEnd Function
Otra pregunta es si cuando funcione serviría para seleccionar y abrir varios archivos a la vez para ser tratados en el proceso de analisis principal
Saludos y gracias por tu ayuda
-
Yo utilizo este procedimiento
Public Function AbrirArchivoFD(Optional strRutaInicio As String, Optional strTipoArchivos As String, Optional strTitulo As String, Optional strBoton As String) As String
Dim fd As Object 'Office.FileDialog
Const msoFileDialogFilePicker = 3On Error GoTo AbrirArchivoFD_TratamientoErrores
Set fd = Application.FileDialog(msoFileDialogFilePicker)
' verifico la existencia de la ruta y en su defecto utilizo la carpeta actual
If Nz(strRutaInicio, vbNullString) = vbNullString Or Len(Dir(strRutaInicio, vbDirectory)) = 0 Then
strRutaInicio = CurrentProject.Path
End If
' si la ruta no acaba en contrabarra la añado
If Not Right(strRutaInicio, 1) = "\" Then strRutaInicio = strRutaInicio & "\"' título del cuadro de díalogo
If Nz(strTitulo, vbNullString) = vbNullString Then strTitulo = "Seleccione un archivo"
' título del botón
If Nz(strBoton, vbNullString) = vbNullString Then strBoton = "Abrir"With fd
.AllowMultiSelect = False
.InitialFileName = strRutaInicio
.Title = strTitulo
.ButtonName = strBoton
.Filters.Clear
.Filters.Add "Todos los Archivos", "*.*", 1
If Nz(strTipoArchivos, vbNullString) = vbNullString Then
.FilterIndex = 1
Else
.Filters.Add "Bases de datos de Microsoft Office Access", "*.mdb; *.mde; *.accdb; *.accde", 2
.FilterIndex = 2
End If
If .Show Then
AbrirArchivoFD = .SelectedItems(1)
End If
End With
AbrirArchivoFD_Salir:
Set fd = Nothing
On Error GoTo 0
Exit Function
AbrirArchivoFD_TratamientoErrores:
MsgBox "Error " & Err & " en proc.: AbrirArchivoFD de Módulo: mdlAbriArchivo (" & Err.Description & ")", vbCritical + vbOKOnly, "ATENCION"
Resume AbrirArchivoFD_Salir
End Function ' AbrirArchivoFDAllowMultiSelect permite seleccionar varios archivos, pero en ese caso habrás de recorrer la colección .SelectedItems para extraer todos los archivos seleccionados, de la ayuda:
For Each varFile In .SelectedItems
Me.FileList.AddItem varFile
Next
Saludos a todos desde Huelva
http://www.mvp-access.es/emilio/- Marcado como respuesta rafa_c miércoles, 25 de agosto de 2010 19:06
-