Mai 25, 2022, 11:56:25

Neuigkeiten:

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


Problem mit der Anzeige von einem gefilterten Kombifeld

Begonnen von Kamado, März 17, 2022, 12:56:26

⏪ vorheriges - nächstes ⏩

Kamado

Hallo zusammen,
es ist mal wieder soweit und habe mich an einer Sache festgebissen.

Über ein geteiltes Formular mit 3 Kombifeldern möchte ich eine Tabelle füttern. Das geteilte Formular habe ich gewählt damit ich bei Korrekturen auf einem Datensatz schnellen Zugriff habe.

Das Kombifeld ,,Teilnehmerwahl" habe ich mit dem Abfragegenerator so eingeschränkt, dass mir nur Personen angezeigt werden die noch nicht zugeordnet sind.
SELECT tbl_Personen.Personen_ID, tbl_Personen.PersonenNameKomplett, tbl_Personen.PersonenGeburtsdatum, tbl_PersonenGruppeBeruf.Zugeordnet
FROM tbl_Personen INNER JOIN tbl_PersonenGruppeBeruf ON tbl_Personen.Personen_ID = tbl_PersonenGruppeBeruf.Personen_ID_FK
WHERE (((tbl_PersonenGruppeBeruf.Zugeordnet) Is Null))
ORDER BY tbl_Personen.PersonenGeburtsdatum;

Für die Zuordnung habe ich in der Tabelle das Feld ,,Zugeordnet" angelegt und mit dem Standardwert ,,2" belegt. Dort kann ich dann mit dem Kriterium ,,Ist Null" die noch nicht zugeordneten Personen herausfiltern.

Jetzt kommt mein Problem. Die zugeordneten Personen werden in dem Unterdatenblatt nur als leeres Feld dargestellt. Keine meiner gefühlt 3000 Varianten funktioniert. :D

Hat jemand vielleicht einen Ansatz für mich?
Grüße aus dem Münsterland

Version - Access 2016

Beaker s.a.

@Kamado
Die Beziehungen halte ich für korrekt.
Das Feld "zugeordnet" nicht.
1. gibt es ja zwei Zuordnungen
2. ergibt sich dieser Zustand aus den Daten, - entweder es gibt einen
DS, der die Zuordnung beschreibt oder nicht
An den gezeigten DS sieht man aber, dass die Namen nur bei dem gefüllten
Feld nicht sichtbar sind. Verschwinden die Namen wenn du das Feld füllst?
Auf welcher Tabelle beruht denn das Form?

gruss ekkehard
--
Beaker s.a., der lieber an seinem eigenen Projekt arbeiten würde/sollte, aber irgendwie immer gerne seinen Senf dazu gibt ;-)
S.M.I².L.E.

MzKlMu

Hallo,
zum Datenmodell hätte ich doch etwas Zweifel.
Wie hängen denn die Gruppen mit den Berufen zusammen ?
Hat jede Gruppe einen bestimmten Beruf ?
Gruß
Klaus

Kamado

Grüße aus dem Münsterland

Version - Access 2016

Beaker s.a.

Hallo Klaus,
Wenn man so nochmal drüber nachdenkt, hast du wohl recht.
Der Beruf ist ja eher eine Eigenschaft einer Person und sollte daher
damit in Beziehung stehen (1:n oder n:m, je nach dem ob die Personen
den Beruf öfter mal wechseln).

gruss ekkehard
--
Beaker s.a., der lieber an seinem eigenen Projekt arbeiten würde/sollte, aber irgendwie immer gerne seinen Senf dazu gibt ;-)
S.M.I².L.E.

Kamado

März 17, 2022, 21:15:31 #5 Letzte Bearbeitung: März 17, 2022, 21:21:27 von Kamado
Hallo zusammen,

danke für die erneute Hilfestellung. Erst mal muss ich mich entschuldigen. Die Darstellung in Bild DB1 passt nicht. Ich hatte die zugehörige Tabelle (tbl_PersonenGruppeBeruf) mit einigen Datensätzen zum Testen gefüllt und diese unsinnigen Testdatensätze noch nicht wieder gelöscht. In Bild DB3 ist es jetzt richtig.

