Hallo zusammen
Für einen Sportverein muss ich die Trainings- und Wettkampfteilnahmen der Sportler erfassen und auswerten. Hierzu möchte ich mich an Access heranwagen.
Gerne hätte ich ein Formular, in dem ich alle Trainings aufgelistet habe, eines davon auswähle und für dieses eine Training die Sportler aus einer ebenfalls dargestellten Liste auswähle, die daran teilnehmen werden. Meine Vorstellung habe ich mal als Grafik dargestellt. Geht so etwas überhaupt?
Zur Zeit gibt es in meiner Datenbank die Tabellen tblSportler, tblTrainings und als Zwischentabelle tblTrainingsteilnahme, welche mit den anderen beiden in einer Beziehung steht. Doch genau diese Zwischentabelle zeigt mir eben nur jene Sportler an, bei denen ich das Kontrollkästchen "Teilnahme" (zu Testzwecken in der Tabelle) angekreuzt habe. Alle anderen zeigt es mir natürlich nicht an - was ich auch verstehe, da ja keine Teilnahme erfasst wurde.
Ich hoffe, ihr könnt mir hierbei weiterhelfen. Für eure Unterstützung und eure (für einen Access-Laien verständliche ;D ) Erklärungen danke ich euch bereits bestens.
Beste Grüsse
Zobel
Hallo Zobel,
Und wo ist jetzt dein Problem?
Sieht doch gut aus soweit. Wobei das Feld "Teilnahme" in der n:m-Tabelle
eigentlich obsolet ist; - die beiden (zusammen eindeutigen) FK belegen
diese Tatsache doch schon; - (k)ein Eintrag = (k)eine Teilnahme.
gruss ekkehard
Hallo Zobel,
die Eingabe mit zwei Listenboxen sieht ja schön aus, aber Anfänger in VBA sind damit i.d.R. etwas überfordert.
Die "normale" Umsetzung einer m:n Beziehung mit Formularen ist eine Kombination aus Haupt- und Unterformular:
https://access-basics.de/index.php/Formulare_basics_mnBeziehung_mit_Unterformular.html (https://access-basics.de/index.php/Formulare_basics_mnBeziehung_mit_Unterformular.html)
In deinem Fall kann man die Umsetzung auch mit nur einer Listbox mit Mehrfachauswahl machen, was zwar auch noch VBA verlangt, aber immerhin sehr viel einfacher ist, als das hantieren mit zwei synchronisierten Listboxen.
Hier wird beschrieben, wie mit VBA die selektierten Einträge auslesen kannst:
https://learn.microsoft.com/en-us/office/vba/api/access.listbox.itemsselected (https://learn.microsoft.com/en-us/office/vba/api/access.listbox.itemsselected)
Du müsstest dann mit VBA dann für jeden selektierten Eintrag eine Datensatz in die m:n Tabelle schreiben, bzw. für nicht selektierte Einträge diese Datensätze wieder löschen.
Wie gesagt, die einfachste Umsetzung ist mittels einer Kombination von HF und UF.
Knobbi38
Hallo zusammen
Vielen Dank für eure Rückmeldungen!
Knobbi38, du hast recht: Die Listenboxen sehen zwar toll aus, doch ich habe diese Idee bereits wieder verworfen. Danke auf alle Fälle für die Links, welche ich mir gerne zu Gemüte ziehen werde.
Bei meinen ersten Versuchen mit Haupt- und Unterformular bin ich aber bereits auf ein weiteres Problem gestossen: Im Unterformular zeigt es mir nur die Sportler an, deren Teilnahme am Training bereits erfasst sind. Dies macht natürlich Sinn, weil dies mit der Zwischentabelle tblTrainingsteilnahme so verknüpft ist. Jedoch wünsche ich mir eine Liste mit allen Sportlern, aus denen ich dann auswählen kann, z.B. durch Auswählen einer Checkbox. Nun, vielleicht finde ich in deinem verlinkten Artikel ja eine Erklärung. :)
Auf alle Fälle nochmals: Dankeschön!
Zobel
Zitatm Unterformular zeigt es mir nur die Sportler an, deren Teilnahme am Training bereits erfasst sind. Dies macht natürlich Sinn, weil dies mit der Zwischentabelle tblTrainingsteilnahme so verknüpft ist.
Ohne das ich mich jetzt genauer mit Deiner Datenbank beschäftigt zu haben...
Das kannst eventuell über die Beziehung ändern. Da hast ja 3 Möglichkeiten mit den Einstellungen.
Hallo Zobel,
Zitat von: Zobel am Januar 26, 2026, 21:30:14Jedoch wünsche ich mir eine Liste mit allen Sportlern, aus denen ich dann auswählen kann, z.B. durch Auswählen einer Checkbox
Die Auswahl im Unterformular setzt man i.d.R. mit einer Kombobox um, womit dann die die dritte beteiligte Tabelle mit einbezogen wird.
Eine Listbox mit Checkboxen gibt es so nicht in Access, aber alternativ kannst du dafür eine Listbox mit Mehrfachauswahl verwenden.
Knobbi38
Hallo zusammen
Vielen Dank euch! Dann werde ich mich gleich hinter die Umsetzung eurer Tipps machen! ;D
Beste Grüsse,
Zobel