Zur Hauptseite ... Zum Onlinearchiv ... Zum Abonnement ... Zum Newsletter ... Zu den Tools ... Zum Impressum ... Zum Login ...

Achtung: Dies ist nicht der vollständige Artikel, sondern nur ein paar Seiten davon. Wenn Sie hier nicht erfahren, was Sie wissen möchten, finden Sie am Ende Informationen darüber, wie Sie den ganzen Artikel lesen können.

Kompletten Artikel lesen?

Einfach für den Newsletter anmelden, dann lesen Sie schon in einer Minute den kompletten Artikel und erhalten die Beispieldatenbanken.

E-Mail:

Gedrucktes Heft

Diesen Beitrag finden Sie in Ausgabe 2/2008.

Unser Angebot für Sie!

Lesen Sie diesen Beitrag und 500 andere sofort im Onlinearchiv, und erhalten Sie alle zwei Monate brandheißes Access-Know-how auf 72 gedruckten Seiten! Plus attraktive Präsente, zum Beispiel das bald erscheinende Buch 'Access 2010 - Das Grundlagenbuch für Entwickler'!

Diesen Beitrag twittern

Zusammenfassung

Erfahren Sie, wie Sie aus Access heraus mit einem MySQL-Backend arbeiten.

Techniken

Datenmodellierung, SQL, ODBC

Voraussetzungen

Access 97 und höher

Beispieldateien

suedsturm.zip

Shortlink

588

Von Access nach MySQL, Teil 2

Sascha Trowitzsch, Berlin

In der letzten Ausgabe des Magazins haben Sie erfahren, wie man mit einem Access-Backend und dem kostenlosen Migration Toolkit auf einen MySQL-Server umziehen kann. Sie haben vielleicht das Beispiel nachvollzogen und die Datenbank Südsturm von Access im Unternehmen nun in MySQL-Tabellen vorliegen. Nach diesem Schritt steht die Anbindung dieser Tabellen an ein Access-Frontend an. Wie Sie dabei vorgehen und wie auftretende Probleme gelöst werden können, das soll der folgende Beitrag erläutern.

Sie müssen weder zwingend den ersten Teil dieser Serie verinnerlicht, noch das dort vorgestellte Südsturm-Beispiel durchgespielt haben.

Denn zu den diesen Beitrag begleitenden Dateien gehört auch ein SQL-Skript Suedsturm_Backup.sql, mit dem Sie die MySQL-Datenbank samt referenzieller Integrität herstellen können.

Weil dies ein Vorgang ist, den Sie auch später immer mal wieder bei der Arbeit mit MySQL benötigen, sei das Sichern einer MySQL-Datenbank in einer einzigen Datei hier zunächst kurz aufgezeigt.

Backup erstellen

Starten Sie den MySQL Administrator aus der GUI-Suite von MySQL [2]. Sie werden mit einem Login-Dialog konfrontiert, in dem Sie die notwendigsten Anmeldedaten angeben (s. Abb. 1).

missing image file

Abb. 1: Anmelden an MySQL Administrator für eine Verwaltungs-Session

Interessant sind dabei nur die Felder Server Host, Nutzername und Passwort. Für Server Host ist bei lokal installiertem MySQL-Server localhost anzugeben und ansonsten der Name des Servers oder dessen IP-Nummer.

Als Benutzername verwenden wir zunächst den immer existierenden Benutzer root, dessen Passwort bereits beim Installieren des MySQL-Servers vergeben wurde.

Sollten schon zusätzliche Benutzer angelegt worden sein, dann können Sie hier natürlich auch einen alternativen Account angeben. Wichtig ist aber, dass dieser Account über Berechtigungen zum Anlegen von Datenbanken (Schemata) verfügt.

Nachdem der MySQL Administrator gestartet wurde, finden Sie im Menü den Punkt Backup. Wenn Sie diesen aktivieren, dann zeigt sich Ihnen eine Liste der auf dem Server befindlichen Datenbanken, in der aber noch kein Eintrag ausgewählt werden kann (s. Abb. 2). Erst muss nämlich ein Backup-Projekt mit der Schaltfläche Neues Projekt angelegt werden.