Ich fange am besten noch einmal sauber an.

Zitat von: Beaker s.a. am März 17, 2022, 15:17:41Auf welcher Tabelle beruht denn das Form?
Das Formular beruht auf der Tabelle (tbl_PersonenGruppeBeruf). Wie in Bild DB2 zu sehen ist, werden dort die Primärschlüssel der anderen Tabellen als Fremdschlüssel gespeichert.



Zitat von: MzKlMu am März 17, 2022, 15:43:29Hallo,
zum Datenmodell hätte ich doch etwas Zweifel.
Wie hängen denn die Gruppen mit den Berufen zusammen ?
Hat jede Gruppe einen bestimmten Beruf ?
Ich führe die Personen, Gruppen und Berufe deshalb in der (tbl_PersonenGruppeBeruf) zusammen, weil ein Auszubildender innerhalb seiner Ausbildung in einen anderen Beruf wechseln kann. Daher ist es mir möglich dem selben Teilnehmer in einem neuen Datensatz einen anderen Beruf zuzuordnen. Auch kann es passieren, dass ein Teilnehmer in eine andere Gruppe eingeteilt wird. Also erneut ein neuer Datensatz.
Die Gruppen hängen also nicht mit den Berufen zusammen sondern mit der Person. Ein Teilnehmer hat einen Beruf (Maurer) und ist in Gruppe (4120.20) eingeteilt. Ein anderer Teilnehmer hat den Beruf (Betonbauer) und ist trotzdem in der selben Gruppe (4120.20) eingeteilt. Diese Flexibilität erhoffe ich mir durch die Zuordnungen in der Tabelle (tbl_PersonenGruppeBeruf).



Zitat von: Beaker s.a. am März 17, 2022, 15:17:41Die Beziehungen halte ich für korrekt.
Das Feld "zugeordnet" nicht.
Das Feld "Zugeordnet" dient lediglich zum Filtern der Datensätze damit ich in dem Kombinationsfeld "Teilnehmerwahl" nicht alle Teilnehmer angezeigt bekomme. Es sollen nur die angezeigt werden die noch einem Beruf und einer Gruppe zugeordnet werden müssen.
Warum 200 Teilnehmer anzeigen wenn nur noch 30 davon zugeordnet werden müssen.

Der Inhalt vom Feld (Zugeordnet) wird in jedem neuen Datensatz als Standardwert eingetragen. Ich habe den Wert sporadisch 2 genannt. Ich hätte auch 128 oder Haus wählen können. Alle anderen Personen haben keine 2 im Feld stehen sondern nichts (Null). Jetzt kann ich im Abfragegenerator für das Kombinationsfeld "Teilnehmerwahl" mit dem Kriterium  -ISt Null- alle noch nicht zugeordneten Teilnehmer anzeigen lassen.
SELECT tbl_Personen.Personen_ID, tbl_Personen.PersonenNameKomplett, tbl_Personen.PersonenGeburtsdatum, tbl_PersonenGruppeBeruf.Zugeordnet
FROM tbl_Personen LEFT JOIN tbl_PersonenGruppeBeruf ON tbl_Personen.Personen_ID = tbl_PersonenGruppeBeruf.Personen_ID_FK
WHERE (((tbl_PersonenGruppeBeruf.Zugeordnet) Is Null))
ORDER BY tbl_Personen.PersonenGeburtsdatum;

Sorry, ziemlich viel zum lesen aber wohl notwendig.



Jetzt das Problem:
In Bild DB3 sieht man wie ich gerade einen Datensatz zusammengestellt und mit dem Button Speichern und neuer Eintrag gespeichert habe. So wie es sein soll, erscheint Krampe Oliver im Unterdatenblatt. Wenn ich nun den nächsten Teilnehmer im Kombifeld auswählen möchte wird Krampe Oliver unsichtbar. Siehe Bild DB4
Info: Das Kombifeld habe ich bei der Eigenschaft Fokuserhalt mit dem Makro Aktualisieren belegt.

