moribundus
Goto Top

Excel2007 - Excel VBA Tabelle in MySQL Datenbank schreiben

Hallo Zusammen,

ich versuche vergebens eine komplette Tabelle in eine MySQL Datenbank zu schreiben bekomme aber immer wieder folgenden Fehler:

[MySQL[ODBC 5.3(w) Driver][mysqld-5.6.16]You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '[Tabelle1$]' at Line 1

Hier mein Code:

Private Sub abfrage()

Dim xlsstring As String
Dim xlsrecordsetarray
Dim xlsadodbconnection As New ADODB.Connection
Dim xlsrecordset As New ADODB.Recordset
Dim xlssource As String
Dim xlsconnect As String

Dim sqlstring As String
Dim sqlrecordsetarray
Dim sqladodbconnection As New ADODB.Connection
Dim sqlrecordset As New ADODB.Recordset
Dim sqlsource As String
Dim sqlconnect As String

xlssource = ThisWorkbook.FullName
'xlssource ="C:\mappe1.xls"

'SQL Verbindung für Exceldatei als Quelle
xlsconnect = "PROVIDER=MSDASQL.1;" & _
"DSN=Excel Files;" & _
"DBQ=" & xlssource & ";" & _
"HDR=Yes;"


sqlconnect = "DRIVER={MySQL ODBC 5.3 Driver};" & _
"DATA SOURCE=MySQL ODBC;" & _
"SERVER=localhost;" & _
"PORT=3306;" & _
"UID=root;" & _
"PWD=root;" & _
"DATABASE=test;"

xlsadodbconnection.Open xlsconnect
sqladodbconnection.Open sqlconnect

sqlstring = "INSERT INTO test (ID, text) SELECT id, text FROM [Tabelle1$]"
sqlrecordset.Open sqlstring, sqladodbconnection

xlsrecordset.Close
xlsadodbconnection.Close
sqladodbconnection.Close

End Sub


kann mir jemand sagen was ich falsch mache?

Danke im Vorraus!

Content-Key: 245961

Url: https://administrator.de/contentid/245961

Printed on: April 23, 2024 at 08:04 o'clock

Member: SlainteMhath
Solution SlainteMhath Aug 08, 2014 updated at 12:42:52 (UTC)
Goto Top
Moin,

du führst dein INSERT Query in per ado am MySQL Server aus - und der kennt den Syntax mit (und auch die Tabelle "Tabelle1$" die wohl aus dem Excel file stammt) nicht.

M.E. musst du die Excel_Tabelle Zeile für Zeile einlesen und dann einzeln per INSERT iin die MySQL schreiben. Oder du lässt den Umweg über Access und machst das so: http://dev.mysql.com/doc/refman/5.0/en/loading-tables.html

lg,
Slainte
Member: moribundus
moribundus Aug 08, 2014 at 12:43:17 (UTC)
Goto Top
ja, sieht wohl so aus, schade, danke dir