Unterformular verursacht Primärschlüssel-Verletzung
DaHelg
Gesendet: 10.11.11 18:39
Betreff: Unterformular verursacht Primärschlüssel-Verletzung


Moin Leute,
ich versuche gerade ein Formular mit einem Unterformular in Access 2010 zu erstellen. Es geht darum, dass es viele Patienten gibt, wobei jedem Patient n Therapien zugeordnet werden dürfen. Dabei kann es vorkommen, dass der Patient dieselbe Therapie in unterschiedlichen Zeiträumen vorgenommen hat (siehe unten unter 2.).
Folgende Situation:
Es gibt 3 Tabellen:
1. Patient, wo tatsächlich nur ID-Nummern des Patienten drin stehen (Typ long).
2. Verbindungstabelle zwischen Patient und Therapie, in der die Felder fiPatient (Fremd-ID aus 1, Typ ist long), fiTherapie (Fremd-ID aus 3, Typ ist long) und datDatumBeginn (Enthält das Datum des Therapiebeginns, Typ ist Datum). ALLE 3 Felder sind dort der zusammengesetzt Primärschlüssel. D.h. ein und derselbe Patient kann dieselbe Therapie zu verschiedenen Daten begonnen haben... Zusätzlich gibt es noch weitere Felder, die aber eigentlich für das Problem bedeutungslos sein sollten, da sie optional ausgefüllt werden dürfen.
3. Therapie, wo alle möglichen Therapiearten drin stehen...

Ich hoffe, das beschreibt die Struktur ausreichend, andernfalls hätte ich auch noch ein ER-Diagramm...

Das Problem:
Ich möchte ich ein Formular erstellen, dass es dem Benutzer ermöglicht, Einträge in die Verbindungstabelle zu machen.
Um dies wegen der teilweise großen Anzahl an Therapien pro Patient nicht so extrem mühsam zu machen, wollte ich gern noch ein Unterformular einbinden, dass immer alle Therapien von dem im Hauptformular gewählten Patienten anzeigt. Ich habe das jetzt über ein Endlosformular machen wollen, was prinzipiell gut ginge, allerdings gibt es jetzt ein Problem, wenn ich Therapien für einen neuen Patienten hinzufügen möchte...
Ich wähle dann im Hauptformular das Feld fiPatient und lasse dort alle Patienten aus der Patiententabelle anzeigen. dann klicke ich ins Unterformular, dass über dieses fiPatient Feld verbunden ist. In dem Moment kommt die Fehlermeldung "Null-Wert in Index oder Primärschlüssel nicht möglich"... Liegt wohl daran, dass halt im Hauptformular schon versucht wird einen neuen Datensatz in der Verbindungstabelle anzulegen, was natürlich nicht geht, da ja noch die beiden anderen Schlüsselfelder fehlen...
Hat jemand eine Idee, ich das möglichst einfach umgehen kann? Nach Möglichkeit ohne VBA-Code... Es sei denn, es ist damit halt deutlich leichter und ich kann etwas einfach per Copy-Paste einfügen...

Vielen Dank im Voraus. Wenn noch Infos fehlen, schreibt einfach kurz.

Kennt eigentlich irgendjemand ein gutes Tutorial, wie man eine Access Datenbank wirklich "benutzerfreundlich" bzw. gebrauchstauglich bekommt? Also mit ich denke da an Sachen mit Formularen, Optionsgruppen, usw.... Irgendwie kratzen die meisten Bücher und Tutorials in diesem Bereich sehr an der Oberfläche. Und anderswo wird gleich gesagt, man muss unbedingt VBA beherrschen... Ich brauche das aber jetzt und kann nicht erst 2 Wochen VBA vollzeit lernen...


LG DaHelg
Top of the page Bottom of the page