Jump to content

Faq/Base/Cómo conectar a una base de datos de Microsoft Access

From The Document Foundation Wiki
< Faq | Base
This page is a translated version of the page Faq/Base/How to connect to a Microsoft Access database and the translation is 99% complete.
Outdated translations are marked like this.


Este artículo describe como conectar a archivos de base de datos de Microsoft Access.

Aunque la mayoría de las opciones solo se pueden usar en Windows también se describe una opción de cómo conectar en Linux y otros sistemas operativos.

Para conectarse a archivos de bases de datos Access tenemos disponibles las siguientes opciones:

  • ADO (solo en Windows)
  • Microsoft Access (solo en Windows)
  • Microsoft Access 2007 (solo en Windows)
  • ODBC
  • JDBC

A continuación veremos como usar cada una de las conexiones

Precondiciones en Windows

Aunque en versiones antiguas de Windows (hasta XP) era probable tener instalado el proveedor de datos necesario, en versiones más recientes de Windows no hay ningún proveedor instalado. El proveedor de datos es un componente de Microsoft y no esta desarrollado ni modificado por LibreOffice, solo se usa como intermediario entre LibreOffice y el archivo de base de datos de Microsoft Access.

Los tipos de archivo MDB usados por las versiones desde Access 97 (Office 8) hasta Access 2003 (Office 12) requerían tener instalado el proveedor de datos “Jet 4.0” (proveedor Microsoft.Jet.OLEDB.4.0) A partir de Access 2003, MS Access comienza a usar un nuevo tipo de archivo de base de datos, tipo ACCDB, el cual usa el proveedor “Access Database Engine”, ACE, (proveedor Microsoft.ACE.OLEDB.12.0)

Hasta la versión 24.8 de LibreOffice, la opción Microsoft Access se utiliza para conectarse con archivos MDB. Como hemos visto se requiere el proveedor Microsoft.Jet.OLEDB.4.0, que no está disponible para su descarga en las páginas de Microsoft desde hace varios años, por lo que esta conexión es inoperativa.

La opción Microsoft Access 2007, existente hasta LibreOffice 24.8, sirve para conectarse con archivos ACCDB y, como ya hemos dicho, requiere el proveedor Microsoft.ACE.OLEDB.12.0.

Desde de la versión 24.8 de LibreOffice, solo existe una opción Microsoft Access que utilizando el proveedor Microsoft.ACE.OLEDB.12.0 sirve tanto para conexiones a archivos MDB como ACCDB.

Las conexiones ADO también necesitan un proveedor de Microsoft para conectarse a archivos de Microsoft Access.

Resumiendo, para conectar con archivos Microsoft Access con las opciones propias de Windows, se requiere instalar el proveedor adecuado. Actualmente descargando e instalando el Microsoft Access Database Engine 2016 Redistributable desde https://www.microsoft.com/en-us/download/details.aspx?id=54920, obtendremos los proveedores Microsoft.ACE.OLEDB.12.0 (el usado por LibreOffice), Microsoft.ACE.OLEDB.16.0 y el driver ODBC.

Clase de conexión (Paso 1 del asistente)

iciar el asistente con Archivo ▸ Nuevo ▸ Base de datos o usando la opción LibreOffice Base en el menú de Windows o usando la opción Base de datos de Base en el Inicio rápido de LibreOffice.

En el primer paso seleccionar Conectar con una base de datos existente. En la lista desplegable puede seleccionar Microsoft AccessADOODBC o JDBC. Cada opción tiene las siguientes características:

Microsoft Access (hasta versión 24.8 de LibreOffice)

Como hemos visto en las precondiciones de Windows, no podrá conectar con archivos MDB si no dispone del proveedor Microsoft.Jet.OLEDB.4.0. Aún teniendo el proveedor no podrá usar esta conexión si la base de datos está protegida con contraseña, en este caso debe usar la conexión ADO.

Microsoft Access 2007 (hasta versión 24.8 de LibreOffice)

Se utiliza esta opción para acceder a archivos de bases de datos ACCDB.

Microsoft Access (a partir de la versión 24.8 de LibreOffice)

A partir de LibreOffice 24.8 se utiliza la conexión Microsoft Access para acceder tanto a archivos MDB com a archivos ACCDB.

ADO

La conexión ADO permite utilizar cualquiera de los proveedores instalados para efectuar las conexiones a los archivos Access. También permite configurar otras opciones de la conexión que no son configurables con las opciones anteriores, como por ejemplo establecer el nombre de usuario y contraseña para conectar con bases de datos protegidas.

ODBC

