Access-o-Mania

Access-Forum (Deutsch/German) => Tabelle/Abfrage => Thema gestartet von: LordWuffel am Januar 01, 2024, 12:32:00

Titel: Abfrage mit 2 Komboboxen als quelle für Filter
Beitrag von: LordWuffel am Januar 01, 2024, 12:32:00
Moin Forum,

ich habe mich nach Jahren mal wieder mit ACCESS(ver2021) beschäftigt und habe mich bei einem Formular zum filtern von Datensätzen festgefahren.

Was gibt es?
2 Tabellen die jeweils in einer Kobobox angezeigt werden
 - Orte;   Ausgabe: [Formulare]![copy_qry_Ort_MA]![kobx_Filter_Ma]
 - Ansprechpartner; [Formulare]![copy_qry_Ort_MA]![kobx_Filter_Ort]

1 Abfrage, die die Projekte filtern (soll)

Die Abfrage ist in ein Endlosformular eingefügt

bis hier funktioniert es schon mal  erst den Ansprechpartner, dann den Ort  und schließlich die Projekte anzuzeigen. wenn ich die Abfrage von hand mit Filterkriterien fülle gehts auch

Ich möchte aber noch die Orte nach den Mitarbeiten filtern und nicht immer die Gesamtliste sehen (auf dem Formular)

und hier kommt das Problem:
 mit
wie "*"&[Formulare]![copy_qry_Ort_MA]![kobx_Filter_Ma]
bekomme ich in der Ergebnisliste "alle" Ergebnisse, wenn das Feld leer ist ABER ich filter nach dem Schlüssel (AUTOWERT) der Mitarbeiter somit bekomme ich bei der Auswahl einer Person (z.b. ID_Nr. 4) auch die 14, die 24 und so weiter (ist ja klar)

könnt ihr mir bitte helfen
der Sinn müsste (bei EXCEL) so aussehen und dasmit bin ich an ACCESS herangegangen:
wenn ( [Feld] ist leer
    dann "*"
    sonst [feld])

ich bekomme es einfach nicht hin...

DAnke für eure Hilfe
Titel: Re: Abfrage mit 2 Komboboxen als quelle für Filter
Beitrag von: Beaker s.a. am Januar 01, 2024, 17:51:35
Zitatwie "*"&[Formulare]![copy_qry_Ort_MA]![kobx_Filter_Ma]
bekomme ich in der Ergebnisliste "alle" Ergebnisse, wenn das Feld leer ist ABER ich filter nach dem Schlüssel (AUTOWERT) der Mitarbeiter somit bekomme ich bei der Auswahl einer Person (z.b. ID_Nr. 4) auch die 14, die 24 und so weiter (ist ja klar)
Wenn du mit einem Schlüssel arbeitest gibt es kein "Wie" (LIKE) nur ein "=".
Titel: Re: Abfrage mit 2 Komboboxen als quelle für Filter
Beitrag von: LordWuffel am Januar 01, 2024, 20:55:42
hi, danke für den Tip, aber ich verstehe den wohl falsch. in der Zeile "Kriterien"

"*" & [Formulare]![copy_qry_Ort_MA]![kobx_Filter Ma]

ohne wie einzutragen funktioniert nicht mit einem LEEREN, unausgefüllten Schlüssel

Diese Wenn()-Funktion hab ich als ausgang genommen:
Wenn([Formulare]![copy_qry_Ort_MA]![kobx_Filter Ma]="";"*";"*" & [Formulare]![copy_qry_Ort_MA]![kobx_Filter Ma])
Antwort von ACCESS: [...]zu komplex[...] ergo geht nicht
Wenn([Formulare]![copy_qry_Ort_MA]![kobx_Filter Ma]="";wie "*" & [Formulare]![copy_qry_Ort_MA]![kobx_Filter Ma];"*" & [Formulare]![copy_qry_Ort_MA]![kobx_Filter Ma])
geht auch nicht mit leerer Kombobox - ich gebe einfach nix in die MsgBox ein, die aufpoppt, wenn die Abfrage ausgeführt wird


Titel: Re: Abfrage mit 2 Komboboxen als quelle für Filter
Beitrag von: Beaker s.a. am Januar 02, 2024, 16:42:00
Zeige mal lieber die ganze Abfrage. Aber nicht in der Entwurfsansicht
sondern den SQL-String.
Zitatwenn ( [Feld] ist leer
    dann "*"
    sonst [feld])
Das wäre dann
Wenn([Formulare]![copy_qry_Ort_MA]![kobx_Filter Ma]="";"*";[Formulare]![copy_qry_Ort_MA]![kobx_Filter Ma])Du willst aber mit dem Ergebnis filtern, - dann muss das in der WHERE-Klausel
mit passender Verknüpfung (AND/OR) zu den anderen Filterbedingungen stehen.
Titel: Re: Abfrage mit 2 Komboboxen als quelle für Filter
Beitrag von: LordWuffel am Januar 02, 2024, 19:06:41
Danke für die Hilfe