Irgendwie kann ich das sogar ein wenig nachvollziehen, da das Unterdatenblatt nur das zeigt was im Kombifeld zu sehen ist. Und dort steht Krampe Oliver eben nicht mehr drin, weil er seinen Beruf und die Gruppe gerade zugeteilt bekommen hat. Wenn ich die Filterung über den Abfragegenerator ganz herausnehme wird mir alles ordnungsgemäß angezeigt. Dann stehen aber auch alle Teilnehmer wieder in dem Kombifeld. Vielleicht muss ich die Auswahl in dem Kombifeld auf eine ganz andere Art einschränken??

Einen guten Rat von Profis weiß ich sehr zu schätzen :)
Grüße aus dem Münsterland

Version - Access 2016

MzKlMu

März 17, 2022, 23:41:48 #6 Letzte Bearbeitung: März 17, 2022, 23:49:35 von MzKlMu
Hallo,
Zitat von: undefinedDie Gruppen hängen also nicht mit den Berufen zusammen
Dann ist der bisherige Aufbau falsch. Wenn die Berufe nichts mit den Gruppen zu tun haben gehört der Beruf auch nicht in diese Tabelle.

Zitat von: undefinedweil ein Auszubildender innerhalb seiner Ausbildung in einen anderen Beruf wechseln kann.
Daher ist auch hier eine n:m Beziehung erforderlich, genau wie bei der Gruppe.

Die jetzige Gruppentabelle heißt dann  tbl_PersonenGruppe und die neue Tabelle dann  tbl_PersonenBeruf.

Zitat von: undefinedEin Teilnehmer hat einen Beruf (Maurer) und ist in Gruppe (4120.20) eingeteilt. Ein anderer Teilnehmer hat den Beruf (Betonbauer) und ist trotzdem in der selben Gruppe (4120.20) eingeteilt.
Das ist auch bei einer Umstrukturierung nach meinem Vorschlag gegeben. Ein Feld "Zuordnung" dürfte dann nicht benötigt werden.

Dein jetziges Problem hängt auch mit dem falschen Aufbau zusammen.
Gruß
Klaus

Kamado

März 18, 2022, 09:10:42 #7 Letzte Bearbeitung: März 18, 2022, 12:00:13 von Kamado
Danke für die Antwort.

Ich muss noch einmal nachfragen.
Wie du in Bild DB5 sehen kannst möchte ich mit der Konstellation Person/Gruppe/Beruf weiter nach den Kursen gehen.
Daher war mein Gedanke, dass ich diese drei Dinge erst in einer Tabelle zusammenführe um dann damit in der Tabelle (tbl_PersonenKurse) weiterarbeiten zu können. 

Zitat von: MzKlMu am März 17, 2022, 23:41:48Dann ist der bisherige Aufbau falsch.
Ist unter den oben genannten Gesichtspunkten mein Datenmodell immer noch falsch?
 
Grüße aus dem Münsterland

Version - Access 2016

MzKlMu

Hallo,
das kann doch so unmöglich stimmen.
Willst Du für jeden einzelen Datensatz der Tabelle tblPersonenGruppenBeruf einen Lehrgang anlegen ?
Und was machst Du wenn eine Person den Beruf wechselt aber in der gleichen Gruppe bleibt ?
Du schreibst doch weiter oben der Beruf ist von der Gruppe unabhängig.

Wer erhält denn die Lehrgänge eine Gruppe ?

Die Zusammenhänge sind nach wie vor völlig unklar.
Gruß
Klaus

Kamado

März 18, 2022, 13:30:39 #9 Letzte Bearbeitung: März 18, 2022, 15:09:08 von Kamado
Zitat von: MzKlMu am März 18, 2022, 12:19:26Willst Du für jeden einzelen Datensatz der Tabelle tblPersonenGruppenBeruf einen Lehrgang anlegen ?
Nicht einem Lehrgang sondern einem Kurs. Dieser Kurs (z.B.Kursbezeichnung AB-1234) fängt meinentwegen am 2.Januar an und hört am 6. Januar auf.
Ich gebe zu: Dafür fehlen noch die drei Felder Kursbezeichnung, Kursbeginn und Kursende in der tbl_PersonenKurse.

