ich beschäftige mich seit kurzem mit Datenbankzugriffen via VBA
und habe prompt ein ziemliches Problem - vielleicht kann mir
jemand helfen oder mir einen guten Link empfehlen.
Ich muss einige 10.000 Datensätze aus Excel in eine SQL Datenbank
schreiben und benütze dazu folgenden Code:
Sub WriteInDB()
Dim c As Long
Dim r As Long
Dim conn As ADODB.Connection
Dim rs As ADODB.Recordset
Dim w As Worksheet
Set w = Sheets(1)
Set conn = New ADODB.Connection
conn.ConnectionString = "DRIVER={MySQL ODBC 3.51 Driver};SERVER=TestServer.de;DATABASE=test;UID=Test;PWD=Test; OPTION=3"
conn.Open
conn.Execute "DROP TABLE IF EXISTS Alex"
conn.Execute "CREATE TABLE Alex(id int not null primary key, name varchar(20)," & "txt text, dt date, tm time)"
Set rs = New ADODB.Recordset
rs.CursorLocation = adUseClient
rs.LockType = adLockBatchOptimistic
rs.CursorType = adOpenKeyset
rs.Open "select * from Alex", conn
For r = 1 To 10000
rs.AddNew
For c = 1 To 5
rs(c - 1) = w.Cells(r, c)
Next c
Next r
rs.UpdateBatch 'dass dauert...
rs.Close
conn.Close
End Sub
Mit diesem Code funktioniert alles aber der UbdateBatch Befehl braucht
bald 10 Minuten!
Ich habe eine DSL Verbindung zum Server mit 192 Kbit/s -
während des UbdateBatch Befehls werden nicht mal 2kB/s übertragen.
Auslesen geht prima mit 220kB/s also kann es wohl nicht an der
Verbindung liegen.
Hat jemand eine Ahnung, Was da schief läuft?
Bin für jeden Vorschlag dankbar.