Access VBA Abfrage erstellen für Filterung eines Berichtes
Karl Donaubauer
Gesendet: 18.10.21 13:51
Betreff: RE: Access VBA Abfrage erstellen für Filterung eines Berichtes



Elite Veteran

Beiträge: 791
500100100252525
Ort: Wien
Hallo!

lennard1001
Ich habe in meiner Datenbank das angehängte Formular, mit dem die Datensätze (Prüfungsfragen) nach bis zu 3 verschiedenen Kriterien gefiltert werden können.
Bislang habe ich 8 Verschiedene Abfragen + Berichte und eine 8-Fache If-Verkettung fragt anhand der ausgefüllten Kriterienfelder ab, welcher Bericht benötigt wird. Sollte ich jedoch noch weitere Kriterien hinzufügen, würde die Anzahl an kombinationsmöglichkeiten zu groß für diesen Lösungsweg werden.

Nun Versuche ich nur einen Bericht zu erstellen, der auf eine Abfrage zugreift, die dynamisch angelegt wird, je nachdem welche Kriterien angewählt werden.
Ich dachte ich könnte je Filterkriterium einen Textbaustein erstellen, die ich im VBA zusammensetzte.
Hier komme ich jedoch nicht weiter, da der "FROM-Teil" im SQL in inneren Klammern verkettet wird, die sich nicht einfach so zusammensetzen lassen...
Ich habe einen Screenshot der maximalen Abfrage beigefügt.

Hat jemand eine Idee ob und wie ich das gelöst bekomme?

Eine einfache Lösung wäre, die FROM-Klausel nicht dynamisch zusammenzusetzen sondern fix einzustellen. Das geht, indem du die INNER JOINs auf OUTER JOINs änderst. D.h. du klickst im Abfrageeditor auf alle Verknüpfungslinien, die von tblFrage weggehen und änderst ihren Typ auf den der "alle Datensätze aus tblFrage anzeigt und nur die, bei denen blabla". So dass im Ergebnis die Verknüpfungspfeile alle von tblFrage wegzeigen mit Pfeil auf die anderen Tabellen. Das musst du durchziehen bis auf die 2 Ebene zu lstThemengebiet und tblSchlagwort.

Damit hast du dann erst mal alle Daten im Abfrageergebnis und musst nur die WHERE-Klausel dynamisch basteln.

Falls ich das Problem falsch verstehe oder etwas unklar ist, dann poste den VBA-Code und/oder den SQL-Text, bei dem du nicht weiterkommst.

-----
Servus
Karl
*********
Access News: https://youtu.be/XMOHBSudo-U
Access-Entwickler-Konferenz: https://www.donkarl.com/?aek
Top of the page Bottom of the page