La conexión con la base de datos se hace a través de un driver ODBC. La configuración de los drivers se hace a nivel del sistema operativo y es independiente de LibreOffice, que solo podrá utilizar los drivers previamente configurados.

JDBC

La conexión mediante JDBC requiere de un driver que tiene que ser instalado previamente, aunque la configuración final se hace desde LibreOffice. Este tipo de conexión requiere tener instalado Java en el equipo. Veremos esta conexión con más detalle más adelante en un título separado.

Los siguientes pasos dependen de la clase de conexión elegida. Cuando finalice la conexión, verá la conexión elegida en la parte izquierda de la barra de estado.

Configurar la conexión (Paso 2 del asistente)

Microsoft Access y Microsoft Access 2007

Escriba la ruta a la base de datos o haga clic en el botón Examinar para navegar hasta el archivo adecuado. Al pulsar Siguiente irá al último paso del asistente vea Configurar la conexión (Paso 4 del asistente), aunque en este caso será el paso 3.

ADO

Introduzca la cadena de conexión completa para acceder al archivo de la base de datos. La cadena de conexión es diferente de la ruta del archivo.

Generar la cadena de conexión

Si desconoce la cadena de conexión, haga clic en el botón Examinar y abrirá un asistente para la configuración del vínculo de datos, en el que puede seleccionar el proveedor, el archivo de datos al que conectarse, usuario y contraseña para la conexión, y otras opciones avanzadas. Al cerrar el diálogo se mostrará la cadena de conexión generada.

Para archivos Access (MDB yACCDB) puede seleccionar tanto el proveedor Microsoft Office 12.0 Access Database Engine OLE DB Provider como el Microsoft Office 16.0 Access Database Engine OLE DB Provider

ODBC

Para establecer una conexión ODBC, en este segundo paso del asistente debe proporcionar el nombre del origen de datos. También puede hacer clic sobre el botón Examinar y obtendrá una lista de los orígenes de datos registrados.

Si no ha registrado su base de datos deberá hacerlo con la aplicación de Windows Orígenes de datos ODBC. Con esta aplicación podrá agregar una conexión con los drivers ODBC instalados. En nuestro caso debe seleccionar el driver 'Microsof Access Driver (*.mdb, *.accdb), una vez seleccionado, al hacer clic sobre el botón Finalizar aparecerá un diálogo para completar la configuración.

Si la base de datos a la que nos conectaremos está protegida con contraseña, se puede configurar mediante el botón Avanzadas del diálogo de configuración de la conexión, pero hay que tener en cuenta que la contraseña es legible en el registro ODBC

El driver ODBC para la conexión Microsoft Access se instala junto con los proveedores ADO que vimos en los prerequisitos.

Configuración de la conexión (Paso 3 del asistente)

En este paso se configuran las opciones de contraseña para los diferentes tipos de conexión.

ADO

Deje los campos vacíos.

ODBC

Si la base de datos está protegida con contraseña y no la escribió en la configuración de la conexión ODBC, marque la opción Contraseña obligatoria.

Archivos MDB

Si la base de datos está protegida, en Nombre de usuario escriba Admin o el nombre de usuario si es otro diferente. Si no está protegida deje el campo vacío.

Archivos ACCDB

Este tipo de archivos no utiliza usuarios, por lo que debe dejar el campo Nombre de usuario vacío.

Compruebe la conexión si es necesario. Haga clic en Siguiente

Guardar y continuar (Paso 4 del asistente)

Si desea usar la fuente de datos en otros módulos de LibreOffice, por ejemplo, para combinación de correspondencia, marque la opción Sí, registrar por mi la base de datos. Después de pulsar en Finalizar se le pedirá el nombre del archivo .ODB y la carpeta en la que guardar dicho archivo. Ya puede trabajar con la base de datos.

Conexiones JDBC (Windows, Linuxy otros sistemas operativos)

La conexión JDBC es la única de las conexiones a Microsoft Access que se puede utilizar en sistemas operativos diferentes de Windows, bueno, teóricamente también se podría con conexiones ODBC, pero me temo que no hay ningún driver para sistemas diferentes de Windows.

La conexión JDBC, como ya se ha mencionado, requiere que el sistema tenga instalado Java. Además se requiere un driver JDBC adecuado para las conexiones Microsoft Access. Al menos hay un driver opensource y gratuito, UCanAccess que se puede descargar en la página https://ucanaccess.sourceforge.net/site.html. Al ser un driver java puro, se puede utilizar en cualquier sistema operativo que pueda instalar Java.

Preparar el equipo

Como hemos dicho, el equipo tiene que tener instalado Java.

Además tenemos que descargar y descomprimir en un lugar adecuado el driver UcanAccess. Al descomprimir el archivo se debe respetar la estructura de carpetas del archivo comprimido.

