August 13, 2022, 20:20:20

Neuigkeiten:

Ist euer Problem gelöst, dann bitte den Knopf "Thema gelöst" drücken!


Neue Abfrage zeigt Dubletten an

Begonnen von Mero, Juli 23, 2022, 21:12:56

⏪ vorheriges - nächstes ⏩

MzKlMu

Hallo,
Zitatund beschreibe die Lösung und poste die Datenbank.
ja, bitte.
Gruß
Klaus

Mero

OK, ich fass nochmal zusammen:

Es geht darum, dass alle Mitarbeiter, die an einem Punkt der Prozesskette in einer (oder mehreren) Tabelle(n) eingetragen sind, den dazugehörenden MajorTask in einem Endlosformular sehen. Das ist wichtig, da über dieses Formular z.B. mittels cmdButton Dokumente erstellt werden oder auch das Formular zum Bearbeiten der SubTasks aufgerufen wird, in dem die Mirabeiter ihre Arbeiten eintragen.

1. Der ersten Ansatz über Abfrage AllQ (Formular Form_AllQ) liefert Dubletten. Logisch, denn der im MajorTasks eingetragene verantworliche Mitarbeiter (EmployeeM) liefert zu jedem Eintragin der SubTasks einen Treffer.

2. Der zweite Ansatz war die Filterung über Grouping und Max (AllQ_Test2 (Form_AllQ_Test2), AllQ_Test3). AllQ_Test2 versagt bei Auswahl MA2, AllQ_Test3 bei MA3. Außerdem kann jetzt der Recordset nicht mehr bearbeitet werden, Fehler "Recordset not updatable".

3. Der dritte Ansatz war die Idee, erstmal alle involvierten Mitarbeiter Distinct zu ermitteln und damit die MajorTasks zu filtern.

3.1. Union Abfrage "SQL_Test" liefert eine zuverlässige Liste.  Select ohne DISTINCT, da Union immer eine Distinct Datensätze liefert.
Hier hätte ich jetzt z.B. ein Array oder eher eine temporäre Tabelle zum Filtern erstellen können. Allerdings möchte ich in den Frontends keine lokale Tabelle erstellen, die dann auch immer wieder gelöscht oder gellert werden muss.
Hätte ich direkt auf Basis der Union Abfrage gefiltert, wäre das Ergebnis wohl wieder ein "Recordset not updatable" gewesen. (Habs nicht versucht, bin aber ziemlich sicher.)

3.2. Nächster Ansatz "SQL_Test2geht" mit zwei "IN" Operatoren, um UNION zu umgehen. Funktioniert.

3.3. "SQL_Test3Form" ist die Anpassung an das Formular "SQLTest". Bei dieser Abfrage ist die Tabelle SubTasks nicht drin (siehe in Entwurfsansicht), die Mitarbeiter der Tabelle SubTasks werden über den SQL-String abgefragt.

Danke für eure Zeit.

Grüße
Stefan