La versión de Microsoft Office Access 2003 y posteriores implementan el método FileDialog para mostrar un cuadro de dialogo para abrir un archivo en Microsoft Access.
Para poder hacer uso del método es importante referenciar a la Biblioteca de objetos de Microsoft Office XX.0, donde XX es el nombre de la versión interna instalada en tu PC de Office. Office11 es el nombre interno de Office 2003, Office12 de Office 2007 y Office14 para Office 2010 (Microsoft se saltó la version 13, simplemente porque el 13 es un número de mala suerte):
Existen cuatro tipos de diálogos aunque no todos están soportados por Microsoft Access:
- 1: msoFileDialogOpen (ppen dialog box)
- 2: msoFileDialogSaveAs (save As dialog box)
- 3: msoFileDialogFilePicker (picker dialog box)
- 4: msoFileDialogFolderPicker (folder picker dialog box)
Ejemplo de código para seleccionar un archivo EXCEL:
Dim OpenDialog As Object
Set OpenDialog = Application.FileDialog(3) ' = msoFileDialogFilePicker (picker dialog box)
OpenDialog.AllowMultiSelect = False
OpenDialog.Title = "Seleccioni un document EXCEL..."
OpenDialog.Filters.Clear
OpenDialog.Filters.Add "EXCEL Files", "*.xlsm;*.xls;*.xlsx"
OpenDialog.Filters.Add "All Files", "*.*"
OpenDialog.Show
MsgBox "Numero de archivos seleccionados: " & OpenDialog.SelectedItems.Count
MsgBox OpenDialog.SelectedItems(1)
Ejemplo de código para seleccionar varios archivos EXCEL:
Dim OpenDialog As Object
Set OpenDialog = Application.FileDialog(3) ' = msoFileDialogFilePicker (picker dialog box)
OpenDialog.AllowMultiSelect = True
OpenDialog.Title = "Seleccioni un document EXCEL..."
OpenDialog.Filters.Clear
OpenDialog.Filters.Add "EXCEL Files", "*.xlsm;*.xls;*.xlsx"
OpenDialog.Filters.Add "All Files", "*.*"
OpenDialog.Show
MsgBox "Numero de archivos seleccionados: " & OpenDialog.SelectedItems.Count
For Each SelectedItem In OpenDialog.SelectedItems
MsgBox SelectedItem
Next