Excel: mySQL über ODBC



  • Hallo

    Ich habe folgendes Problem:
    Aus einem Excel-Arbeitsplatz sollen mittels VBA und ODBC Daten in eine mySQL Datenbank geschrieben und daraus wieder gelesen werden.

    Ich habe jetzt mal mySQL installiert, eine Datenbank mit meinen Tabellen angelegt und den myODBC Treiber (3.51) von der mysql.com installiert. Die ODBC Verbindung in der Computerverwaltung habe ich auch schon angelegt. Nun geht es darum aus dem VBA Programm heraus auf die ODBC Schnittstelle zuzugreifen.

    Kann mir da irgendjemand helfen, da ich leider keinen Plan habe. Hab in einigen Forenbeiträgen bereits ein Schlüsselwort "Connection" gefunden, aber mein VBA meckert immer an dieser Stelle wo ich das hinschreibe.

    Wenn sich damit jemand auskennt, bitte melden.

    Vielen Dank im Voraus 🙂



  • Dieses Beispiel liest aus einer Datenbank (Simple.mdb), greift auf Tabelle Books zu und holt die Felder BookTitle, BookDescription und HomepageUrl raus (sorry wegen Formatierung). Eigentlich ist das ASP mit VBS, deshalb der mappath.
    Treiber musst du auch noch anpassen, hier noch auf Access ausgelegt.

    Option Explicit
    
       On Error Goto 0
    
       Dim objConn
       Dim objCmd
       Dim objRS
       Dim strConn
       Dim strQuery
    
       strConn = "PROVIDER=Microsoft.Jet.OleDb.4.0;Data Source=" & _
          Server.MapPath("Simple.mdb")
       strQuery = "SELECT BookTitle, BookDescription, HomepageUrl " & _
          "FROM Books"
    
       Set objConn = CreateObject("ADODB.Connection")
       objConn.ConnectionString = strConn
       objConn.Open()
    
       Set objCmd = CreateObject("ADODB.Command")
       Set objCmd.ActiveConnection = objConn
       objCmd.CommandText = strQuery
    
       Set objRS = objCmd.Execute
    
                'Weiter unten im Code
                Dim intCurrent
                Dim strBgColor
                intCurrent = 0
    
                While Not objRS.EOF
                   Dim strUrl
                   strUrl = objRS("HomepageUrl")
    
                   'Irgendwas mit Information machen
    
                   intCurrent = intCurrent + 1
                   objRS.MoveNext
                Wend
    
                objRS.Close()
                objConn.Close()
    
                Set objRS = Nothing
                Set objCmd = Nothing
                Set objConn = Nothing
    

Anmelden zum Antworten