Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!

Mobiles Hauptmenü

Abfragekiterium bei Optionsgruppe

Begonnen von Bernie110, Oktober 02, 2014, 17:01:07

⏪ vorheriges - nächstes ⏩

Bernie110

Hallo Zusammen,

ich würde gerne wissen wollen wie das Abfragekriterium bei einer Optionsgruppe lauten muss.

Ich möchte über ein Formular Daten Filtern.
TOUR_ID = ungebundenes Feld
Rahmen143 = Optionsgruppe
    1 = Geplant
    2 = ungeplant
    3 = Beide

Das Feld in der Abfrage heisst auch TOUR_ID und ist ein Zahlenfeld.

Dieses Feld hat bereits ein Kriterium welches wie folgt lautet.

Wie "" & [Formulare]![DISPOPLAN]![TOUR_ID] & "*"

Nun möchte ich aber auch eine Filterung der Daten wenn ich eine Auswahl in der Optionsguppe treffe.

Bei
Optionswert 1 sollen mir alle Daten angezeigt werden
die
[TOUR_ID] > 0 sind

Optionswert 2sollen mir alle Daten angezeigt werden
die
[TOUR_ID] = 0 oder Istnull sind

Optionswert 2 sollen mir alle Daten angezeigt werden
die in der Abfrage enthalten sind
und somit dieses Kriterium
Wie "" & [Formulare]![DISPOPLAN]![TOUR_ID] & "*" ausgeführt werden

