Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1448to1452
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

VBA Script zum Zugriff auf MYSQL Datenbank mit ado

VBA Script zum Zugriff auf MYSQL Datenbank mit ado
30.09.2015 13:59:06
Ingo
Grüß Gott,
ich habe mir ein Svript angepasst, welches mir einen Datnsatz in eine MYSQL Datenbank über ADO einträgt:
Private Sub CommandButton1_Click()
' PLEASE DO THE FOLLOWING BEFORE EXECUTING CODE:
' 1)In VBE you need to go Tools/References and check Microsoft Active X Data Objects 2.x  _
library
' 2)Install MySQL ODBC 3.51 Driver. See dev.mysql.com/downloads/connector/odbc/3.51.html or  _
_
_
google "MySQL ODBC 3.51 Driver"
Dim conn As New ADODB.Connection
Set conn = New ADODB.Connection
conn.Open "DRIVER={MySQL ODBC 3.51 Driver}" _
& ";SERVER=" & "server" _
& ";DATABASE=" & "exceltest" _
& ";UID=" & "exceltester" _
& ";PWD=" & "xxx" _
& ";OPTION=16427" ' Option 16427 = Convert LongLong to Int: This just helps makes sure that  _
_
_
large numeric results get properly interpreted
SQLStr = "INSERT INTO exceltest.excel (name) VALUES('yeah;');"
conn.Execute SQLStr
conn.Close
Set conn = Nothing
MsgBox "done"
End Sub

Dieser Quelltext funktioniert auch und trägt einen neuen Datensatz mit dem Namen yeah in die Datenbank.
Jetzt bin ich dabei eine Abfrage zu gestalten, welche mir Daten aus einer MYSQL-Datenbank in Excel anzeigt. Dies ist mein bisheriger Versuch, auf Basis des INSERT Eintrag von oben, der ja schon funktioniert:
Private Sub CommandButton1_Click()
' PLEASE DO THE FOLLOWING BEFORE EXECUTING CODE:
' 1)In VBE you need to go Tools/References and check Microsoft Active X Data Objects 2.x  _
library
' 2)Install MySQL ODBC 3.51 Driver. See dev.mysql.com/downloads/connector/odbc/3.51.html or  _
_
_
google "MySQL ODBC 3.51 Driver"
Dim conn As New ADODB.Connection
Set conn = New ADODB.Connection
conn.Open "DRIVER={MySQL ODBC 3.51 Driver}" _
& ";SERVER=" & "server" _
& ";DATABASE=" & "exceltest" _
& ";UID=" & "exceltester" _
& ";PWD=" & "xxx" _
& ";OPTION=16427" ' Option 16427 = Convert LongLong to Int: This just helps makes sure that  _
_
_
large numeric results get properly interpreted
sql = "SELECT * From exceltest.excel;"
Set rs = conn.Execute(sql)
' output to sheet named "Tabelle2"
Dim i as Long
i = 2 ' start at row 2 as the headers will be on row 1
Sheets("Tabelle2").Activate
ActiveSheet.Cells(1,1).Value = "Name"
Do While Not rs.EOF
With ActiveSheet
.Cells(i, 1).Value = rs.Fields(0).Value
End With
i = i + 1 ' move to the next row
Loop
rs.Close
conn.Close
Set conn = Nothing
MsgBox "done"
End Sub

Dieser Quelltext trägt mir auch den Namen (überschrift) und in einer Endlosschleife den ersten Datnsatz den er in MYSQL findet untereinander in die Spalte A ein. Bis auf die Endlosschleife bin ja schon ziemlich zufrieden, aber wie bekomme ich diese nur weg?
Vielen Dank für jeden Tipp
Ingo

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

Betreff
Datum
Anwender
Anzeige
AW: VBA Script zum Zugriff auf MYSQL Datenbank mit ado
30.09.2015 14:42:11
Born
Hi Ingo,
in Deiner While-Schleife musst Du das rs.Objekt auch um 1 erhöhen. Kann gerade nicht in meine Beispiele reinschauen. Wenn ich mich recht erinnere, ging es mit rs.MoveNext.
Gruß,
M. Born

AW: VBA Script zum Zugriff auf MYSQL Datenbank mit ado
30.09.2015 15:06:54
Ingo
Super; Vielen lieben Dank; genau .movenext hat gefehlt;
dann fehlt mal nur noch ein Update:)
Ich werde mal mit diesem Ansatz arbeiten:
'rs update
rs.Open "SELECT * FROM my_ado"
rs!Name = "update"
rs!txt = "updated-row"
rs.Update
rs.Close
Wobei das SQL-Query dann ja sinnvollerweise eine where Abfrage auf Basis eines Primärschlüssels durchführen sollte, denke ich...
Einen entspannten RestMittwoch
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige
Archiv - Verwandte Themen