Office: (Office 2016) n:m-Tabellen automatisch mit Werten füllen

Helfe beim Thema n:m-Tabellen automatisch mit Werten füllen in Microsoft Access Hilfe um das Problem gemeinsam zu lösen; Liebe Access-Gemeinde, ich bin gerade drauf und dran meine Schülerverwaltung (ja, bin Lehrer) mit Access neu zu gestalten. Dabei bin ich auf ein... Dieses Thema im Forum "Microsoft Access Hilfe" wurde erstellt von Ltd83, 19. Juli 2016.

  1. n:m-Tabellen automatisch mit Werten füllen


    Liebe Access-Gemeinde,

    ich bin gerade drauf und dran meine Schülerverwaltung (ja, bin Lehrer) mit Access neu zu gestalten. Dabei bin ich auf ein Problem gestoßen: In Tabelle 1 habe ich Kurse angelegt, in Tabelle 2 sind Schüler. Da jeder Schüler mehrere Kurse und jeder Kurs mehrere Schüler haben kann, habe ich eine dritte Tabelle, die beide miteinander verbindet (über KursID_F und SchülerID_F).

    Um einen Kurs mit Schülern zu füllen, habe ich ein Formular für Kurse samt Unterformular erstellt, in das ich über ein Kombifeld jeden einzelnen Schüler einzeln auswählen kann/muss, um die n:m-Verknüpfung eindeutig hinzubekommen. Das funktioniert soweit auch alles schön und ich freu mich jedes Mal, wenn das klappt. Anders herum kann ich natürlich auch in jedem Schüler einzelne Kurse zuweisen.

    Aber: am Anfang eines Schuljahres will ich das jetzt nicht alles händisch miteinander verknüpfen, sondern hätte gern, dass ich über einen Button mit einem VBA-Befehl (oder irgendwie anders!) alle Schüler einer Klasse gleichzeitig in einen Kurs einschreiben kann. (noch cooler wäre es natürlich, wenn ich die Kids über einen Dialog mit einem Häkchen o.Ä. auswählen könnte, die ich einschreiben will. Aber fangen wir mal klein an)

    Wie mache ich das am besten? VBA-technisch bin ich noch nicht wirklich bewandert. Ich war froh, dass ich ein funktionierendes Suchfeld basteln konnte *wink.gif*

    :)
     
    Ltd83, 19. Juli 2016
    #1
  2. Hi,

    dazu brauchst du wiederum ein Formular mit Unterformular. Oben wählst du die Klasse und den Kurs und das Schul-Halbjahr aus, unten zeigst du die Schüler zur Klasse. Dann kannst du mit Hilfe einer Anfügeabfrage neue Datensätze in der Verknüpfungstabelle erzeugen.

    Willst du die Schüler per Häkchen auswählen, so muss dieser Haken als Datenfeld in der Tabelle existieren, weil du das sonst nicht für jeden Datensatz einzeln setzen kannst.

    Hoffe, das hilft dir weiter.
     
    MaggieMay, 21. Juli 2016
    #2
  3. Ich wähle im Formular den Kurs aus (ich habe es so gemacht, dass ich im gleichen Formular den Kurs erstellen kann, das sollte aber kein Problem darstellen). Im Kurs selbst ist das Schul- und Halbjahr sowie die Klasse schon drin. Soweit habe ich das also prinzipiell schon. Es geht also wirklich nur darum, die einzelnen Schüler in einem Schwung in den Kurs zu bringen.

    Was ich noch nicht verstanden habe, ist die Anfügeabfrage, die du vorschlägst. Wie soll die gestaltet sein? Und wie greife ich darauf zu, ohne das Formular zu verlassen?

    Ich öffne also das Kurs-Formular, wähle den richtigen Kurs und sehe im Ufo eine leere Schülerliste. Now what?

    In welcher Tabelle muss dieser Haken existieren?
     
    Zuletzt von einem Moderator bearbeitet: 7. Januar 2021
    Ltd83, 21. Juli 2016
    #3
  4. n:m-Tabellen automatisch mit Werten füllen

    Warte. Das mit der Anfüge-Abfrage hab ich jetzt hinbekommen, war ja simpel *biggrin.gif* (hab mich nur beim ersten Versuch verklickt) Habe lediglich in der Abfrage selbst nach der KursID aus dem Formular filtern müssen.
     
    Ltd83, 21. Juli 2016
    #4
  5. In der tblSchueler.

    Wenn du die Anfügeabfrage bereits hast, wäre die noch zu ergänzen um den Teil " Where Ja/Nein-Feld = True".
     
    Maxel, 21. Juli 2016
    #5
  6. Also: alle Schüler in einen Kurs transferieren hat geklappt.

    Das mit dem Haken und einer Auswahl der Schüler ist mir immer noch nicht klar.

    Meine Utopie ist folgende:
    Ich gehe ins Kursformular, wähle dort den richtigen Kurs aus (soweit, so gut). Ich klicke auf einen Button, Access fragt mich, welche Schüler es in den Kurs stecken soll, ich wähle diese über einen Klick auf ein Ankreuzfeld aus, klicke auf ok und freue mich, dass es funktioniert hat.

    Und das heißt doch, dass Access bei meinem Klick auf "Schüler in Kurs einschreiben" zunächst eine Abfrage der Kids öffnen muss, die dazu noch ein Ankreuzfeld hat. Über dieses wähle ich dann die Schüler aus, Access macht aus dieser Anfrage eine weitere Anfrage, die es als Anfügeanfrage nutzt und alles wäre in Ordnung, oder?
     
    Ltd83, 21. Juli 2016
    #6
  7. Dein (Unter-)Formular muss vor den Schülernamen das Kontrollkästchen haben.
    Zeige uns bitte Deine (erfolgreiche) Abfrage (SQL).
     
    Maxel, 21. Juli 2016
    #7
  8. n:m-Tabellen automatisch mit Werten füllen

    Ich habs!

    Zunächst habe ich, wie ihr es vorgeschlagen habt, ein Kurs-Hinzufügen-Ja/Nein-Feld in der tbl der Schüler angelegt. Über ein Ufo im Kurs-Formular wähle ich SchülerID, Name und "Kurs hinzufügen" aus und klicke entsprechend die Kästchen an, die ich haben will.

    Über eine Anfügeabfrage mit Kursfilter und Wahrheitswertkriterium beim Ja/Nein-Feld, das ich mit dem entsprechenden Button ausführe, bekomme ich jetzt nur die Schüler in den Kurs, die auch wirklich ausgewählt sind.

    Yeah! Das ist großartig und eigentlich auch gar nicht so schwierig. Das Ganze wirkt jetzt ein bisschen doppelt, aber das liegt an der noch verbesserungswürdigen Struktur des Hauptformulars (die Schülernamen stehen jetzt an zwei Stellen. Eine zur Auswahl, die andere zur Anzeige. Das kann ich ja einfach an verschiedene Stellen schieben).

    Eine Frage bleibt offen: wie vermeide ich mögliche Duplikate beim Hinzufügen? Brauche ich dazu jetzt VBA?
     
    Ltd83, 21. Juli 2016
    #8
  9. Duplikate vermeidest Du durch geeignete Indizierung in der m:n-Tabelle (zusammengesetzter Index über die Feldkombinationen, die sich nicht wiederholen dürfen).

    Im Bild siehst Du übrigens, wie ich derartige Auswahllisten gestalte:

    Im Detailbereich stehen die gebundenen Felder W(ahl) und Zuname.

    Im Formularkopf sind die Spaltenüberschriten nicht als Label, sondern als Button gefertigt. Mit entsprechender Codierung kann man die Spalten abwechselnd auf- und absteigend sortieren (und dies auch kenntlich machen).

    Das (ungebundene) Kontrollkästchen links oben manipuliert alle Datensätze - abwechselnd alle an- oder abwählen.
     
    Maxel, 21. Juli 2016
    #9
  10. Wie du das gemacht hast, ist mir noch unklar, aber ich glaube, das ist auch nicht unbedingt notwendig. Schön wäre nur, wenn die Häkchen nach dem Hinzufügen wieder verschwinden würden. Aber wirklich notwendig ist das nicht. So oft wollte ich keine Kurse neu belegen *wink.gif*

    Mit Indizierungen habe ich mich noch gar nicht beschäftigt (bis auf den obligatorischen Primärkey). Ich habe es jetzt so gemacht, dass ich einen gemeinsamen Index für SchülerID_F und KursID_F gebastelt habe, sodass dieser nicht doppelt vorkommen kann. Er meckert jetzt beim Ausführen der Anfüge-Abfrage, wenn ich einen Schüler doppelt hinzufügen will. Ignoriere ich das aber, fügt er einen neuen Datensatz mit den doppelten Daten unten an und löscht (glaube ich zumindest) den alten Datensatz. Unpraktisch.
     
  11. Hi,

    nach der Speicherung sollten die Haken alle wieder entfernt werden, ebenfalls mit einer Aktualisierungsabfrage. Dazu kann dieselbe Prozedur genutzt werden, die auch beim An-/Abhaken der ungebundenen Checkbox angestoßen wird.
    Das sollte nicht passieren, wird ja durch den eindeutigen Index verhindert.
     
    MaggieMay, 21. Juli 2016
    #11
  12. Ja, aber ich weiß nicht, wie das geht. Klar kann ich eine Checkbox ins Unter-Formular werfen, aber was mach ich dann damit?
     
  13. n:m-Tabellen automatisch mit Werten füllen

    Beim Checkbox-Ereignis "Nach Aktualisierung" kannst du eine Ereignisprozedur anlegen, in der eine Aktualisierungsabfrage ausgeführt wird.

    Beispiel: Code:
     
    MaggieMay, 21. Juli 2016
    #13
  14. Achso! Dann müsste ich eine Aktualisierungsabfrage machen, die ihren Wert aus der ungebundenen Checkbox nimmt und auf alle Schüler überträgt. Richtig?
     
  15. So ist es. Könnte man noch einschränken auf die Schüler der ausgewählten Klasse.
     
    MaggieMay, 21. Juli 2016
    #15
