Wer darauf angewiesen ist, Microsoft Access Datenbanken (MDB) unter anderen Betriebssystemen als Microsoft Windows zu verwenden, hat meist das Nachsehen. Microsoft Access gibt es eben nur für Windows. Eine Lösung für das Problem könnte sein, die Daten von Access bzw. dem MDB Format in ein anderes Format zu konvertieren. Und das funktioniert auch unter Ubuntu Linux!Je nach Anwendungsfall gibt es verschiedene Szenarien, so haben manche Anwender auch Zugriff auf MySQL oder Microsoft SQL und können dann unter Access eine neue Datenbankverbindung anlegen und alle Daten so auf den Server migrieren. Anschließend ist der Zugriff über normales SQL, JDBC, ODBC etc. möglich.
Besonders wenn es darum geht, die Daten später in einer Anwendung weiter zu verwenden, macht dieser Ansatz Sinn. Egal ob über Java, PHP oder .net – der Zugriff auf eine Standard-Datenquelle funktioniert mit vielen Sprachen und Frontends.

Um, ohne Windows zur Hand zu haben, Daten zu exportieren oder das Schema zu exportieren haben sich die mdbtools bisher bewährt – es gibt auch nichts anderes. Darauf aufbauend kann man z.B. sqlrelay einsetzen um dann mit einem normalen SQL Treiber auf die Access Datenbank zugreifen.

mysql-converterEbenfalls eine Möglichkeit zur Konvertierung – dann jedoch nur zu MySQL – stellt der „MySQL Converter“ dar. Eine Software, die von MySQL angeboten wird, um von verschiedenen Datenbanken zu MySQL migrieren zu können. Das Programm ist Teil der MySQL GUI Tools, die auf der MySQL Homepage zum Download angeboten wird.
Die MySQL GUI Tools benötigen Java und lua installiert. Beides ist unter Ubuntu kein Problem.
Leider hat es bei mir nicht so gut geklappt – mir scheint, dass die Tools bei der Konvertierung von Access versuchen auf Access ODBC Treiber zuzugreifen, die natürlich auch nur unter Windows vorhanden sind.

mdb2odbIn meinem Fall war das Szenario sowieso etwas anders – es gab zum einen kein Zugriff auf ein Windows System zur Konvertierung, außerdem sollten die Daten später mit einem Programm „ähnlich Microsoft Access“ weiter verwendet werden können. Da liegt natürlich OpenOffice Base nahe. Und genau für die Konvertierung von Access mdb nach OpenOffice Base odf Dateien gibt es praktischerweise ein grafisches Tool: mdb2odb.
Auch dieses Programm greift auf die mdbtools zu – und zusätzlich auf OpenOffice Base. Hat man beides installiert, steht einer komfortablen Konvertierung der Daten nichts mehr im Wege. (mdbtools per apt-get installieren, das mdb2odb kann man von der Google Code Seite direkt als installierbares Debian Paket laden.)

Dabei spielt offenbar die richtige Reihenfolge der nächsten Schritte eine Rolle, sonst funktionierte es bei mir nicht. (odb2mdb ist vielleicht eine etwas frühe Programmversion.)
mdb2odb-open-microsoft-access-mdb

  1. OpenOffice Base starten, und eine neue Datenbank anlegen, in die konvertiert werden soll. Programm nicht schließen.
  2. odb2mdb starten. Nun öffnet sich ein OpenOffice Base Dialog, diesen kann man schließen. Nun die Access MDB Datei auswählen, die konvertiert werden soll
  3. Als Zieldatenbank kann man nun die eben neu angelegte Datenbank auswählen, und die gewünschten Tabellen markieren.
  4. Noch den „Convert“ Knopf drücken, und zusehen wie der Progressbar arbeitet – und dabei die Daten in die neue Datenbank fließen.

convert-mdb-to-odbÜbrigens: Wer später die Daten doch noch nach MySQL, Postgres oder eine andere Datenbank überführen möchte, kann dies auch sehr leicht mit OpenOffice Base erledigen. Hier legt man die neue Datenbank – z.B. über JDBC – an, und kann per „Drag and Drop“ die Tabellen übernehmen. Leider können – wie schon beim Import aus Microsoft Access – keine Reports oder Abfragen mit übernommen werden.

Man sollte sich also im vorfeld schon überlegen für welchen Zweck man die Access Datenbank nutzen möchte – und ob eine Desktop Datenbank da alle Anforderungen erfült.