Tengo unos compañeros que se empeñan en utilizar Ms-Access, que es de los pocos programas que no funcionan de manera alguna en GNU/Linux (solo queda el recurso de usar una máquina virtual, como VirtualBox).
Por ello cuando necesito trabajar con ella (o ellos necesitan hacer consultas rápidas y como no saben me lo piden a mi) utilizo un pequeño script para pasar las tablas de Ms-Access a MySQL.
Y dice así:
#!/bin/bash # # vuelca_mdb 0.1 - GPL # (c) Guimi # http://guimi.net # # Ult. mod: Guimi 2009-07 # # DATOS DEL FICHERO MDB mdb=xxx.mdb TABLA1=XXX TABLA2=YYY # DATOS DE MYSQL bbdd=xxx usuario=xxx clave=xxx # FICHERO TEMPORAL tmp="tmp.$$" echo "Exportando desde mdb..." mdb-schema $mdb -S > sql-creacion_mdb$$.sql mdb-export $mdb $TABLA1 -S -I > sql-datos_mdb$$.sql mdb-export $mdb $TABLA2 -S -I >> sql-datos_mdb$$.sql echo "Modificando ficheros exportados..." # Hay que añadir "IF EXISTS" al "DROP TABLE" sed 's/DROP TABLE/DROP TABLE IF EXISTS/g' sql-creacion_mdb$$.sql > $tmp # Hay que cambiar "Long Integer" por "Integer" sed 's/Long Integer/Integer/g' $tmp > sql-creacion_mdb$$.sql # Hay que añadir un punto y coma ";" al final de cada linea -que acaba en ")"- sed -e s/.$/\)\;/g sql-datos_mdb$$.sql > $tmp mv $tmp sql-datos_mdb$$.sql echo "Cargando datos en MySQL..." mysql -D $bbdd -u $usuario --password=$clave < sql-creacion_mdb$$.sql mysql -D $bbdd -u $usuario --password=$clave < sql-datos_mdb$$.sql echo "Borrando ficheros temporales..." rm sql-creacion_mdb$$.sql rm sql-datos_mdb$$.sql
A continuación otros comandos que pueden ser utiles (proceden del paquete mdbtools).
Mostrar la versión del fichero mdb:
$ mdb-ver xxx.mdb
Mostrar las tablas de un fichero mdb (-1 para mostrar una tabla por fila):
$ mdb-tables -1 xxx.mdb
Generar un fichero C con un Array con los datos de una tabla:
$ mdb-array xxx.mdb TABLA
Access, mdb, mysql, script, prompt, Ms-Access, mdbtools