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
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)
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.)
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!
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.