von Passant » So, 31.05.2020 19:53
Hallo Robert,
damit ich bei dem Formular nicht von vorne anfangen mußte, habe ich jetzt einfach mal das Formular, bei dem du mir geholfen hast, kopiert und dafür eine neue Filter-Tabelle erstellt, die jetzt neben der Kundennummer, den Nachnamen, die Postleitzahl, den Ort, das Bundesland und die Tournummer enthält.
Die Herausforderung für mich ist jetzt gar nicht die Makros zu erstellen, die Makros von dir werden hier ja genauso funktionieren, sondern die entsprechende Abfrage, bei der ich entweder nach einzelnen dieser Felder suchen kann, oder Kombinationen mehrerer Felder, also z.B. nach allen Kunden mit der Tournummer 1, oder alle Kunden in Berlin, oder aber auch z.B. nach allen Kunden mit dem Namen Müller in München.
Würde mich sehr freuen, wenn du mir bei der Abfrage helfen könntest.
EDIT2:
Komme leider nicht weiter: Mein Ziel ist es ja, daß von den 6 Suchfeldern im Formular, nur die berücksichtigt werden, die einen Inhalt haben und mit "UND" verknüpft werden. Hat z.B. nur ein Feld einen Inhalt, sollen alle anderen Felder ignoriert werden. Je mehr Felder ich eingebe, um so mehr sollen die möglichen Treffer eingeschränkt werden.
Ich glaube, daß ich dazu zuerst prüfen muß, ob ein Feld einen Inhalt hat. Im Handbuch habe ich dazu den SQL-Befehl EXISTS gefunden. Wenn ich in der Abfrage diesen Code eingebe:
Code: Alles auswählen
SELECT "Kd-Nr", "Firma", "Postleitzahl", "Ort", "Tour", "Bundesland" FROM "tbl_Kunden" WHERE EXISTS (SELECT "tempKd-Nr" FROM "tbl_KdFilter2" WHERE "tbl_KdFilter2"."tempKd-Nr" = "tbl_Kunden"."Kd-Nr")
dann macht er genau das was ich möchte: wenn eine Kundennummer im Suchfeld des Formulars eingegeben wurde, gibt er die entsprechenden Daten des Kunden aus. Wenn das Feld keinen Inhalt hat, dann wird auch nichts ausgegeben.
Wenn ich das jetzt aber z.B. mit dem Feld für den Firmennamen erweitere:
Code: Alles auswählen
AND EXISTS ( SELECT "tempFirma" FROM "tbl_KdFilter2" WHERE "tbl_KdFilter2"."tempFirma" = "tbl_Kunden"."Firma" )
dann verknüpft er die beiden Felder zwar mit UND, so wie ich es möchte, wenn aber nur eines der beiden Felder einen Inhalt hat, wird es nicht ignoriert, sondern es gibt gar keine Ergebnisse. EXIST scheint also nicht so zu funktionieren, wie ich es erhofft habe. Alle Versuche mit NULL, NOT NULL sind leider auch gescheitert. Ich bräuchte eine Bedingung, wie: Wenn das Feld leer ist, dann ignoriere es. Gibt es das in SQL nicht?
Hallo Robert,
damit ich bei dem Formular nicht von vorne anfangen mußte, habe ich jetzt einfach mal das Formular, bei dem du mir geholfen hast, kopiert und dafür eine neue Filter-Tabelle erstellt, die jetzt neben der Kundennummer, den Nachnamen, die Postleitzahl, den Ort, das Bundesland und die Tournummer enthält.
Die Herausforderung für mich ist jetzt gar nicht die Makros zu erstellen, die Makros von dir werden hier ja genauso funktionieren, sondern die entsprechende Abfrage, bei der ich entweder nach einzelnen dieser Felder suchen kann, oder Kombinationen mehrerer Felder, also z.B. nach allen Kunden mit der Tournummer 1, oder alle Kunden in Berlin, oder aber auch z.B. nach allen Kunden mit dem Namen Müller in München.
Würde mich sehr freuen, wenn du mir bei der Abfrage helfen könntest.
[b]EDIT2:[/b]
Komme leider nicht weiter: Mein Ziel ist es ja, daß von den 6 Suchfeldern im Formular, nur die berücksichtigt werden, die einen Inhalt haben und mit "UND" verknüpft werden. Hat z.B. nur ein Feld einen Inhalt, sollen alle anderen Felder ignoriert werden. Je mehr Felder ich eingebe, um so mehr sollen die möglichen Treffer eingeschränkt werden.
Ich glaube, daß ich dazu zuerst prüfen muß, ob ein Feld einen Inhalt hat. Im Handbuch habe ich dazu den SQL-Befehl EXISTS gefunden. Wenn ich in der Abfrage diesen Code eingebe:
[code]SELECT "Kd-Nr", "Firma", "Postleitzahl", "Ort", "Tour", "Bundesland" FROM "tbl_Kunden" WHERE EXISTS (SELECT "tempKd-Nr" FROM "tbl_KdFilter2" WHERE "tbl_KdFilter2"."tempKd-Nr" = "tbl_Kunden"."Kd-Nr")[/code]
dann macht er genau das was ich möchte: wenn eine Kundennummer im Suchfeld des Formulars eingegeben wurde, gibt er die entsprechenden Daten des Kunden aus. Wenn das Feld keinen Inhalt hat, dann wird auch nichts ausgegeben.
Wenn ich das jetzt aber z.B. mit dem Feld für den Firmennamen erweitere:
[code]AND EXISTS ( SELECT "tempFirma" FROM "tbl_KdFilter2" WHERE "tbl_KdFilter2"."tempFirma" = "tbl_Kunden"."Firma" )[/code]
dann verknüpft er die beiden Felder zwar mit UND, so wie ich es möchte, wenn aber nur eines der beiden Felder einen Inhalt hat, wird es nicht ignoriert, sondern es gibt gar keine Ergebnisse. EXIST scheint also nicht so zu funktionieren, wie ich es erhofft habe. Alle Versuche mit NULL, NOT NULL sind leider auch gescheitert. Ich bräuchte eine Bedingung, wie: Wenn das Feld leer ist, dann ignoriere es. Gibt es das in SQL nicht?