Dès que vous travaillez sur des volumes de données important* avec
des tiers (clients, fournisseurs, ...), le format d'échange le plus répandu
devient (hélas) le .mdb, le format du SGBD Access édité par Microsoft. Qu'on le
veuille ou non, qu'on travaille tous les jours avec mysql ou pas, c'est comme
ça... Cela évolue doucement, mais en attendant... '
Souvent, demander un export en csv suffit. Parfois ce n'est pas possible,
surtout quand vous dépassez la dizaine de tables... Ou qu'il faudrait attendre
à nouveau 2 ou 3 jours l'acheminement du support physique par la Poste...
Alors on s'adapte, et le logiciel libre, via Ubuntu le fait très bien comme
d'habitude.
L'objectif : consulter la base Access, et travailler
avec MySql (par exemple), parce qu'il n'y a pas de raison de changer
d'application juste pour un problème de format.
Les possibilités qui existent sous Ubuntu :
Installer Access dans Wine. (ou plutôt dans son avatar
commercial : CrossOver)
Cela fonctionne pas trop mal, mais déjà que le logiciel n'est pas un modèle
d'optimisation, sous Wine, ça devient l'horreur... et ça ne résous pas le fait
que la dernière fois que vous avez utilisé Access c'était au siècle dernier
...
Utiliser OpenOffice
En principe, OpenOffice/Base sait lire les mdb depuis quelques temps. En
principe car cela il semble que cela dépende aussi de la version d'Access qui a
créé la base de données. Mais même quand cela fonctionne, vous n'avez pas
vraiment de possibilité d'importer de façon transparente dans un autre SGBD
(c'est définitivement le point faible d'OO/Base).
Utiliser un site en ligne : http://www.mdb2mysql.com/.
Pratique, mais avez vous vraiment envie de communiquer vos données ?
(et peu efficace si vous avez 1Go de base à uploader sur le serveur...)
Utiliser les mdbtools (paquet disponible dans ubuntu)
Le paquet mdbtools mets à disposition un certain nombre d'outils en ligne de
commande pour :
- exporter des tables : mdb-export
- récupérer le schéma : mdb-schema
- lister les objets : mdb-tables
L'interface graphique existe aussi dans le paquet mdbtools-gmdb :
gmdb2.
Légère, elle permet de rapidement visualiser le contenu de la base et de
faire la plupart des opérations courantes.
Pas mal, mais _moins bien que si c'était mieux_
car :
- l'exportation du schéma au format mysql n'est pas très précise (le format
date, par exemple, ou le nom des tables...)
- cela ne résous pas vraiment la question de rapidement
pouvoir exploiter le contenu de la base dans mysql.
Utiliser une
solution '''quick & dirty - 2 heures''' en perl (qui utilise
les mdbtools)
- lister le contenu de la base
- exporter chaque table en csv
- générer un fichier sql utilisable depuis mysql pour créer le schéma et
importer les données.
usage : ./mdb2mysql.pl nom_du_fichier.mdb
... ce qui générera les fichiers csv et un fichier mdb2mysql.sql qu'il
suffit après d'éxecuter pour importer la base.
''NB : mon script en perl n'a aucune prétention, il est même plutôt
hideux 
Utiliser la même chose en plus fini, découvert juste après
l'écriture de ce billet :
http://www.enobis.com/sw/mdb2mysql/
En conclusion :
- les solutions en consultations sont très nombreuses et de plus en plus
simple à mettre en oeuvre.
- la modification native des formats mdb n'est pas encore réellement possible
(mais est ce souhaitable ?)
- il est relativement aisé de convertir une base access en une base MySql (ou
autre chose), ce qui permet définitivement de s'affranchir de ce format...
___
* : (Le volume important est bien sur relatif : disons
quelques centaines de milliers de lignes.)