OK, ich hab das noch nie gemacht, dachte daher, dass der SQL-Code bei anderen nichts sinnvolles anzeigen kann:

SELECT qry_MA_Projekt.Mitarb_ID, Ort_PLZ_Name.ort_name, Ort_Landkreis.landkreis_name, Ort_base.plz, Join_MA_Ort.gültig_ab, Join_MA_Ort.gültig_bis, Ort_base.Ort_ID, Join_MA_Ort.Mitarbeiter_Art, qry_sum_Projekte_in_ort.AnzahlvonProjekt_ID, qry_sum_Projekte_in_ort.Projektjahr, qry_MA_Projekt.Projekt_Nummer, qry_MA_Projekt.Projekt_Name, qry_MA_Projekt.Projekt_ID, Mitarbeiter_Base.MA_Name, qry_MA_Projekt.Projekt_Status, qry_MA_Projekt.Projekt_Stand, qry_MA_Projekt.Projekt_erstellt
FROM ((((Ort_PLZ_Name INNER JOIN (Ort_Landkreis INNER JOIN (Ort_Bundesland INNER JOIN Ort_base ON Ort_Bundesland.Bundesland_ID = Ort_base.Bunesland_ID) ON Ort_Landkreis.Lankreis_ID = Ort_base.Landkreis_ID) ON Ort_PLZ_Name.ORT_NAME_ID = Ort_base.ort_name_ID) INNER JOIN Join_MA_Ort ON Ort_base.Ort_ID = Join_MA_Ort.ort_ID) INNER JOIN qry_MA_Projekt ON (Join_MA_Ort.ma_ID = qry_MA_Projekt.Mitarb_ID) AND (Join_MA_Ort.ort_ID = qry_MA_Projekt.ort_ID)) INNER JOIN qry_sum_Projekte_in_ort ON (qry_MA_Projekt.Projekt_Jahr = qry_sum_Projekte_in_ort.Projektjahr) AND (qry_MA_Projekt.ort_ID = qry_sum_Projekte_in_ort.ort_ID)) INNER JOIN Mitarbeiter_Base ON qry_MA_Projekt.Mitarb_ID = Mitarbeiter_Base.Mitarb_ID
GROUP BY qry_MA_Projekt.Mitarb_ID, Ort_PLZ_Name.ort_name, Ort_Landkreis.landkreis_name, Ort_base.plz, Join_MA_Ort.gültig_ab, Join_MA_Ort.gültig_bis, Ort_base.Ort_ID, Join_MA_Ort.Mitarbeiter_Art, qry_sum_Projekte_in_ort.AnzahlvonProjekt_ID, qry_sum_Projekte_in_ort.Projektjahr, qry_MA_Projekt.Projekt_Nummer, qry_MA_Projekt.Projekt_Name, qry_MA_Projekt.Projekt_ID, Mitarbeiter_Base.MA_Name, qry_MA_Projekt.Projekt_Status, qry_MA_Projekt.Projekt_Stand, qry_MA_Projekt.Projekt_erstellt
HAVING (((qry_MA_Projekt.Mitarb_ID) Like "*" & [Formulare]![copy_qry_Ort_MA]![kobx_Filter Ma]) AND ((Ort_PLZ_Name.ort_name) Like "*" & [Formulare]![copy_qry_Ort_MA]![cbox_Filter_Ort]));

langsam glaub ich, dass ich irgendwo eien anderen Fehler habe, der die DB sabotiert

Grüße ans Forum
Titel: Re: Abfrage mit 2 Komboboxen als quelle für Filter
Beitrag von: Beaker s.a. am Januar 04, 2024, 18:06:40
Suche mal nach "SQL-Formatter" verwende ihn und schicke die
Abfrage dann mal ordentlich formatiert. Wenn du dann vorher
noch Aliase verwenden würdest, schau ich mir die Abfrage noch
mal an. Da scheint noch mehr nicht korrekt zu sein ausser deinem
Filter, der wahrscheinlich gar nicht in die HAVING-Klausel gehört
sondern in eine WHERE-Klausel. Sieht man dann im formatierten String.
Titel: Re: Abfrage mit 2 Komboboxen als quelle für Filter
Beitrag von: LordWuffel am Januar 06, 2024, 20:05:22
ich habe die DB neu aufgebaut. wo auch immer der Fehler gelegen hat die abfrage war nicht alleine schuld

danke das ihr mir helfen wolltet

Lord Wuffel