Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

VBA Code MySQL Datenbankabfrage

Forumthread: VBA Code MySQL Datenbankabfrage

VBA Code MySQL Datenbankabfrage
12.06.2014 10:05:38
Alain
Hallo Zusammen,
ich möchte durch VBA den Zugriff und die Abfrage einer MySQL Datenbak automatisieren.
Ich habe mir bereits den Code für Zugriff und Abfrage zurecht gelegt.
Nun fehlt mir nur noch die Anweisung wo die Abfrage in Excel importiert werden soll, also welche Arbeitsmappe, Tabellenblatt, Zelle.
Wenn ich mein Makro jetzt starte passiert einfach nichts, keine Fehlermeldung, aber auch kein Import von Datensätzen.
Ich hoffe es kann mir jemand helfen. Anbei mein bisheriger Code.
Sub Datenbankabfrage2()
Dim oConn As ADODB.Connection
Set oConn = New ADODB.Connection
Dim oRS As Recordset
Set oRS = New ADODB.Recordset
oConn.Open "Provider=MSDASQL;Driver={MySQL ODBC 5.2 UNICODE Driver};Server=172.17.11.26; _
Database=test;User=davi;Password=da1234$vi;"
oRS.Open "SELECT * FROM test.tasks", oConn
' Wie muss ich jetzt hier weiter machen?
End Sub

Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA Code MySQL Datenbankabfrage
12.06.2014 11:09:26
Alain
Hallo Rudi,
ich danke dir, der Link hat mir sehr weiter geholfen!
Gruß Alain
Anzeige
;
Anzeige

Infobox / Tutorial

VBA MySQL Datenbankabfrage in Excel Automatisieren


Schritt-für-Schritt-Anleitung

Um eine MySQL Datenbankabfrage in Excel mit VBA zu automatisieren, folge diesen Schritten:

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.

  2. Füge ein neues Modul hinzu: Rechtsklick auf „VBAProject (DeineMappe)“ > Einfügen > Modul.

  3. Kopiere den folgenden Code in das Modul:

    Sub Datenbankabfrage()
       Dim oConn As ADODB.Connection
       Dim oRS As ADODB.Recordset
       Set oConn = New ADODB.Connection
       Set oRS = New ADODB.Recordset
    
       ' Verbindung zur MySQL-Datenbank
       oConn.Open "Provider=MSDASQL;Driver={MySQL ODBC 5.2 UNICODE Driver};Server=172.17.11.26;Database=test;User=davi;Password=da1234$vi;"
    
       ' Daten abfragen
       oRS.Open "SELECT * FROM test.tasks", oConn
    
       ' Daten in Excel importieren
       Dim i As Integer
       Dim j As Integer
       For i = 1 To oRS.Fields.Count
           Cells(1, i).Value = oRS.Fields(i - 1).Name ' Kopfzeile
       Next i
    
       For i = 1 To oRS.RecordCount
           For j = 1 To oRS.Fields.Count
               Cells(i + 1, j).Value = oRS.Fields(j - 1).Value
           Next j
           oRS.MoveNext
       Next i
    
       oRS.Close
       oConn.Close
    End Sub
  4. Ändere die Verbindungsdaten (Server, Datenbank, Benutzer, Passwort) entsprechend deiner MySQL-Datenbank.

  5. Schließe den VBA-Editor und kehre zu Excel zurück.

  6. Starte das Makro über Entwicklertools > Makros und wähle „Datenbankabfrage“ aus.


Häufige Fehler und Lösungen

  • Keine Fehlermeldung, aber keine Daten in Excel: Überprüfe, ob die Verbindung zur MySQL-Datenbank korrekt ist und ob die Tabelle existiert.
  • Fehler bei der ODBC-Verbindung: Stelle sicher, dass der MySQL ODBC-Treiber installiert und konfiguriert ist.
  • Daten werden nicht aktualisiert: Wenn sich die Daten in der Datenbank ändern, stelle sicher, dass das Makro erneut ausgeführt wird.

Alternative Methoden

Wenn du Schwierigkeiten mit VBA hast, kannst du auch:

  • Power Query in Excel verwenden, um eine MySQL-Datenbank abzufragen. Gehe zu Daten > Abrufen und Transformieren > Aus Datenbank > Aus MySQL-Datenbank.
  • Drittanbieter-Tools wie MySQL for Excel installieren, um eine benutzerfreundliche Schnittstelle für Datenabfragen zu erhalten.

Praktische Beispiele

Hier ein einfaches Beispiel für eine MySQL Abfrage:

oRS.Open "SELECT name, age FROM test.users WHERE age > 30", oConn

Dieses Beispiel importiert nur die Spalten name und age aus der Tabelle users, wo das Alter über 30 liegt.

Du kannst die SELECT-Anweisung anpassen, um spezifische Daten abzurufen, die du benötigst.


Tipps für Profis

  • Verwende Parameter in deinen SQL-Abfragen, um SQL-Injections zu vermeiden und die Sicherheit zu erhöhen.
  • Halte die Verbindungszeichenfolge in einer separaten Konfigurationsdatei, um sie leichter zu verwalten.
  • Nutze Fehlerbehandlungsroutinen in deinem VBA-Code, um unerwartete Fehler besser zu handhaben.

FAQ: Häufige Fragen

1. Wie kann ich das Makro automatisch starten?
Du kannst das Makro beim Öffnen der Arbeitsmappe ausführen, indem du den Code in das Workbook_Open-Ereignis einfügst.

2. Funktioniert der Code auch mit anderen Excel-Versionen?
Ja, dieser VBA Code sollte in den meisten modernen Excel-Versionen (ab Excel 2010) funktionieren, solange die ODBC-Verbindung korrekt eingerichtet ist.

3. Was mache ich, wenn ich keine Daten sehe?
Überprüfe die SQL-Abfrage und stelle sicher, dass die Tabelle nicht leer ist. Teste die Abfrage direkt in einem MySQL-Client, um sicherzustellen, dass sie funktioniert.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige