3ENGINE

Programación y otros cachivaches

Etiqueta: Access

Tecnologia

Cómo mostrar un cuadro de dialogo para abrir un archivo en Microsoft Access


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):

mostrar un cuadro de dialogo para abrir un archivo en Microsoft Access

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



Tecnologia

Access 2010: solución al error «You do not have exclusive access to the database at this time»


Al trabajar con Access 2010 puede aparece un mensaje de error You do not have exclusive access to the database all this time como este:

You do not have exclusive access to the database at this time

Pero el problema es que este mensaje de error a veces se produce incluso aunque haya un único usuario en la base de datos. Para resolver este error te propongo dos posibles soluciones.

Solución 1

Ir al apartado Configuración del Cliente (Client Settings) dentro del Opciones (Access Options) y en la sección Avanzadas (Advanced) seleccionar el modo Compartido (Shared):

You do not have exclusive access to the database at this time

Solución 2

Si la primera solución no fue efectiva o ya tenias seleccionado el modo compartido. Entonces es posible que tu base de datos Access esté corrompida. Para intentar recuperar lo que haremos es importar la base de datos a una nueva base de datos Access en blanco:

Primero crear una base de datos en blanco, vete a la pestaña Datos Externos (External Data) y selecciona la opción de importar de una base de datos Access:

You do not have exclusive access to the database at this time

Selecciona la base de datos que da problemas:

You do not have exclusive access to the database at this time

Y por último importa todos los objetos:

You do not have exclusive access to the database at this time