2008-12-18 4 views
11

Ich studiere einen Einführungskurs in Datenbanken und eine der Übungen ist mit MS-Access zu arbeiten. Aber ich benutze Linux zu Hause und obwohl ich die Computerkurse an der Universität benutzen kann, ist es alles andere als praktisch (begrenzte Öffnungszeit - meine Studienzeit sind meistens Nächte).Wie verwendet man eine MS-Access-Datei von Linux?

Wie kann ich eine Access-Datei (*.mdb) in Linux verwenden? Unter Verwendung verstehe ich Tabellen ändern, Abfragen schreiben und so weiter.

Gibt es Werkzeuge, um es in ein anderes Datenbankformat zu konvertieren (mysql, postgresql oder sogar gadfly)?

Auch welche Probleme kann ich begegnen?

+0

Danke für alle Antworten. Ich habe OpenOffice Base vergessen. Ich hoffe, die verschiedenen Vorschläge während des Wochenendes auszuprobieren und zu sehen, was für mich am besten funktioniert. –

+0

Weitere Informationen zur Verwendung von [Öffnen | Libre] Office Base mit Access-Datenbanken unter Linux, siehe [diese Antwort auf Ask Ubuntu] (https://askubuntu.com/a/519571/323236). –

Antwort

1

Aus der Dokumentation: Connecting To Microsoft Access. Dies scheint jedoch darauf hinzuweisen, dass Sie Zugriff in einem Windows-Host benötigen und über ODBC verbinden müssen ... Siehe auch Known Problems.

+0

MS Jet läuft nur auf Windows. Die Datensatzsperre ist eng mit Windows-Dateisystemen verknüpft, und ich erlaube meinen Clients nicht einmal, ihre MDBs auf Dateiservern zu speichern, die keine nativen Windows-Dateisysteme ausführen (das heißt, kein Novell und kein Linux/Samba). –

14

Obwohl ein bisschen veraltet, hatte ich einen guten Erfolg mit mdbtools, die eine Reihe von Befehlszeilen-Tools für den Zugriff und die Konvertierung von Access-Datenbanken in andere Formate ist. Ich habe es für den Import von Datenbanken in PostgreSQL verwendet.

Wenn Sie eine Ubuntu-Variante laufen lassen Sie es mit installieren:

sudo apt-get install mdbtools 

oder Sie können es von here herunterladen.

+0

Ich werde das zweite - aber seien Sie gewarnt, dass verschiedene Versionen von MDTPTools zu einer etwas anderen Ausgabe führen wird. Typen und Schema können variieren. – Arafangion

0

Sie können mit Access über eine Verbindung (ODBC oder OLEDB) arbeiten, solange Sie nur die Dimension "Datenbank" der Datei verwalten müssen (Tabellen und Ansichten, die in Access "Abfragen" genannt werden).

Sobald die Verbindung geöffnet ist (siehe here für Verbindungszeichenfolgen), können Sie SQL-Befehle an Ihre MDB-Datenbank senden, wie (wo cn hier ist ein Verbindungsobjekt):

cn.execute "CREATE TABLE myTableName (myTable_id autoNumber, myTable_code Text, ...)" 

Bitte beachten Sie, dass MsAccess verwendet eine bestimmte DDL, die wie das Standard-T-SQL aussieht, ist es aber nicht wirklich. Überprüfen Sie die Syntax in der MsAccess-Hilfe.

Abhängig von Ihrer Datenbank (und ihren Einschränkungen, Standardwerten, verwendeten Primärschlüsseln, Beziehungen, Datenüberprüfungsregeln usw.) kann die Übertragung von Access einfach und direkt oder sogar nicht möglich sein. Sie werden jedes Mal auf ein Problem stoßen, wenn Ihre Datenbank eine zugriffsspezifische/nicht standardmäßige SQL-Regel implementiert.

Wenn Sie wirklich Ihre Zugangsdaten in etwas anderes konvertieren müssen, würde ich Ihnen empfehlen, (1) es unter MS-SQL zu exportieren (die kostenlose Version ist in Ordnung, ein Upsizing-Wizard ist in Access oder on this site verfügbar) (2) Verwenden Sie ein zusätzliches Tool wie this one, um ein SQL-Skript "CREATE DATABASE" zu generieren, einschließlich oder nicht Dateneinfügungen. (3) Verwenden Sie dieses Skript, um die Datenbank und ihre Daten auf einem anderen Datenbankserver zu erstellen.

2

Ich versuche gerade Access mit Wine auf Ubuntu und ich scheine es zu bekommen. Ich habe festgestellt, dass ich verschiedene DLLs manuell kopieren muss, aber das könnte leicht Mangel an Lesen zu dem Thema sein.

1

Wenn Sie einen Auftrag haben, mit Access zu arbeiten, dann finden Sie einen Windows-Computer und machen Sie Ihre Übung auf der nativen Plattform für Access. Es ist völlig sinnlos, etwas anderes zu tun, da Sie nichts Nützliches über Access lernen werden.

Wenn die Zuweisung einen Jet-Datenspeicher verwenden soll, dann ist das eine andere Geschichte. Und wenn es so ist, dann hättest du deine Frage anders formulieren sollen. Ich würde nicht empfehlen, Jet auf irgendetwas außer einem nativen Windows-Dateisystem zu verwenden. Wenn das Projekt tatsächlich Daten in eine Jet-Datendatei lesen/schreiben soll, erfüllen Sie die Zuweisung nicht wirklich, wenn Sie nicht mindestens Windows als ODBC-Host verwenden.

+0

Trotz der Formulierung ist dies eine sehr realistische Antwort. Sicherlich hat die Uni Laborcomputer, die für diesen Zweck verwendet werden könnten !? – Arafangion

1

Sie haben kein Glück. Access hat keine echte Entsprechung auf Linux und während Kexi eine interessante Alternative ist, die Access-Dateien importieren kann und ähnliche Funktionalität bietet, verwendet Access-Dateien nicht wirklich, sobald die Daten importiert werden.

Wenn Ihre Aufgabe ist, eine Access-Anwendung mit Formularen usw. im Gegensatz zu nur mit und mdb Datenbank als Geschäft zu entwickeln, können Sie eine aktuelle Version von Wine mit einer kompatiblen Access-Version (siehe compatibility list) oder noch besser versuchen , finde eine Windows-Maschine, bei der du sicher bist, dass sie funktioniert.

Nicht zu vergessen, die Verwendung einer mit Windows geladenen virtuellen Maschine würde Ihnen helfen, dasselbe auf Ihrer Linux-Box zu erreichen.

Verwandte Themen