missing image file

Abb. 2: Die Tabellen für ein Backup im MySQL-Administrator

Falls der Backup-Vorgang später öfters wiederholt werden soll, dann vergeben Sie im Feld Projektname außerdem einen aussagekräftigen Namen wie Südsturm_Backup und betätigen die Schaltfläche Projekt speichern. Er erscheint damit in der Liste der Backup-Projekte links und kann aus dieser immer wieder aufgerufen werden.

Die Liste der verfügbaren Schemata ist nun aktiv, Sie können daraus eine Datenbank auswählen und mit der Pfeil rechts-Schaltfläche zum Backup-Inhalt hinzufügen.

Standardmäßig werden dabei alle Tabellen der Datenbank für das Backup berücksichtigt. Ein Teil-Backup ist möglich, indem Sie einzelne Tabellen abwählen. Sollten später der Datenbank neue Tabellen hinzugefügt werden, dann müssen diese manuell in das Backup-Projekt integriert werden.

Einfacher ist es aber, Sie schalten auf den Reiter Erweiterte Einstellungen um und aktivieren die Checkbox Vollständiges Backup - neue Tabellen werden dann später automatisch berücksichtigt.

Das Backup stellen Sie anschließend mit Klick auf die Schaltfläche Backup jetzt durchführen fertig. Dabei werden Sie in einem Speichern-Dialog dazu aufgefordert, einen Dateinamen für das Skript anzugeben - etwa suedsturm_backup.sql. Das erfolgreich exportierte SQL-Skript enthält nichts weiter als eine Aneinanderreihung von DDL-Anweisungen, aus dem die Datenbank von Grund auf neu erstellt werden kann. Mit INSERT-Statements werden auch die Daten wiederhergestellt.

Bliebe noch zu erwähnen, dass dieses Backup auch automatisiert durchgeführt werden kann, wenn über den Registerreiter Zeitplanung entsprechende Angaben gemacht werden. Weitere Ausführungen zum Vorgehen dabei finden Sie in der Hilfe zum MySQL Administrator.

Backup wiederherstellen

Aus dem SQL-Skript können Sie sehr einfach eine Datenbank wiederherstellen, indem Sie den Menüpunkt Wiederherstellung im MySQL Administrator aktivieren. Sie wählen die SQL-Datei suedsturm_backup.sql über die Schaltfläche Datei öffnen aus und klicken anschließend auf Starten.

Eine Fortschrittsanzeige informiert dann über die Wiederherstellung beziehungsweise das Neuanlegen der Datenbank. Die übrigen Einstellungen auf der Registerseite sind selbsterklärend und bedürfen im Normalfall keiner Modifikation.

Machen Sie sich allerdings klar, dass mit dem Wiederherstellen-Vorgang eine möglicherweise existierende Datenbank gleichen Namens auf dem Server komplett gelöscht wird.

Differenzielle Backups mit ausgeklügelten Optionen, die etwa Microsoft SQL Server vorsieht, sind mit den Bordmitteln des MySQL Administrators nicht möglich. Solche Backup-Tools sind für MySQL nur gegen gutes Geld zu haben.

Hier wird deutlich, dass Backups sich hervorragend dazu eignen, um Datenbanken von einem Server zum anderen zu transferieren. Entwickeln Sie Ihre Datenbank etwa auf dem lokalen MySQL-Server und speichern Sie nach Abschluss der Entwicklung über ein Backup das Ganze auf einen USB-Stick.

Beim Kunden stellen Sie aus der SQL-Datei die komplette Datenbank wieder her und haben ihn damit mit Ihrem neuesten Werk beglückt. Selbstverständlich lässt sich das alternativ statt über USB-Stick oder einen anderen Datenträger auch direkt über eine VPN-Verbindung zum Kunden erledigen - Sie brauchen bei Anmeldung am MySQL Administrator lediglich die IP des Kundenservers unter Server Host einzutragen.

ODBC-Treiber installieren

Unser Ziel ist es ja, die Tabellen vom MySQL-Server auf gleiche Weise in ein Access-Frontend zu verknüpfen, wie dies auch mit einem MDB-Backend geschieht.

