Base: Unterformular mit Tabellen-Steuerelement

Hallo zusammen,

ich finde meinen (Denk-)fehler nicht, vielleicht kann mir jemand helfen:

In meiner kleinen Vereinsdatenbank speichere ich die Mitglieder in einer
gleichnamigen Tabelle. Nun möchte ich für jeden Datensatz aus der
Tabelle Mitglieder mehrere Felder speichern, die jeweils das Datum
enthalten, an dem dieses Mitglied seinen Jahresbeitrag gezahlt hat. Dazu
habe ich eine zweite Tabelle "Beitragseingänge" mit der Tabelle
Mitglieder verknüpft, und zwar über eine 1:n-Beziehung, denn zu jedem
Mitglied gibt es ja (hoffentlich.... :stuck_out_tongue_winking_eye: ) jedes Jahr ein Datum, an dem
der Beitrag gezahlt wurde.

Nun möchte ich in einem Formular diese Daten eingeben. Dazu habe ich im
Formular die Namensfelder und ein Unterformular eingefügt. Das
Unterformular enthält nun ein Tabellen-Steuerelement, mit dem ich die
Daten eingeben will. Aber wenn ich eine zweite Zeile eingebe, bekomme
ich diese Fehlermeldung, die ich nicht verstehe:

Hallo Ansgar,

********************************* SQL-Status: 23000 Fehler-Code:
-104

Violation of unique constraint SYS_PK_146: duplicate value(s) for
column(s) "ID" in statement [INSERT INTO "Beitragseingänge" (
"Datum","ID") VALUES ( ?,?)] *********************************

Du hast in der Tabelle "Beitragseingänge" einen Primärschlüssel auf
das Feld "ID" gelegt. Die "ID" speist Du aus der Tabelle "Mitglieder"
über den dortigen Primärschlüssel. Dadurch erhältst Du nur eine
1:1-Beziehung.
Allerdings hat die Tabelle "Beitragseingänge" ein Feld "MitgliedsID".
Dort sollen die entsprechenden Werte übergeben werden, wenn die
Beziehungen korrekt definiert sind.

Also: Formular zum Bearbeiten öffnen, Tabellenkontrollfeld anklicken,
rechte Maustaste → Formular. Dann "Verknüpfen nach" → "MitgliedsID".
Jetzt stimmt die Beziehung.
Die bisherigen Testwerte aus der entsprechenden Tabelle kannst Du
getrost löschen.
Du kannst natürlich auch die Tabelle grundsätzlich anders definieren
und aus der MitgliedsID zusammen mit dem Datum einen Primärschlüssel
machen. Dann brauchst Du den Autowert nicht und buchst auch keinen
Beitrag zur gleichen Zeit doppelt ab.

Gruß

Robert

Hallo Robert,

vielen Dank für Deine schnelle Antwort. Ich bin erst jetzt dazu
gekommen, sie umzusetzen und natürlich funktioniert es jetzt wie gewünscht!

Ich habe immer nur auf die Beziehungen zwischen den Tabellen geachtet
und dachte nicht, dass ich beim Formular die Beziehung nochmal neu
definiere. Bei einer Abfrage wird das ja in der Design-Ansicht
angezeigt, aber beim Formular muss man schon wissen, wo man suchen muss...

Herzliche Grüße,
Ansgar