Preparar LibreOffice

  • Abrir LibreOffice en el Centro de inicio o iniciar cualquiera de las aplicaciones (excepto Base o Math).
  • Seleccionar Herramientas ▸ Opciones ▸ LibreOffice ▸ Avanzadas, en opciones de Java, marcar la opción Utilizar un entorno de ejecución Java y en Entornos de ejecución(JRE) instalados seleccionar el que queramos emplear.
  • Sin salir de la página de opciones Avanzadas, hacer clic en el botón Ruta de clase
  • En el siguiente diálogo seleccionar el botón Añadir archivador y navegar hasta la carpeta en la que descomprimió el driver, dentro de esta seleccionar la carpeta loader y dentro de ella el archivo ucanload.jar. Pulsar en Abrir y a continuación cerrar todos los diálogos con el botón Aceptar.
  • Reiniciar LibreOffice para que las configuración tenga efecto.

Efectuar la conexión

  • Abra Base
  • En el paso 1 del asistente, seleccione Conectar con una base de datos existente y en la lista desplegable seleccione JDBC. Haga clic en Siguiente.
  • En el paso 2, en el cuadro de texto dónde dice que proporcione la cadena de conexión, detrás de jdbc: escriba ucanaccess// y la ruta completa a la base de datos, pero aunque en Windows se usa la contrabarra (\) aquí se debe sustituir por barra (/) por ejemplo jdbc:ucanaccess://C:/Users/jc/Desktop/Access/Database1.accdb o jdbc:ucanaccess:///home/jc/Desktop/Access/Database1.accdb.
  • En ese mismo diálogo en el cuadro de texto Clase de controlador JDBC debe escribir net.ucanaccess.jdbc.UcanloadDriver (el nombre del controlador distingue entre mayúsculas y minúsculas, por lo que debe escribirlo tal y como se ha mostrado). Puede utilizar el botón Probar clase para comprobar que ha escrito en nombre correctamente y que la ruta de clase se configuró adecuadamente. Haga clic en Siguiente.
  • En el siguiente cuadro de diálogo puede utilizar el botón Probar conexión para comprobar si todo está configurado adecuadamente. Deje en blanco el nombre de usuario y no marque la opción Contraseña obligatoria, porque este driver no permite el acceso a bases de datos protegidas. Haga clic en Siguiente.
   • En el siguiente cuadro de diálogo configure si desea a no registrar la base de datos. Haga clic en Finalizar, aparecerá el diálogo para dar un nombre al archivo ODB creado y seleccionar la carpeta donde se guardará.

Propiedades de las conexiones

Cuando se conecta con una base de datos de Microsoft Access desde LibreOffice, no se tiene acceso ni a los formularios ni a los informes y las consultas existentes se convierten en vistas.

El acceso a las tablas depende del tipo de archivo de Access y del tipo de conexión utilizada.

Acceso a las tablas

Archivos MDB

Tanto en las conexiones establecidas mediante las opciones Microsoft Access como ADO, se puede alterar el contenido de las tablas y añadir y eliminar registros. No se pueden añadir tablas ni modificar la estructura de las existentes.

En las conexiones establecidas con ODBC se pueden añadir, editar y eliminar registros. Se pueden añadir tablas, pero no se puede modificar la estructura de las existentes.

En las conexiones JDBC se pueden ver los datos y aparentemente se pueden actualizar, pero da errores en cualquiera de las operaciones.

Archivos ACCDB

Versiones de LibreOffice anteriores a la 24.8

Tanto en las conexiones establecidas con Microsoft Access 2007 como en las establecidas con ADO, se pueden ver los datos pero no se pueden modificar. Tampoco se pueden añadir tablas ni modificar la estructura de las existentes.

En las conexiones establecidas con ODBC se pueden añadir, editar y eliminar registros. Es pueden añadir tablas, pero no se puede modificar la estructura de las existentes. En las conexiones JDBC se pueden ver los datos y aparentemente se pueden actualizar, pero da errores en cualquiera de las operaciones.

Versión 24.8 de LibreOffice y siguientes

En este caso, tanto en las conexiones establecidas con Microsoft Access como en las establecidas con ADO, se pueden ver los datos y también se pueden modificar, pero no se pueden añadir tablas ni modificar la estructura de las existentes.

Las conexiones ODBC y JDBC funcionan igual que en versiones de LibreOffice anteriores a la 24.8


Vea también

https://wiki.openoffice.org/wiki/MSA-Base_Faq

https://developer.microsoft.com/



Autor: Juan C. Sanz 9 march 2025. Based on Regina's work.

Please don't hesitate to improve this guide and adapt it to new versions.