Also ich habe gestern Abend alle Vorschläge durchprobiert.
Die Beispieldatenbank von Robert ist bis jetzt am besten handhabbar.
Die Idee mit dem T3 Join T2 hat auch funktioniert, erfordert aber die händische Eingabe der T_ID in das Formular, was natürlich fehleranfällig ist.
Ich habe gestern noch versucht die Einträge per INSERT zu erzeugen. Einfach alle M_ID's per
Code: Alles auswählen
INSERT "T3" ("M_ID") SELECT "Mitgliedsnummer" FROM "T1"
einmal in die Tabelle Anwesenheit schreiben und dann in Spalte T_ID die aktuelle T_ID mit
zu ändern. Das scheitert aber daran, dass beide Spalten zum Primärschlüssel gehören und NOT NULLABLE COLUMN's sind.
Nach stundenlangem Herumprobieren mit Join und Unterformularen bin ich daher zu folgendem Schluß gekommen: Es geht nicht ohne Makros.
Was haltet Ihr daher von folgendem Lösungsanasatz:
Ich füge in die Mitgliedstabelle eine J/N Feld ein. Ich baue eine Formular mit einem Tabellenkontrollfeld für die Stammdatentabelle (T1) und einem Knopf für die Funktion
Danach kann ich in der Tabelle alle Personen anwählen, die da waren und speichere die Einträge in der Stammdatentabelle!
Nun erzeugt mir ein zweites Makro ein temporäre Tabelle ("Temporary_Table") mit den Spalten "T_ID", "Mitgliedsnummer" und "Anwesend", in welche ich "T_ID" und "Anwesend" aus der Stammdatentabelle per INSERT einfüge. Da die Tabelle keinen Primärschlüssel besitzt und nur temporären Charakter hat kann ich nun per UPDATE das Feld "T_ID" auffüllen.
Alle drei Spalten füge ich dann mit einem
Code: Alles auswählen
INSERT "T3" ("T_ID", "M_ID", "Anwesend") SELECT "T_ID", "M_ID", "Anwesend" FROM "Temporary_Table"
in die eigentliche Anwesenheitsliste (T3) ein. Anschließend kann die temporäre Tabelle wieder gelöscht werden.
Also ich habe gestern Abend alle Vorschläge durchprobiert.
Die Beispieldatenbank von Robert ist bis jetzt am besten handhabbar.
Die Idee mit dem T3 Join T2 hat auch funktioniert, erfordert aber die händische Eingabe der T_ID in das Formular, was natürlich fehleranfällig ist.
Ich habe gestern noch versucht die Einträge per INSERT zu erzeugen. Einfach alle M_ID's per [code]INSERT "T3" ("M_ID") SELECT "Mitgliedsnummer" FROM "T1"[/code] einmal in die Tabelle Anwesenheit schreiben und dann in Spalte T_ID die aktuelle T_ID mit [code]UPDATE "T3" SET "T_ID" = <Aktuelle T_ID>[/code] zu ändern. Das scheitert aber daran, dass beide Spalten zum Primärschlüssel gehören und NOT NULLABLE COLUMN's sind.
Nach stundenlangem Herumprobieren mit Join und Unterformularen bin ich daher zu folgendem Schluß gekommen: Es geht nicht ohne Makros.
Was haltet Ihr daher von folgendem Lösungsanasatz:
Ich füge in die Mitgliedstabelle eine J/N Feld ein. Ich baue eine Formular mit einem Tabellenkontrollfeld für die Stammdatentabelle (T1) und einem Knopf für die Funktion
[code]UPDATE "T1" SET "Anwesend" = FALSE[/code]
Danach kann ich in der Tabelle alle Personen anwählen, die da waren und speichere die Einträge in der Stammdatentabelle!
Nun erzeugt mir ein zweites Makro ein temporäre Tabelle ("Temporary_Table") mit den Spalten "T_ID", "Mitgliedsnummer" und "Anwesend", in welche ich "T_ID" und "Anwesend" aus der Stammdatentabelle per INSERT einfüge. Da die Tabelle keinen Primärschlüssel besitzt und nur temporären Charakter hat kann ich nun per UPDATE das Feld "T_ID" auffüllen.
Alle drei Spalten füge ich dann mit einem
[code]INSERT "T3" ("T_ID", "M_ID", "Anwesend") SELECT "T_ID", "M_ID", "Anwesend" FROM "Temporary_Table" [/code]
in die eigentliche Anwesenheitsliste (T3) ein. Anschließend kann die temporäre Tabelle wieder gelöscht werden.