ich muss eine Excel Tabelle(6 Spalten * 8500 Zeilen) an SQL Schicken.
Die Verbindung stelle ich mit ADODB her.+
Ich kann mich bereits mit den SQL Server Verbinden und dort eine neue Tabelle anlegen. In diese Tabelle soll nun die Daten aus den Excel Sehht geschrieben werden.
Leider Bekomme ich folgenden Fehler:
"In der INSERT-Anweisung sind weniger Spalten angegeben als Wertein der VALUES-Klausel"
Anscheinend funktioniert es nicht das er die Werte aus den Zellen in die INSERT übernimmt.
Hat jemand vielleicht eine IDEE oder elegantere Variante für mich?
Hier mein Code:
Sub senden_an_SQL()
'variablen deklarieren
Dim connection As New ADODB.connection
Dim rs As New ADODB.recordset
Dim ConnectionString As String
Dim SQLAbfrage As String
Dim DMC As String
Dim zeile As Long
zeile = 2
'Connection String herichten
ConnectionString = "Provider=SQLOLEDB.1;Password=asdf;Persist Security Info=True;User ID=sa; _
Initial Catalog=XMLDATA;Data Source=C517L0039801437"
'Verbindung zu Datenbank herstellen
connection.Open ConnectionString
Sheets("SQL").Select
DMC = "111"
''Tabelle mit DMC erstellen und Spalten definieren
SQLAbfrage = "CREATE TABLE id_" & DMC & "(time int, DV int, U int, I int, PG int, SG int)"
rs.Open SQLAbfrage, connection
''use tabelle
'SQLAbfrage = "USE id_" & DMC & ""
'rs.Open SQLAbfrage, connection
'Werte eintragen
'1.Recordset mit Daten füttern
Do While Cells(zeile, 1) ""
SQLAbfrage = "INSERT INTO id_" & DMC & "(time , DV, U, I, PG, SG) VALUES( " & _
Cells(zeile, 1).Value & ", " & _
Cells(zeile, 2).Value & ", " & _
Cells(zeile, 3).Value & ", " & _
Cells(zeile, 4).Value & ", " & _
Cells(zeile, 5).Value & ", " & _
Cells(zeile, 6).Value & ")"
rs.Open SQLAbfrage, connection
zeile = zeile + 1
Loop
'aufräumen
connection.Close
Set connection = Nothing
Set rs = Nothing
End Sub