Tach!
|Klausurantworten | (Wie hat der Student die Aufgabe beantwortet) (m:n Tabelle)
|-----------------|
|AntwortID |
|FK_AufgabeID |
|FK_TeilnehmerID |
|erreichtePunkte |
Kommentar Im Access-Formular habe ich (Tabelle 2) als Hauptformular und Tabelle 3 als Unterformular, wo ich eigentlich nur noch die erreichten Punkte eintragen möchte, doch durch die fehlenden Einträge in Tabelle 3 ist dies nicht möglich. Ich muss erneut den Klausurteilnehmer eintragen.
Du willst Tabelle 3 bearbeiten, also muss diese die Haupttabelle im Formular sein und die Aufgaben und Teilnehmer jeweils Lookup-Felder (oder wie auch immer das bei Access heißt). Es ist dann jedoch ermüdend und potentiell fehlerträchtig, beide Werte für jede einzelne Antwort auszuwählen.
Natürlich kann ich per VBA-Skript die Datensätze per "Knopfdruck" in Tabelle 3 erzeugen lassen, doch frage ich mich, ob das nicht erfacher geht.
Schau mal vom Standpunkt des Anwenders aus. Der sollte es so einfach wie möglich haben und dem sollte sich das Programm unterordnen. Eine Kreuztabelle à la Excel hilft bei der Übersicht, wenn du Ergebnisse vergleichen willst. Aber für das Eingeben reicht es, wenn du eine Spalte (oder Zeile - je nach Anordnung) mit allen Antwort für einen Studenten darstellst. Du könntest also (auch ohne vorhandene Tabelle-3-Datensätze) für einen gerade gewählten Studenten und alle Aufgaben der Klausur die beiden Eingabefelder für Punkte und Kommentar darstellen. Dazu kannst du bereits bestehende Daten aus Tabelle 3 heranziehen, zum Beispiel um sie editieren zu können. Wenn es aber keine gibt, dann muss das Feld eben leer angezeigt werden.
Ich hatte schon an einen LEFT-JOIN gedacht. Dadurch erhalte ich zwar die Kombinationen, aber beim LEFT-JOIN sind die Daten ja nicht editierbar.
Joins sind für Abfragen. Für das Eingeben sind Lookup-Felder da.
dedlfix.