Access-o-Mania

Access-Forum (Deutsch/German) => Tabelle/Abfrage => Thema gestartet von: Don am September 20, 2022, 16:25:36

Titel: Abfrage wenn mehrere kriterien erfüllt dann datensatz nur einmal anzeigen
Beitrag von: Don am September 20, 2022, 16:25:36
Hallo zusammen, ich habe folgendes Problem. Eine Abfrage filtert Kunden nach mehreren Kriterien und gibt die Kunden dann an ein Endlosformular. Soweit so gut. Aus optischen Gründen hätte ich es nun gerne so, daß ein Kunde, der mehrere Kriterien erfüllt nur einmal in der Liste erscheint. Geht das überhaupt?
danke vorab
Don
Titel: Re: Abfrage wenn mehrere kriterien erfüllt dann datensatz nur einmal anzeigen
Beitrag von: MzKlMu am September 20, 2022, 16:34:55
Hallo,
nein, geht nicht, der Kunde wird so oft angezeigt wie es Kriterien gibt.
Da aber Abfragen ohnehin zur direkten Ansicht nicht vorgesehen sind, spielt das aber keine Rolle.
Im vorliegenden Fall würde man den Kunden in einem Hauptformular anzeigen und die Kriterien dazu in einem Unterformular.
Zeige mal ein Bild des Beziehungsfensters.
Titel: Re: Abfrage wenn mehrere kriterien erfüllt dann datensatz nur einmal anzeigen
Beitrag von: markusxy am September 20, 2022, 16:36:59
Zitat von: Don am September 20, 2022, 16:25:36nur einmal in der Liste erscheint

Klar, musst nur die Abfrage entsprechend anpassen - sprich die Werte müssen entsprechend aggregiert werden.
Titel: Re: Abfrage wenn mehrere kriterien erfüllt dann datensatz nur einmal anzeigen
Beitrag von: MzKlMu am September 20, 2022, 16:42:05
Hallo,
ZitatKlar, musst nur die Abfrage entsprechend anpassen
Wenn er aber die Kriterien sehen will (was ich annehme) nutzt das aggregieren nichts.
Titel: Re: Abfrage wenn mehrere kriterien erfüllt dann datensatz nur einmal anzeigen
Beitrag von: markusxy am September 20, 2022, 17:23:27
Zitat von: MzKlMu am September 20, 2022, 16:42:05Hallo,
ZitatKlar, musst nur die Abfrage entsprechend anpassen
Wenn er aber die Kriterien sehen will (was ich annehme) nutzt das aggregieren nichts.

Na ja, gehen tut grundsätzlich alles. Ist nur eine Frage der Darstellung, oder?
Titel: Re: Abfrage wenn mehrere kriterien erfüllt dann datensatz nur einmal anzeigen
Beitrag von: MzKlMu am September 20, 2022, 17:47:39
Hallo,
ZitatIst nur eine Frage der Darstellung
Sag ich doch, Hafo mit Ufo.
Titel: Re: Abfrage wenn mehrere kriterien erfüllt dann datensatz nur einmal anzeigen
Beitrag von: PhilS am September 20, 2022, 19:59:52
Zitat von: MzKlMu am September 20, 2022, 16:42:05Wenn er aber die Kriterien sehen will (was ich annehme) nutzt das aggregieren nichts.

Was genau sind denn diese "Kriterien"? - Ihr scheint hier einen unausgesprochenen Konsens zu haben, der nicht meinem Verständnis von Kriterien entspricht.

Mehrfache Datensätze in einer Ergebnismenge entstehen ja meist durch Joins in 1:N-Beziehungen. Das hat aber nicht direkt und zwingend etwas mit Kriterien zu tun.

@Don, poste doch mal das SQL deiner Abfrage hier, damit man sich ein korrektes Bild davon machen kann.
Titel: Re: Abfrage wenn mehrere kriterien erfüllt dann datensatz nur einmal anzeigen
Beitrag von: ebs17 am September 20, 2022, 21:25:12
In einer Kundentabelle gibt es Kunden nur einfach, hoffentlich.
Per Filtern über Abfrage erfolgt nur eine Reduzierung der Anzeige, aber doch nicht eine Vervielfältigung. Letztere erreicht man nur über explizite Maßnahmen wie JOIN's. Diese sollten einem aber bewusst sein, wenn man sie einsetzt.
Titel: Re: Abfrage wenn mehrere kriterien erfüllt dann datensatz nur einmal anzeigen
Beitrag von: Don am September 23, 2022, 15:08:33
Hallo zusammen,
vielen Dank für die zahlreichen Antworten, komme leider nur gelegentlich dazu an der DB weiterzuarbeiten. Hier der SQL Code:

SELECT tbl_Firma.ID_Firma, tbl_Firma.Firma_Kontakt, tbl_Firma.PLZ, tbl_Firma.Ort, tbl_Firma.Strasse, tbl_Firma.[angelegt am], tbl_Firma.[Rufnummer Kontakt], tbl_Firma.Webseite, tbl_Firma.Commitment, tbl_Firma.letzte_Aenderung, tbl_Firma.nächste_Aktion, tbl_Firma.Branche, tbl_Firma.Region, tbl_Firma.[Infos DA], tbl_call_Firma.ID_call, tbl_call_Firma.ID_Firma, tbl_call_Firma.Datum, tbl_call_Firma.Ergebnis_Kunden_call, tbl_call_Firma.Notizen, tbl_call_Firma.Followup, tbl_Firma.Uhrzeit, tbl_call_Firma.Telefonat, tbl_Firma.DA_Link, tbl_Firma.Call_bei_Gelegenheit
FROM tbl_Firma INNER JOIN tbl_call_Firma ON tbl_Firma.ID_Firma = tbl_call_Firma.ID_Firma
WHERE (((tbl_Firma.nächste_Aktion)<=Date()) AND ((tbl_call_Firma.Ergebnis_Kunden_call)<>"DA - machen") AND ((tbl_call_Firma.Followup)=True) AND ((tbl_Firma.Call_bei_Gelegenheit)=False))
ORDER BY tbl_Firma.nächste_Aktion, tbl_call_Firma.Datum;

Danke vorab
VG Don
Titel: Re: Abfrage wenn mehrere kriterien erfüllt dann datensatz nur einmal anzeigen
Beitrag von: ebs17 am September 23, 2022, 15:30:30
...
FROM tbl_Firma INNER JOIN tbl_call_Firma ON tbl_Firma.ID_Firma = tbl_call_Firma.ID_Firma
...
Bei einer 1:n-Beziehung, nachgeahmt durch den JOIN, ist es zwingend so, dass Anteile aus der Primärtabelle vervielfältigt werden, entsprechend der Anzahl der Schlüsselentsprechungen in der Sekundärtabelle.

Das kannst Du nur ändern, indem Du
- in der Sekundärtabelle nur genau einen Datensatz vorkommen lässt, also quasi das Ganze in 1:1 umfunktionierst
- die Datensätze der Sekundärtabelle per Gruppieren/Aggregieren auf jeweils einen pro Primärschlüssel reduziert werden
- die Anzeige in der Form verlegst, dass die Primärtalle in einem Hauptformular angezeigt wird und die Sekundärtabelle in einem verknüpften Unterformular.