Wie erstellt man eine leere Bedingung in einer Abfrage in Access?
Hallo,
ich weiß nicht ob das so Sinn macht zu beschreiben, aber ich probiere es mal.
Es geht um einen Bericht und eine Abfrage in Access.
Die Abfrage hat mehrere Gruppierungen und mehrere Bedingung wie z.B. "Datum".
Diese Abfrage funktioniert und liefert das korrekt Ergebnis.
Nun möchte ich den Wert für die Bedingungen aber nicht in der Abfrage haben, sondern ich erstelle einen Filter-String und starte einen Bericht. Der ist mit dieser Abfrage verbunden und bekommt den Filter-String als Parameter.
Das Prinzip funktioniert in anderen Bereichen die ohne Gruppierungen sind.
Wenn ich in der Abfrage die Kriterien lösche, weil die ja später durch den Filter-String kommen, ist Access so nett und löscht diese Spalten womit die Abfrage nicht mehr funktioniert. Wenn ich statt "Bedingung" "Gruppierung" auswähle, erhalten ich viele Zahlen doppelt.
Also ist die Frage wie man leere Bedingungen in einer Abfrage haben kann.
Jemand eine Idee?
Mir fällt da aktuell nur ein, eine temporäre Tabelle mittels VBA zu erzeugen.
Stefan
ich weiß nicht ob das so Sinn macht zu beschreiben, aber ich probiere es mal.
Es geht um einen Bericht und eine Abfrage in Access.
Die Abfrage hat mehrere Gruppierungen und mehrere Bedingung wie z.B. "Datum".
Diese Abfrage funktioniert und liefert das korrekt Ergebnis.
Nun möchte ich den Wert für die Bedingungen aber nicht in der Abfrage haben, sondern ich erstelle einen Filter-String und starte einen Bericht. Der ist mit dieser Abfrage verbunden und bekommt den Filter-String als Parameter.
filterString = "(Datum>=#2023-01-01 00:00:00#) and (Datum<=#2023-02-01 23:59:59#)"
DoCmd.OpenReport "Bericht_Bericht_Rechnungen_" & KombinationsfeldBericht.Column(1), acPreview, , filterString
Das Prinzip funktioniert in anderen Bereichen die ohne Gruppierungen sind.
Wenn ich in der Abfrage die Kriterien lösche, weil die ja später durch den Filter-String kommen, ist Access so nett und löscht diese Spalten womit die Abfrage nicht mehr funktioniert. Wenn ich statt "Bedingung" "Gruppierung" auswähle, erhalten ich viele Zahlen doppelt.
Also ist die Frage wie man leere Bedingungen in einer Abfrage haben kann.
Jemand eine Idee?
Mir fällt da aktuell nur ein, eine temporäre Tabelle mittels VBA zu erzeugen.
Stefan
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 5864824862
Url: https://administrator.de/contentid/5864824862
Ausgedruckt am: 28.11.2024 um 07:11 Uhr
3 Kommentare
Neuester Kommentar
Hallo Stefan,
Gruppierungen so dynamisch einzusetzen dürfte kaum gehen, deswegen gibt es vermutlich auch keinen Parameter dafür bei DoCmd.OpenReport.
Allerdings kann man, soweit ich weiß, statt eines Filters, so wie Du das machst, eine andere Abfrage im Filterstring mitgeben. Da könntest Du also noch eine andere Abfrage erstellen, die die Gruppierung passend hat. Dummerweise kann man aber dann nicht noch zusätzlich einen weiteren Filter angeben.
Aber was gehen sollte: an einer anderen Abfrage für eine andere Gruppierung wirst Du kaum vorbeikommen, aber Du könntest direkt im Report-Objekt RecordSource oder Filter ändern, bevor Du Deinen Report aufrufst.
Gruß, Mad Max
Gruppierungen so dynamisch einzusetzen dürfte kaum gehen, deswegen gibt es vermutlich auch keinen Parameter dafür bei DoCmd.OpenReport.
Allerdings kann man, soweit ich weiß, statt eines Filters, so wie Du das machst, eine andere Abfrage im Filterstring mitgeben. Da könntest Du also noch eine andere Abfrage erstellen, die die Gruppierung passend hat. Dummerweise kann man aber dann nicht noch zusätzlich einen weiteren Filter angeben.
Aber was gehen sollte: an einer anderen Abfrage für eine andere Gruppierung wirst Du kaum vorbeikommen, aber Du könntest direkt im Report-Objekt RecordSource oder Filter ändern, bevor Du Deinen Report aufrufst.
Gruß, Mad Max