Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema Userform
BildScreenshot zu Userform Userform-Seite mit Beispielarbeitsmappe aufrufen

SQL-Statement/-Query erstellen/zusammensetzen

Betrifft: SQL-Statement/-Query erstellen/zusammensetzen von: Sabine
Geschrieben am: 15.08.2004 18:26:30

Guten Abend,

mir konnte hier schon so manches Mal weitergeholen werden.

Auch heute habe ich wieder etwas "Kniffliges", wo ich nicht weiterkomme.

Ich habe eine Tabelle mit Geschäftskundendaten. Die Daten werden aus einer SQL-Datenbank im Firmennetz per SQL-Statement geholt und in die Tabelle geschrieben. Um Kundendaten zu finden verwende ich ein Userform.

Solange ich nur ein einziges Suchkriterium (z.B. Name des Geschäftsführers) habe, habe ich auch keine Probleme:
"SELECT * FROM tblGK WHERE (GK_GeschfName LIKE '%" & txtSuchdatenGeschfName & "%')"

Wie schaffe ich es jedoch bei mehreren Suchkriterien einen einzigen SQL-String zusammenzusetzen, ohne dass dabei überflüssige DB-Felder mit abgefragt werden? Die Suchkriterien können Variabel eingegeben werden. D.h. ich habe ungefähr 20 verschiedene Suchkriterien/-felder.

So soll es nicht sein:
"SELECT * FROM tblGK WHERE (GK_GeschfName LIKE '%" & txtSuchdatenGeschfName & "%') AND (GK_Strasse LIKE '%" & txtSuchdatenStrasse & "%') AND (GK_Ort LIKE '%" & txtSuchdatenOrt & "%') <<...alle restl. Suchfelder...>>"

Hat jemand eine Idee/Ansatz/Beispiel?

Eure Sabine

  


Betrifft: AW: SQL-Statement/-Query erstellen/zusammensetzen von: andre
Geschrieben am: 15.08.2004 18:58:40

Hallo Sabine,
da musst Du mit Ifs rangehen, im Prinzip so
sqlstring="select * from meineDB where " blabla1
if blabla2<>"" then sqlstring=sqlstring & " AND " & blabla2
if blabla3<>"" then sqlstring=sqlstring & " AND " & blabla3
usw.


  


Betrifft: AW: SQL-Statement/-Query erstellen/zusammensetzen von: Sabine
Geschrieben am: 15.08.2004 19:13:52

Hallo andre,

oh man, das Naheliegendste wollte mir nicht einfallen. Ich hab immer zu kompliziert gedacht. Ich hatte nicht drangedacht, den String einfach mit And und Kriterium zu erweitern, sondern gleich einen fertigen SQL-Query erstellen zu müssen (peinlich, peinlich).

Danke für Deine Hilfe!

Sabine