Importar tablas de Access desde OpenOffice.org Base - parte I

En algunas de las experiencias de migración a OpenOffice.org en las que colaboramos, nos hemos encontrado con usuarios que manejan pequeñas bases de datos desarrolladas en Microsoft Access. En estos casos, para poder prescindir de Access, podemos usar el gestor de base de datos incorporado en OpenOffice.org, denominado Base. Podemos usar Base de dos maneras diferentes:

  • Accediendo desde Base a los datos almacenados en Access.
  • Importando a Base los datos de las tablas de Access.

Mediante el presente tutorial veremos la manera de realizar ambas tareas.

Dado que esta explicación es algo larga, hemos optado por dividirla en tres partes. En la primera -ésta que estas leyendo-, veremos como crear una base de datos que nos permite acceder a las tablas y consultas de Access; en la segunda parte, trataremos de la migración de datos propiamente dicha; reservando la tercera parte del tutorial para ampliar un poco algunos detalles relativos a la personalización de los campos o columnas a migrar.

Hemos ilustrado el texto con diferentes capturas de pantalla, en cuyas miniaturas podéis pulsar para verlas a tamaño real; y al final encontraréis un vídeo demostrativo que muestra todo el proceso.

Tengamos presente que una base de datos de Base se comporta de forma parecida a Access en el sentido de que en un sólo archivo, con extensión .odb almacena tanto las tablas y consultas, como los formularios e informes relacionados; presenta el inconveniente de ser mono-usuaria (no admite conexiones concurrentes), pero tiene la ventaja de poder ser enviada por correo fácilmente.

Tan sólo recomendaríamos esta solución para pequeñas bases de datos de escritorio. Si necesitamos acceso concurrente o la base de datos va a ser algo grande, con decenas de miles de registros, será mucho mejor plantearse la migración a una base de datos "real" como puedan ser MySQL o PostgreSQL (u Oracle si estás en una mega-corporación) Guiño , que igualmente pueden ser accedidas vía formularios e informes desde Base.

También debemos efectuar unas advertencias:

  • Sólo podremos convertir los datos almacenados en tablas y consultas.
  • No podemos convertir directamente formularios ni informes, que se podrán reescribir en Base con bastante facilidad.
  • Tampoco podremos convertir macros o módulos VBA, en cuyo caso habría que estudiar la solución con detenimiento.

Tras efectuar estas consideraciones, nos pondremos manos a la obra. El procedimiento a seguir para exportar tablas y consultas desde Access a Base consistirá en:

  1. crear una base de datos en Base que será la base de datos "contenedora" de los datos finales.
  2. crear otra base de datos en Base, que vincule los datos de la base de datos en Access.
  3. copiar las tablas vinculadas de esta última base de datos a la creada anteriormente.

Así que, en primer lugar, creamos una base de datos vacía (Archivo > Nuevo > Base de datos) seleccionando en el asistente la opción "Crear nueva base de datos"

 

 

En el paso siguiente del asistente escogeremos "Sí, registrar la base de datos", lo que permitirá poder usar los datos de esta base para combinar correspondiencia con el procesador de textos Writer o crear un piloto de datos con la hoja de cálculo Calc.

 

 

Tampoco es imprescindible hacerlo ahora mismo; siempre podemos registrar la base de datos en otro momento mediante Herramientas > Opciones > OpenOffice.org Base > Base de datos > Nuevo

Tras el paso siguiente, en que indicaremos la ubicación y nombre de la base de datos que estamos creando (en el ejemplo neptuno-base.odb), nos aparecerá la interfaz de Base, con una base de datos vacía; observemos en la barra de estado la información que indica que nos encontramos con una base de datos incrustada, que hace uso del motor HSQL . Este tipo de base de datos se comporta de una manera similar a Access, conteniendo en un solo archivo las tablas, consultas, formularios e informes de la misma.

 

 

Luego creamos otra nueva base de datos que permitirá conectarnos con los datos del archivo (.mdb) de Access.

En este caso, escogeremos la opción "Conectar con una base de datos existente" en el primer paso del asistente, para seguidamente escoger el controlador de bases de datos para Access.

 

 

Esto, que resulta tan fácil en Windows, no nos resultará tan sencillo si estamos usando OpenOffice.org en algún sistema GNU/Linux, para el cual no está disponible el controlador de Access. En ese caso se podrá acceder vía ODBC, para lo cual será preciso instalar diferentes utillerías, siendo tema para tratar en otro tutorial.

En el siguiente paso del asistente se nos pedirá seleccionar el archivo (.mdb) que contiene los datos que deseamos importar. En nuestro ejemplo, estamos usando "Neptuno", la conocida base de datos de ejemplo que incorporan todas las versiones de Access.

Como no deseamos acceder desde Writer ni Calc a estos datos (ya accederemos a ellos cuando estén importados en la base de datos que creamos al principio), en el siguiente paso del asistente, le indicaremos que no vamos a registrar la base de datos.

 

 

Después de asignar ubicación y nombre para esta base de datos (en el ejemplo neptuno-access.odb), nos encontramos con que la sección de Tablas, nos muestra todas las tablas y consultas que hay en el archivo Neptuno.mdb. Si accedemos a estos datos y los modificamos, se están modificando los datos en el archivo Neptuno.mdb original.

 

 

 

Observemos como lo que eran consultas en Access, se han importado como vistas de tabla en Base. Una vista, en este contexto, es muy parecida a una consulta, con la diferencia de que una vez creada, no podemos acceder a su diseño, pero su funcionalidad es muy parecida. Si los registros de las tablas se modifican, también las vistas relacionadas con esas tablas mostrarán resultados diferentes.

De hecho, si creamos una vista, podremos comprobar que en Access se ha creado una consulta que se puede ejecutar correctamente, pero no intentemos editarla, pues Access se alocará totalmente, incluso provocando un crash si intentamos acceder a la vista SQL.

¿Qué ocurre si en esta base de datos creamos una consulta? Pues que la consulta se creará y funcionará perfectamente, pero tan sólo en el .odb, no afectando para nada al archivo .mdb.

En la próxima entrega mostraremos como migrar los datos de una a otra, que como podéis intuir es tan sencillo como arrastrar las tablas de la base neptuno-access.odb hasta neptuno-base.odb.  No obstante, hay que tener en cuenta una serie de matices en relación a los formatos de los campos, que posiblemente nos obliguen a personalizarlos de alguna manera.  De eso trataremos en nuestra próxima entrega.

Ahora, podéis ver un vídeo demostrativo de los pasos dados hasta aquí.