Excel und MySQL

Bild

Betrifft: Excel und MySQL
von: Marcus
Geschrieben am: 14.04.2005 18:11:53
Hallo zusammen,
ich habe mal eine grundsätzliche Frage zu Excel in Verbindung mit MySQL. Ich möchte eine MySQL Datenbank mit einem Excel-Formular pflegen, dh. Daten abfragen, Daten ändern, Daten löschen und Daten neu anlegen. Die Daten abfragen ist soweit kein Problem. Das erledigt Microsoft Query wunderbar. In der Query kann ich auch SQL-Befehle eingeben, die die Datensätze veränden bzw. löschen können. Versuche ich diese Befehle jedoch über ein VBA-Modul an Query zu übergeben, bekomme ich Fehlermeldungen.
Kann ich mein Vorhaben überhaupt umsetzen, oder muß nun doch in die PHP-Programmierung einstegen?
Gruß Marcus

Bild

Betrifft: AW: Excel und MySQL
von: EtoPHG
Geschrieben am: 14.04.2005 18:27:54
Hallo Marcus,
Das kannst Du schon in VBA und ODBC machen, aber nicht einfach mit dem ändern des Query-objekts.
Ein minimaler Code könnte etwa so aussehen.

Sub dbUpdate()
    Dim dbWS As Workspace
    Dim conDB As Connection
    Dim sSQL As String 
'   Create ODBCDirect Workspace object.
    On Error GoTo SQLErrorHandler
    Set dbWS = CreateWorkspace("myWorkspace", "Excel", "", dbUseODBC)
'   Take connection settings from existing query
    sConnect = ActiveSheet.QueryTables(1).Connection
'   Connect to database
    Set conDB = dbDB.OpenConnection("myConnection", dbDriverNoPrompt, , sConnect)
'   SQL construction (Enter, or construct your SQL here
    sSQL = "DELETE from TABLE1 WHERE key=1"
'   Execute the SQL
    conDB.Execute sSQL
'   Commit transaction
    conDB.Execute "Commit"
'   Close connection
    conDB.Close
End Sub

Dazu musst du noch auf die Microsoft DAO library im VBE verweisen.
Gruss Hansueli
Bild

Betrifft: AW: Excel und MySQL
von: Marcus
Geschrieben am: 18.04.2005 18:00:44
Hallo Hansueli,
Dein Vorschlag ist aller erste Sahne. Der Code läuft wie Sau. Somit bleibt mir die SQL-Welt mit Excel nicht länger verschlossen. Ich danke Dir sehr.
Gruß Marcus
 Bild

Beiträge aus den Excel-Beispielen zum Thema "Pivot aktualisieren"