ADODB.Recordset SQL Query fehlerhaft
29.03.2023 16:03:00
Mike
Hallo zusammen,
ich importiere mit nachfolgenden Code Daten aus einer anderen Excel Mappe.
Der Datenimport aller Spalten funktioniert auch wunderbar. Nun möchte ich aber die Quelldaten direkt filtern und nur die Datensätze importieren bei denen in Spalte 1 ein "*KW*" oder besser Buchstaben enthalten sind. Alle Zeilen in denen sich Zahlen in Spalte 1 befinden sollen also gar nicht erst ins Zielblatt übernommen werden.
Nun habe ich mich vorher nie mit SQL Abfragen beschäftigt und kann auch nicht mal sagen ob das überhaupt so wie ich das vorhabe machbar bzw. sinnvoll ist.
Sub LinienBauteileImport()
Dim Connection As New ADODB.Connection
Dim Query As String
Dim rs As New ADODB.Recordset
ThisWorkbook.Sheets("Btl_Import").UsedRange.Clear
Connection.Open "Provider=MSDASQL.1;DSN=Excel Files;DBQ=D:\W2023.xls;HDR=No';"
'Query = "SELECT * From [Btl$]"
Query = "SELECT * From [Btl$] WHERE FIELD1 LIKE '%KW%'"
rs.Open Query, Connection
ThisWorkbook.Sheets("Btl_Import").Range("A1").CopyFromRecordset rs
Connection.Close
End Sub
Der Datenabruf aller Spalten funktioniert hiermit soweit.
Query = "SELECT * From [Btl$]"
In allen Beispielen die ich gefunden habe werden die Spalten mit Namen angesprochen. Sind keine Namen vorhanden erfolgt offensichtlich eine Standardbezeichnung mit FIELD1, FIELD2 etc. Demnach sollte doch nachfolgender Code passen aber ich erhalte eine Meldung das 1 Parameter erwartet aber zu wenig übergeben wurden.
Was habe ich wo vergessen?
Query = "SELECT * From [Btl$] WHERE FIELD1 LIKE '%KW%'"
und wie wäre die Syntax wenn ich generell nach Buchstaben in Spalte 1 filtern möchte?
Danke und Gruß
Mike