Die Abfrage hat noch mehre Kriterien
Hier der SQL String der gesamten Abfrage :
SELECT A_qyr_TA_MAIN_TABELLE.TA_ID, A_qyr_TA_MAIN_TABELLE.DT_NR, A_qyr_TA_MAIN_TABELLE.LA_ID, A_qyr_TA_MAIN_TABELLE.STATUS_TA, A_Qyr_LA_SUMMEN.LA_STATUS, A_qyr_TA_MAIN_TABELLE.DISPO_ART, A_qyr_TA_MAIN_TABELLE.Ladedatum, A_qyr_TA_MAIN_TABELLE.Ladezeit, A_qyr_TA_MAIN_TABELLE.Entladedatum, A_qyr_TA_MAIN_TABELLE.Entladezeit, A_qyr_TA_MAIN_TABELLE.ABS_ORT_LANG, A_qyr_TA_MAIN_TABELLE.EMPF_ORT_LANG, A_qyr_TA_MAIN_TABELLE.TOUR_ID, Sum(A_Qyr_LA_SUMMEN.CLL) AS CLL, Sum(A_Qyr_LA_SUMMEN.LM) AS LM, Sum(A_Qyr_LA_SUMMEN.QBM) AS QBM, Sum(A_Qyr_LA_SUMMEN.KG) AS KG, Sum(A_Qyr_LA_SUMMEN.KA) AS KA, Sum(A_Qyr_LA_SUMMEN.RO) AS RO, Sum(A_Qyr_LA_SUMMEN.PA) AS PA, A_qyr_TA_MAIN_TABELLE.ABS_Land, A_qyr_TA_MAIN_TABELLE.ABS_Plz, A_qyr_TA_MAIN_TABELLE.ABS_Ort, A_qyr_TA_MAIN_TABELLE.EMPF_Land, A_qyr_TA_MAIN_TABELLE.EMPF_Plz, A_qyr_TA_MAIN_TABELLE.EMPF_Ort, A_qyr_TA_MAIN_TABELLE.DISPO_Markierung, A_qyr_TA_MAIN_TABELLE.NL, A_qyr_TA_MAIN_TABELLE.SNDG_ART, A_Qyr_LA_SUMMEN.AuftragsNr, A_Qyr_LA_SUMMEN.LS_NR, A_qyr_TA_MAIN_TABELLE.LTW_ID, A_qyr_TA_MAIN_TABELLE.LTW, A_qyr_TA_MAIN_TABELLE.[NOT]
FROM A_qyr_TA_MAIN_TABELLE LEFT JOIN A_Qyr_LA_SUMMEN ON A_qyr_TA_MAIN_TABELLE.LA_ID = A_Qyr_LA_SUMMEN.LA_ID
GROUP BY A_qyr_TA_MAIN_TABELLE.TA_ID, A_qyr_TA_MAIN_TABELLE.DT_NR, A_qyr_TA_MAIN_TABELLE.LA_ID, A_qyr_TA_MAIN_TABELLE.STATUS_TA, A_Qyr_LA_SUMMEN.LA_STATUS, A_qyr_TA_MAIN_TABELLE.DISPO_ART, A_qyr_TA_MAIN_TABELLE.Ladedatum, A_qyr_TA_MAIN_TABELLE.Ladezeit, A_qyr_TA_MAIN_TABELLE.Entladedatum, A_qyr_TA_MAIN_TABELLE.Entladezeit, A_qyr_TA_MAIN_TABELLE.ABS_ORT_LANG, A_qyr_TA_MAIN_TABELLE.EMPF_ORT_LANG, A_qyr_TA_MAIN_TABELLE.TOUR_ID, A_qyr_TA_MAIN_TABELLE.ABS_Land, A_qyr_TA_MAIN_TABELLE.ABS_Plz, A_qyr_TA_MAIN_TABELLE.ABS_Ort, A_qyr_TA_MAIN_TABELLE.EMPF_Land, A_qyr_TA_MAIN_TABELLE.EMPF_Plz, A_qyr_TA_MAIN_TABELLE.EMPF_Ort, A_qyr_TA_MAIN_TABELLE.DISPO_Markierung, A_qyr_TA_MAIN_TABELLE.NL, A_qyr_TA_MAIN_TABELLE.SNDG_ART, A_Qyr_LA_SUMMEN.AuftragsNr, A_Qyr_LA_SUMMEN.LS_NR, A_qyr_TA_MAIN_TABELLE.LTW_ID, A_qyr_TA_MAIN_TABELLE.LTW, A_qyr_TA_MAIN_TABELLE.[NOT]
HAVING (((A_qyr_TA_MAIN_TABELLE.TA_ID) Like "*" & [Formulare]![DISPOPLAN]![TA_ID] & "*") AND ((A_qyr_TA_MAIN_TABELLE.STATUS_TA) Like "*" & [Formulare]![DISPOPLAN]![STATUS_TA] & "*") AND ((A_Qyr_LA_SUMMEN.LA_STATUS) Like "*" & [Formulare]![DISPOPLAN]![LA_STATUS] & "*") AND ((A_qyr_TA_MAIN_TABELLE.Ladedatum) Like [Formulare]![DISPOPLAN]![Ladedatum]) AND ((A_qyr_TA_MAIN_TABELLE.TOUR_ID) Like "" & [Formulare]![DISPOPLAN]![TOUR_ID] & "*") AND ((A_qyr_TA_MAIN_TABELLE.ABS_Land) Like "" & [Formulare]![DISPOPLAN]![ABS_Land] & "*") AND ((A_qyr_TA_MAIN_TABELLE.ABS_Plz) Like "" & [Formulare]![DISPOPLAN]![ABS_Plz] & "*") AND ((A_qyr_TA_MAIN_TABELLE.ABS_Ort) Like "" & [Formulare]![DISPOPLAN]![ABS_Ort] & "*") AND ((A_qyr_TA_MAIN_TABELLE.EMPF_Land) Like "" & [Formulare]![DISPOPLAN]![EMPF_Land] & "*") AND ((A_qyr_TA_MAIN_TABELLE.EMPF_Plz) Like "" & [Formulare]![DISPOPLAN]![EMPF_Plz] & "*") AND ((A_qyr_TA_MAIN_TABELLE.EMPF_Ort) Like "" & [Formulare]![DISPOPLAN]![EMPF_Ort] & "*") AND ((A_qyr_TA_MAIN_TABELLE.NL) Like "" & [Formulare]![DISPOPLAN]![NL] & "*") AND ((A_Qyr_LA_SUMMEN.AuftragsNr) Like "" & [Formulare]![DISPOPLAN]![Auftragsnummer] & "*") AND ((A_qyr_TA_MAIN_TABELLE.LTW) Like "" & [Formulare]![DISPOPLAN]![LTW] & "*") AND ((A_qyr_TA_MAIN_TABELLE.[NOT]) Like "" & [Formulare]![DISPOPLAN]![NOT] & "*"));




MaggieMay

#1
Hallo,

1. gib der Optionsgruppe einen gescheiten Namen, bspw. "optGrpPlanung"

2. ersetze diesen Teil der Abfrage:
((A_qyr_TA_MAIN_TABELLE.TOUR_ID) Like "" & [Formulare]![DISPOPLAN]![TOUR_ID] & "*") AND

durch diesen:
IIF(Forms!DISPOPLAN!optGrpPlanung = 1, A_qyr_TA_MAIN_TABELLE.Tour_ID > 0, IIF(Forms!DISPOPLAN!optGrpPlanung = 2, NZ(A_qyr_TA_MAIN_TABELLE.Tour_ID,0) = 0, ((A_qyr_TA_MAIN_TABELLE.TOUR_ID) Like "" & [Forms]![DISPOPLAN]![TOUR_ID] & "*"))) AND

BTW:
SQL spricht englisch, also sollte dort auch Forms anstelle von Formulare zu sehen sein

Des weiteren, wozu dir Gruppierung über alle Felder? Könnte darauf nicht verzichtet werden?
So oder so ist die HAVING-Klausel eigentlich eine WHERE-Bedingung, welche dann vor GROUP BY zu stehen hätte.
Freundliche Grüße
MaggieMay

Bernie110

Hallo,

perfekt, funktioniert wunderbar
Vielen Dank !

Lg Bernie