Microsoft liefert aber verständlicherweise keinen nativen (ISAM-)Treiber für MySQL-Datenbanken. Die Verbindung geht über ODBC vonstatten. ODBC ist eine standardisierte Zwischenkommunikationsschicht zwischen einem SQL-Server und einem SQL-Client.

Ein ODBC-Consumer (Access) hält dabei genauso das Protokoll ein wie der ODBC-Provider. Beim Provider handelt es sich um einen Treiber, der mittels eigenem API den Server über TCP/IP-Ports oder Named Pipes ansprechen kann.

Nur er kennt die genauen Statements, die der SQL-Server verlangt, und kann mit den zurückgelieferten Ergebnissen etwas anfangen.

Der ODBC-Treiber ist damit im Prinzip nichts anderes als ein Übersetzer der standardisierten

ODBC-SQL-Syntax in die Sprache, die der jeweilige SQL-Server versteht, und umgekehrt.

Für MySQL ist ein ODBC-Treiber unter [1] verfügbar, der MySQL Driver 3.51. Vor einiger Zeit wurde er in MySQL Connector/ODBC umgetauft.

Es gibt alternativ noch eine Version 5.1, die erweiterte Unicode-Kompatibilität aufweist, welche Sie aber besser noch nicht verwenden sollten, weil sie aus dem Beta-Stadium noch kaum heraus ist und auch sonst keine Vorteile bietet.

Das Treiberpaket im MSI-Format installieren Sie per Doppelklick unter Administratorrechten auf dem Rechner. Optionen gibt es dabei nicht zu berücksichtigen.

Datenquelle (DSN) anlegen

Eigentlich können Sie nach Installation des Treibers sogleich eine Verknüpfung zu MySQL-Tabellen aus Access heraus ansteuern. Diese Verknüpfung und die notwendigen Einstellungen müssen Sie dann aber für jedes Frontend neu vornehmen, das auf die gleiche MySQL-Datenbank zugreift.

Sinnvoll ist daher der Zwischenschritt über eine ODBC-Datenquelle, welche die Verbindungsdaten persistent in einer Datei oder in der Registry festhält. In Zukunft muss dann nur noch diese gespeicherte Verbindung aufgerufen werden. Die Verwaltung dieser Verbindungen erfolgt auf Ihrem Rechner über die Systemsteuerung und den ODBC-Datenquellen-Administrator.

Unter Windows XP finden Sie diesen ODBC-Administrator über den Umweg Systemsteuerung|Verwaltung|Datenquellen (ODBC).

Drei Registerkarten sind nun für das Neuanlegen oder Verwalten einer Datenquelle von Belang: Benutzer-DSN, System-DSN, Datei-DSN (s. Abb. 3). DSN bedeutet Database System Name. Für welche Sie sich entscheiden, ist zunächst egal. Jede dieser Seiten zeigt die Schaltfläche Hinzufügen… und Konfigurieren…

missing image file

Abb. 3: Der ODBC-Datenquellenadministrator von Windows

So eingerichtete Datenquellen unterscheiden sich lediglich im Ort, an dem sie abgespeichert werden. Während bei der Datei-DSN die Verbindungsdaten in einer Textdatei gespeichert werden, die somit mobil ist, exportieren Benutzer-DSN und System-DSN die Einstellungen in die Registry - einmal im Zweig HKEY-CURRENT_USER und im anderen Fall im Zweig HKEY_LOCAL_MACHINE, jeweils unter \Software\ODBC\ODBC.INI.

Der Knackpunkt: Dabei werden alle Daten inklusive des für die Verbindung notwendigen Passworts im Klartext abgespeichert. Wie mit diesem Problem umgegangen werden kann, folgt später bei der Beschreibung von DSNless Connections.

Erstellen wir nun eine ODBC-Verbindung zur Südsturm-Datenbank auf dem MySQL-Server. Wählen Sie dazu Benutzer-DSN und Hinzufügen... Sie werden dann zur Auswahl eines installierten ODBC-Treibers aufgefordert. Wählen Sie hier den MySQL ODBC 3.51 Driver aus (s. Abb. 4).

