bei folgendem Code in excel2003 tritt o.g. Fehler auf:
Sub ConnectExcel()
Dim cnn As New Connection, rs As New Recordset
Dim strSql As String, str1 As String
'On Error Resume Next
cnn.Open „Provider=Microsoft.Jet.OLEDB.4.0;“ & „Extended Properties=Excel 8.0;“ & „Data Source=“ & ThisWorkbook.FullName
str1 = Sheet3.Range(„B1“) 'HIER TRITT DER LZF AUF!!!
strSql = „select [Artikelname],[Prinz EAN-Code],[Artikelbezeichnung],[Abmessung und Farbe],[€ / St. Netto ab 01.02.2013] from [Tab1$] where [Deb]=“ & str1
rs.Open strSql, cnn, adOpenStatic
Sheet3.Range(„a4:e1000“).ClearContents
Sheet3.Range(„A4“).CopyFromRecordset rs
rs.Close
cnn.Close
Set rs = Nothing
Set cnn = Nothing
End Sub
Dein Hinweis auf den Codenamen „Sheet3“ war goldrichtig. Der Code ist nämlich mit einer englischen Excel-Version geschrieben worden. Die Datei, in der ich den Code kopiert habe, ist jedoch eine deutsche Excel-Version.
Allerdings läuft der Code jetzt auf den nächsten Fehler. Die Meldung lautet:
LZF ‚-2147217900 (80040e14)‘: Syntaxfehler (fehlender Operator) in Abfrageausdruck ‚[Deb]=‘
Interessanterweise tritt der Fehler in der darauffolgenden Zeile auf. Hier noch mal der Code mit dem Hinweis:
Sub ConnectExcel()
Dim cnn As New Connection, rs As New Recordset
Dim strSql As String, str1 As String
'On Error Resume Next
cnn.Open „Provider=Microsoft.Jet.OLEDB.4.0;“ & „Extended Properties=Excel 8.0;“ & „Data Source=“ & ThisWorkbook.FullName
str1 = Tabelle1.Range(„B1“)
strSql = „select [Artikelname],[Prinz EAN-Code],[Artikelbezeichnung],[Abmessung und Farbe],[€ / St. Netto ab 01-02-2013] from [Tab1$] where [Deb]=“ & str1
rs.Open strSql, cnn, adOpenStatic HIER TRITT DER LZF AUF !!!
Tabelle1.Range(„a4:e1000“).ClearContents
Tabelle1.Range(„A4“).CopyFromRecordset rs
rs.Close
cnn.Close
Set rs = Nothing
Set cnn = Nothing
End Sub
Allerdings läuft der Code jetzt auf den nächsten Fehler. Die
Meldung lautet:
LZF ‚-2147217900 (80040e14)‘: Syntaxfehler (fehlender
Operator) in Abfrageausdruck ‚[Deb]=‘
klingt für mich danach, dass da der Vergleichsausdruck fehlt.
Wenn in B1 nichts steht, endet der Query-String mit dem ‚=‘. Wenn denn ein String in str1 steht (was ich mal erwarten würde), dann versuch es mit:
Hallo noch mal,
ich hab den Fehler gefunden: In der Quelltabelle, aus der die Daten gezogen werden, begann in der zweiten Spalte und nicht in der ersten.
Danke erst einmal bis hierher. Ich wünsche Dir einen schönen Tag.
Thomas