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 1/2012.

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

Greifen Sie ohne MyODBC, also ohne zusätzliche Installation, auf eine MySQL-Datenbank zu.

Techniken

VBA, MySQL

Voraussetzungen

Access 2000 und höher

Beispieldateien

MySQLOhneMyODBC.mdb

Shortlink

www.access-im-unternehmen.de/818

MySQL-Zugriff ohne MyODBC

André Minhorst, Duisburg

Für viele Anwender fällt ein ODBC-Zugriff auf eine MySQL-Datenbank flach, weil sie auf ihrem Rechner keine zusätzliche Software wie etwa MyODBC installieren dürfen. Mit einer speziellen MySQL-DLL und einigen Klassen einer Open Source-Bibliothek gelingt dies auch ohne Installation von MyODBC - Sie brauchen nur noch eine einzige DLL in das Verzeichnis zu kopieren, in dem sich auch Ihre Datenbankdatei befindet. Dieser Beitrag zeigt die Möglichkeiten dieser Lösung auf.

Den Großteil der Arbeit der in diesem Beitrag vorgestellten Lösung übernimmt das Projekt vbmysqldirect, das Sie unter http://www.vbmysql.com/projects/vbmysqldirect herunterladen können. Gleich vorneweg der Hinweis, dass die in der hier vorgestellten Lösung verwendeten Klassen der GNU Library General Public License unterliegen. Das bedeutet unter anderem, dass Sie Anwendungen, welche diese frei verfügbaren Klassen nutzen, nicht kommerziell vertreiben dürfen.

Voraussetzungen

Einzige Voraussetzung für den Einsatz der in diesem Beitrag vorgestellten Lösung ist das Vorhandensein der Bibliothek libmysql.dll im Verzeichnis der Datenbankdatei. Diese DLL gelangt üblicherweise mit der Installation von MySQL auf den Rechner, kann aber auch anderweitig bezogen werden - zum Beispiel von dieser Seite: http://www.mysql.com/downloads/connector/c/. Die Beispieldatenbank enthält diese DLL in einem OLE-Feld der Tabelle tblTools, von wo aus sie mit der Prozedur ExportDLL in das aktuelle Datenbankverzeichnis exportiert werden kann. Vom Projekt vbmysqldirect importieren Sie einige Klassen und ein Standardmodul in die Datenbank, von der aus Sie direkt auf eine MySQL-Datenbank zugreifen möchten. In Abb. 1 sehen Sie diese Module. Wenn Sie die Module importiert und die DLL in das Anwendungszeichnis exportiert haben, können Sie loslegen. Wie das geht, zeigt das folgende Beispiel.

pic002.png

Abb. 1: Das Modul modDeclare und die Klassen dieses Projekts enthalten die Methoden für den Zugriff auf MySQL-Datenbanken.

Datenbanken ausgeben

Die Objekte und Methoden von vbmysqldirect lehnen sich stark an das ADO-Objektmodell an. Dennoch liefern sie einige MySQL-spezifische Methoden. Mit der ersten zeigen wir, wie Sie alle Datenbanken eines angegebenen MySQL-Servers anzeigen. Die Prozedur aus Listing 1 wird durch die Schaltfläche cmdDatenbankenAnzeigen des Formulars frmMySQL ausgelöst (s. Abb. 2). Dieses Formular ist an die Tabelle tblConnections gebunden, welche Verbindungsdaten für den Zugriff auf die einzelnen Datenbanken enthält. Dabei deklariert und erstellt sie zunächst ein Objekt namens conn auf Basis der Klasse MYSQL_CONNECTION. Diese wird mit den im aktuellen Datensatz des Formulars gespeicherten Daten geöffnet. Außerdem verwendet die Prozedur ein Objekt des Typs MYSQL_RS, welches dem Recordset-Objekt entspricht.

Listing 1: Zusammenstellen einer Liste aller Datenbanken eines MySQL-Servers

Private Sub cmdDatenbankenAnzeigen_Click()

    Dim conn As MYSQL_CONNECTION

    Dim rst As MYSQL_RS

    Dim strDatenbanken As String

    Set conn = New MYSQL_CONNECTION

    Set rst = New MYSQL_RS

    conn.OpenConnection Me!Server, Me!Benutzername, Me!Kennwort, Me!Datenbank, Me!Port

    Set rst = conn.Show(MY_SHOW_DATABASES)

    Do While Not rst.EOF

        strDatenbanken = strDatenbanken & rst.Fields("Database").Value & ";"

        rst.MoveNext

    Loop

    Me!lstDatenbanken.RowSource = strDatenbanken

End Sub

pic003.png

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:

© 2003-2015 André Minhorst Alle Rechte vorbehalten.