Access-o-Mania

Access-Forum (Deutsch/German) => Tabelle/Abfrage => Thema gestartet von: mstadler71 am Februar 03, 2022, 09:27:07

Titel: "Wenn" -Abfragekriterium mit Operatoren
Beitrag von: mstadler71 am Februar 03, 2022, 09:27:07
Hallo allerseits
bis jetzt habe ich mich ja für einen "eher versierten" Access-User gehalten; nun scheitere ich an einer -wahrscheinlich- leichten Aufgabe.  ::)

Ich möchte bei einer Abfrage (Entwurfsansicht, Kriterienfeld) ein "Wenn"-Kriterium mit Operatoren vorgeben, das nimmt Access jedoch nicht.

-Ausgangspunkt: Entwurfsansicht Abfrage
-Spalte "Geschäftsjahr"
-Einträge Kriterienzeile die funktionieren:
   Wenn(Bedingung=WAHR; 2018) ;d.h. alle Datensätze aus Geschäftsjahr 2018
   >=2018 ;d.h. alle Datensätze ab Geschäftsjahr 2018

Eintrag Kriterienzeile der -fälschlicherweise- keine Werte liefert: Wenn(Bedingung=WAHR; >=2018) ;d.h. SOLL alle Datensätze ab Geschäftsjahr 2018

ich benötige aber die Wennfunktion, da es ja auch einen False-Wert gibt
gewünscht ist: wenn(Bedingung =Wahr; 2018; >=2018)

Sobald ein Operator im Wenn-Kriterium ins Spiel kommt ist Sense.
Könnte Ihr mir dabei helfen? danke
Titel: Re: "Wenn" -Abfragekriterium mit Operatoren
Beitrag von: PhilS am Februar 03, 2022, 09:49:06
Du kannst den Operator für ein Kriterium nicht durch einen Ausdruck ermitteln lassen.

Als Lösung für dein konkretes Problem, kannst du mehrere Kriterien anstelle des einen verwenden und so verknüpfen, dass die einfache Auswertung der Bedingung das gewünschte Ergebnis liefert.
PseudoCode:


Geschäftsjahr >= 2018
UND ( Geschäftsjahr <= 2018
        ODER Bedingung=Falsch)
Titel: Re: "Wenn" -Abfragekriterium mit Operatoren
Beitrag von: ebs17 am Februar 03, 2022, 10:58:20
Wo kommt die Bedingung her?

Eigentlich hast Du eine Abfrage, die für zwei Fälle unterschiedlich gefiltert wird. Somit würde ich den Filter auch fallweise gezielt (und für sich simpel) übergeben:
If Bedingung Then
   sFilter = "DatumVorgang BETWEEN #1/1/2018# AND #12/31/2018#"
Else
   sFilter = "DatumVorgang >= #1/1/2018#
End If
' wende Filter an
(Bei mir sind Jahre Zeiträume gekennzeichnet durch Grenzen.)
Titel: Re: "Wenn" -Abfragekriterium mit Operatoren
Beitrag von: mstadler71 am Februar 03, 2022, 11:26:39
WOW; danke für die schnelle und kompetenten Antworten!

@ PhilS: hat funktioniert
@ebs17: ich hätte es in vba leicht lösen können, wollte es aber in diesem Fall über die Entwurfsansicht der Abfrage gelöst haben damit jemand ohne vba-Kenntnisse hinter mir ggfs. nacharbeiten kann.

Danke nochmals!
Titel: Re: "Wenn" -Abfragekriterium mit Operatoren
Beitrag von: ebs17 am Februar 03, 2022, 13:39:04
Zitatnacharbeiten
... (= Umprogrammieren) wird in jedem Fall notwendig sein, wenn sich die Frage nach einem anderen Jahr als 2018 stellt.

Mit Parametern / einem variablen Filter wird eine Umprogrammierung kaum nötig sein.
Nebenbei: Entwurfsansicht, ohne VBA-Kenntnisse - bei solchen Ausgangsvoraussetzungen sollte man seine Anforderungen nur niedrig lassen oder die Finger ganz davon nehmen. Oder aber der Entwickler bringt die Anwendung so hin, dass ein User alle seine Bedürfnisse erfüllt bekommt und gar nicht auf den Gedanken eines selbsteingreifenden Programmierens kommt.
Der "Schutz" der anderen ist nicht selten ein Selbstschutz vor etwas mehr Aufwand.