Thema:

n:m-Tabellen automatisch mit Werten füllen

Die Seite wird geladen...
  1. n:m-Tabellen automatisch mit Werten füllen - Similar Threads - Tabellen automatisch Werten

  2. Tabelle automatisch mit Formeln erweitern

    in Microsoft Excel Hilfe
    Tabelle automatisch mit Formeln erweitern: Hallo zusammen, ich habe folgende Tabelle [ATTACH] Wenn ich in A2 etwas einge, kommen in A3 und A4 automatisch Werte (via SVERWEIS). Ich muss danach Zelle A4 anklicken und dann TAB drücken,...
  3. Dynamische Tabellen mit automatischer Aktualisierung

    in Microsoft Excel Hilfe
    Dynamische Tabellen mit automatischer Aktualisierung: Hallo in die Runde! Vorab schon mal vielen Dank für alle Mühen und die Hilfe! Ich habe folgendes Anliegen: Ich habe eine Geräteliste als Excel Datei mit einigen verschiedenen Tabellenblättern...
  4. Tabelle automatisch Sortieren

    in Microsoft Excel Hilfe
    Tabelle automatisch Sortieren: Ich habe eine Tabelle wo ich Namen von Kollegen eintrage Vorname Nachname Geburtsdatum Alter A3 B3 C3 D3 Wenn ich in der letzten Zeile einen neuen...
  5. Automatisches Kopieren aus Tabelle in anderes Tabellenblatt

    in Microsoft Excel Hilfe
    Automatisches Kopieren aus Tabelle in anderes Tabellenblatt: Hi liebes Forum, ich habe folgende Frage/Problemstellung: Ich habe eine Exceldatei, die aus vielen verschiedenen Blättern besteht. Für jedes Projekt ein Blatt (alle sind gleich aufgebaut). Jetzt...
  6. Zusammenführen zweier Tabellen und automatisches Markieren von Werten

    in Microsoft Excel Hilfe
    Zusammenführen zweier Tabellen und automatisches Markieren von Werten: Guten Tag, an meiner Schule haben wir ein Problem - vorab schon vielen Dank für eure Hilfe: Tabelle 1: Anwesenheitsliste * Ich kann eine Liste aller Schüler bzgl. ihrer An-. und Abwesenheit...
  7. Neue Werte in Tabelle automatische erfassen

    in Microsoft Excel Hilfe
    Neue Werte in Tabelle automatische erfassen: Hallo! Vielleicht kann mir jemand von euch helfen! Ich würde gerne meine Portfolio-Exceltabelle jeweils immer auf den aktuellen Stand bringen und muss dafür neue Werte in gewissen...
  8. fehlende Werte in Tabelle automatisch bilden

    in Microsoft Excel Hilfe
    fehlende Werte in Tabelle automatisch bilden: Hallo zusammen, bin leider ein Excel Anfänger und erstelle zur Zeit Diagramme über die Export Schnittstelle eines Business Intelligence Programmes. Ich bringe u. a. folgende Werte in eine...
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden