Neuigkeiten:

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

Mobiles Hauptmenü

Problem mit filterausdruck

Begonnen von theophilos, September 07, 2017, 12:23:20

⏪ vorheriges - nächstes ⏩

theophilos

Hallo zusammen,
ich habe folgendes Problem: beim Filtern eines Berichtes tritt ein seltsamer Fehler auf. Wenn ich ein Datumsfeld so filtere, das nur Datensätze mit einem Datum aus dem aktuellen Jahr berücksichtigt werden klappt alles reibungslos. Wenn ich anschließend ein weiteres Datumsfeld ebenfalls auf Datumswerte für das aktuelle Jahr filtere, bekomme ich die Fehlermeldung, dass er die Funktion Jahr nicht kennt. Ich hab mir den Ausdruck mal anzeigen lassen, und das seltsame ist, dass beim einem gesetzten Filter die englische Funktion Year und bei dem anderen Ausdruck die deutsche Funktion Jahr im Filterausdruck auftaucht. Er sieht wie folgt aus:
(((Jahr([Berichtsname].[Datumsfeld1])=Year(Date()))))AND(Year([Berichtsname].[Datumsfeld2])=Year(Date()))
Der Funktionsausdruck Jahr kann nicht verarbeitet werden. Warum überhaupt einmal Jahr und sonst nur Year benutzt wird ist mir völlig unklar. Ich erzeuge diesen Ausdruck übrigens durch ein Kontextmenü mit dem Standartfilterangebot 'Jahr' und mit Access 365. Wäre schön wenn jemand einen Tipp hätte.
Danke schon mal

PhilS

Kannst du den Funktionsnamen Jahr manuell durch das englische Year ersetzen?

Ich verstehe nicht ganz, wie du diesen Filterausdruck erzeugst. Auch dass ein "Berichtsname" darin vorkommt erscheint mir eigenartig. Eigentlich sollte das der Name der Tabelle oder Abfrage sein, auf die der Bericht aufbaut.
Neue Videoserie: Windows API in VBA

Klassische CommandBars visuell bearbeiten: Access DevTools CommandBar Editor

MzKlMu

Hallo,
die Eindeutschung von Access ist nicht konsequent und teilweise unsinnig implementiert.
Es ist daher vorteilhaft, die englischen Ausdrücke zu verwenden. Wenn das deutsche Äquivalent erkannt wird, wird automatisch geändert.
Außerdem würde ich mal die Klammerinflation beseitigen und den Berichtsnamen halte ich hier auch für überflüssig.
Versuche es mal so:
Year([Datumsfeld1])=Year(Date()) AND Year([Datumsfeld2])=Year(Date())
Gruß Klaus

theophilos

Hallo,
der Ausdruck wird nicht händisch erzeugt, sondern von Access selbst. Er entsteht dadurch, dass die Benutzer einen angezeigten Bericht mit den im Kontextmenü zur Verfügung stehenden Filterausdrücken filtern können. Dies funktioniert auch tadellos, solange es kein Filter ist, der sich aus einer UND oder ODER Verknüpfung ergibt (Beim Zahlenfilter funktiert auch das). Was halt die Sache völlig undurchsichtig macht, ist dieses Durcheinander der englischen und deutschen Funktionsnamen. Wahrscheinlich werde ich mir die Arbeit machen müssen, den Filterausdruck, den die Benutzer erzeugen mit VBA zu vereinheitlichen.
Blöd und doppelte Arbeit, aber wahrscheinlich nicht anders zu lösen.
Trotzdem Danke für die Hinweise und vielleicht findet ja jem. noch eine Schraube, an der man drehen kann.