Dieser Kurs besteht aus dem Lehrgang (Mauern001) und an dem Kurs nimmt der Teilnehmer Krampe Oliver teil. Da ich dem Teilnehmer in der Tabelle (tbl_PersonenGruppenBeruf) die Gruppe und den Beruf zugeordnet habe, nehme ich somit diese Informationen (Personen/Gruppen/Beruf) als eine zusammengehörige Position mit.


Zitat von: MzKlMu am März 18, 2022, 12:19:26Und was machst Du wenn eine Person den Beruf wechselt aber in der gleichen Gruppe bleibt ?
Dafür hatte ich ja die Tabelle (tbl_PersonenGruppenBeruf) gedacht. Sollte ein Teilnehmer die Gruppe wechseln dann lege ich dort einen neuen Datensatz mit der selben Person, dem selben Beruf aber einer anderen Gruppe an. Übrigens passiert das selten (Berufswechsel oder Gruppenwechsel), aber ich kann es ja nicht ignorieren.


Zitat von: MzKlMu am März 18, 2022, 12:19:26Du schreibst doch weiter oben der Beruf ist von der Gruppe unabhängig.
Ist ja auch. Der Beruf ist nicht der Gruppe zugeordnet sondern der Person. Genauso wie die Gruppe auch der Person zugeordnet ist. Alles wie oben beschrieben in der Tabelle (tbl_PersonenGruppenBeruf).


Schlag mich nicht tot wenn meine Theorie nicht aufgeht ;)

Vielleicht noch als Ergänzung damit du einen Gesamtüberblick bekommst.
Ich arbeite in einer Bildungseinrichtung. Jedes Jahr ca. 100 Auszubildende. Diese Auszubildenden werden insgesamt 17 Wochen beschult. Jede Woche ein neuer Kurs mit einem anderen Lehrgangsthema.
Im Bild DB6 und DB7 sieht man wie wir es bisher mit Excel gelöst haben. Die Namen habe ich unsichtbar gemacht.
Grüße aus dem Münsterland

Version - Access 2016

MzKlMu

Hallo,
ZitatDer Beruf ist nicht der Gruppe zugeordnet sondern der Person. Genauso wie die Gruppe auch der Person zugeordnet ist.
Dann muss das doch in getrennte Tabellen, wie in #6 beschrieben. Du willst doch (auch wie weiter oben beschrieben) bei einem Gruppenwechsel einen neuen Datensatz anlegen, dann musst Du noch mal den gleichen Beruf zuordnen, obwhl der sich gar nicht geändert hat. Die Zusammenfassung in einer Tabelle ist unlogisch.

Auch das mit dem lehrgang ist verwirrend (für mich als Außenstehenden) Du hast eine Tabelle für die lehrgänge der Schlüssel der lehrgänge ist in der Tabelle tblPersonenKurs, wo kommt denn da der Kurs her, oder ist der Kurs ein Lehrgang ?
Dann müsste die Tabelle aber tblPersonLehrgang heißen.
Alles reichlich verwirrend.
Wer kriegt denn jetzt einen Kurs eine bestimmte Berufsgruppe ?
Der Kurs/Lehrgang muss sich doch auf einen bestimmten Beruf beziehen.

Gruß
Klaus

Kamado

Hallo Klaus,

bin gerade erst wieder vom Tanken (Diesel) da. 5Km von uns entfernt in Holland für 1,86Euro gegenüber 2,18Euro bei uns im Ort. ;D

Zurück zur Datenbank.
Ich glaube, wenn ich jetzt bis ins kleinste Detail mit allen Unwägbarkeiten den Betrieb in unserer Bildungsstätte erklären soll, dann führt das hier sicherlich zu weit. Ich werde mich mal weiter durchkämpfen. Es steckt für mich kein Druck dahinter. Ich muss keine fertige Datenbank liefern. Es ist rein privates Projekt. Eben halt "Learning by doing".
Deshalb würde ich vorschlagen diesen Thread hier jetzt zu schliessen.

Danke für deine investierte Zeit.

Gruß
Norbert
Grüße aus dem Münsterland

Version - Access 2016