missing image file

Abb. 4: Treiberauswahl beim Anlegen einer DSN-Datenquelle

Um fortzufahren, klicken Sie auf die etwas unglücklich bezeichnete Schaltfläche Fertigstellen - fertiggestellt wird hier nämlich noch nichts, sondern Sie gelangen damit zum treiberspezifischen Konfigurations-Dialog des MySQL Connectors (s. Abb. 5). Hier können Sie nun den Namen für die Datenquelle angeben (Data Source Name) und die gleichen Anmeldedaten festhalten, die Sie bereits vom Start der Anwendung MySQL Administrator kennen: Server, Benutzer (User) und Passwort. Nachdem diese Grunddaten eingegeben wurden, füllt sich automatisch auch das Kombinationsfeld Database mit den auf dem Server verfügbaren Datenbanknamen. Sie wählen hier natürlich suedsturm aus.

missing image file

Abb. 5: Einstellungen des MySQL-Treibers (Connector) beim Anlegen einer DSN

Ein Klick auf OK würde diese Verbindung bereits speichern. Zuvor sollten aber dringend noch weitere Treibereinstellungen vorgenommen werden, die für das Zusammenspiel mit Access von Bedeutung sind. Wechseln Sie dazu zur Registerkarte Advanced und aktivieren Sie Optionen wie in Abb. 6.

missing image file

Abb. 6: Konfigurationsoptionen des ODBC-Treibers für eine MySQL-Verbindung

Erläuterungen zur Wirkungsweise dieser Optionen führen hier zu weit und tief in die Funktionen der Datenbank-Engine. Fest steht jedenfalls, dass ohne diese gesetzten Optionen die Fehlerrate und Verbindungsprobleme unter Access zunehmen.

Die einzelnen Flags stehen übrigens für Optionskonstanten, die sich später bei Zugriffen über VBA-Code auch setzen lassen. Eine Zusammenstellung dieser Konstanten finden Sie unter [3]. Die Konstellation der Abbildung ergibt übrigens eine zusammengesetzte Konstante mit dem Wert OPTION=43.

MySQL-Tabellen verknüpfen

Mit der DSN-Datenquelle im Gepäck kann es nun richtig losgehen. Wie bei Access-Backends starten Sie die Verknüpfung über das Menü Datei|Externe Daten|Tabellen verknüpfen…

Im Auswahldialog stellen Sie jedoch für Dateityp ODBC-Datenbanken() ein. Im sich dadurch öffnenden Dialog markieren Sie unter Computerdatenquelle die Datenverbindung Südsturm_MySQL. Abschließend erscheint noch ein Dialogfenster, in dem Sie alle Tabellen der Südsturm-Datenbank auswählen.

Die Option zum Speichern des Kennworts können Sie auch gleich aktivieren. Die verknüpften Tabellen repräsentieren sich im Datenbankfenster nun mit einem anderen Symbol als bei Access-Backends (s. Abb. 7).

missing image file

Sie haben das Ende des frei verfügbaren Teils des Artikels erreicht. Lesen Sie weiter, um zu erfahren, wie Sie den vollständigen Artikel lesen und auf viele hundert weitere Artikel zugreifen können.

Sind Sie Abonnent?Jetzt einloggen ...
 

Kompletten Artikel lesen?

Einfach für den Newsletter anmelden, dann lesen Sie schon in einer Minute den kompletten Artikel und erhalten die Beispieldatenbanken.

E-Mail:

Verwandte Beiträge:

Access, MySQL und Berechtigungsverwaltung

Access, MySQL und Datenzugriff

DBMS-unabhängiger Zugriff auf SQL Server und Co.

Performanter Webzugriff auf MySQL-Datenbanken

Anmeldung an SQL Server und Co.

Von Access nach MySQL

Der DBMS-Connection-Wizard

Fehlerverwaltung mit Online-Komponente

VBA-Fehlerbehandlung revolutioniert

Fehlersuche und –behandlung mit Access

Benutzerverwaltung

Modale Dialoge mal anders

© 2003-2015 André Minhorst Alle Rechte vorbehalten.