Problem mit Unterformular bei Access

Hallo !
Habe 2 Tabellen (Patienten und Befunde) über eine 1:m-Beziehung verknüpft. Dabei habe ich eine Verknüpfungstabelle mit zwei Spalten angelegt: Eine übernimmt den Primärschlüssel „Patientencode“ (Autowert) aus der Tabelle Patienten, die andere Spalte erhält den Primärschlüssel „Untersuchungscode“ aus der Tabelle Befunde. Die Befunde, es sind ja mehrere pro Patient, sollen über ein Unterformular, welches in das Formular „Patienten“ eingebettet ist, eingegeben werden. So weit so gut. Wenn ich aber über das Unterformular Daten eingebe und dann zum nächsten
Datensatz springen will, kommt folgende Meldung:

„Die von Ihnen vorgenommenen Änderungen an der Tabelle konnten nicht vorgenommen werden, da der Index, Primärschlüssel oder die Beziehung mehrfach vorkommende Werte enthalten würde. (Fehler 3022)“

Was zum Teufel soll das nun wieder ? Was habe ich falsch gemacht ?
Dieses Mist-Programm macht mich noch wahnsinnig !!! :frowning:

Wäre schön, wenn hier noch jemand einen Tipp hätte.
Danke !

Gruß Kai

Hallo !

Morgen!

Habe 2 Tabellen (Patienten und Befunde) über eine
1:m-Beziehung verknüpft. Dabei habe ich eine
Verknüpfungstabelle mit zwei Spalten angelegt: Eine übernimmt
den Primärschlüssel „Patientencode“ (Autowert) aus der Tabelle
Patienten, die andere Spalte erhält den Primärschlüssel
„Untersuchungscode“ aus der Tabelle Befunde.

Für was bitte die Verknüpfungstabelle? Die Tabellen Patienten und Befunde stehen in einer 1:n-Beziehung zueinander (1 Patient: mehrere Befunde). Dazwischen wird keine zusätzliche Tabelle benötigt.
Oder besteht ein Befund aus mehreren Datensätzen?

Die Befunde, es
sind ja mehrere pro Patient, sollen über ein Unterformular,
welches in das Formular „Patienten“ eingebettet ist,
eingegeben werden. So weit so gut. Wenn ich aber über das
Unterformular Daten eingebe und dann zum nächsten
Datensatz springen will, kommt folgende Meldung:

„Die von Ihnen vorgenommenen Änderungen an der Tabelle konnten
nicht vorgenommen werden, da der Index, Primärschlüssel oder
die Beziehung mehrfach vorkommende Werte enthalten würde.
(Fehler 3022)“

Strukturfehler von oben macht sich hier bemerkbar. Jetzt ist die Tabellenstruktur von „Patienten“ und „Befunde“ jedoch nicht bekannt…
Ich weiss nicht, was du hier mehrfach zu speichern versuchst, aber nach der Fehlermeldung wird ein bereits vorhandener Wert erneut verwendet.

Was zum Teufel soll das nun wieder ? Was habe ich falsch
gemacht ?
Dieses Mist-Programm macht mich noch wahnsinnig !!! :frowning:

Mist-Programm nicht, nur sehr komplex!

Wäre schön, wenn hier noch jemand einen Tipp hätte.
Danke !

Dazu solltest du mal etwas genauer deine Tabellen beschreiben und welche Werte wo gespeichert werden sollen… (also die wichtigen Felder der Tabellen und ein Beispiel, damit man das nachvollziehen kann!)

Gruß Kai

CU, Jan

Hallo, ich nochmal…

Für was bitte die Verknüpfungstabelle? Die Tabellen Patienten
und Befunde stehen in einer 1:n-Beziehung zueinander (1
Patient: mehrere Befunde). Dazwischen wird keine zusätzliche
Tabelle benötigt.
Oder besteht ein Befund aus mehreren Datensätzen?

Ja. Ich versuche es nochmal anschaulicher zu erklären:

Tabelle „Patienten“ enthält:

  • Patientencode (AutoWert als Primärschlüssel für eindeutige Kennung)
  • Name
  • Vorname
  • Geburtsdatum
  • Anschrift

Mit dieser Tabelle soll die Tabelle „Befunde“ verknüpft werden.
In dieser Tabelle sind folgende Angaben gespeichert:

  • Untersuchungscode (AutoWert, als Primärschlüssel für Eindeutigkeit)
  • Untersuchungsdatum
  • Aktuelle Beschwerden
  • Laborwerte
  • Ultraschall-Befund
  • Röntgen-Befund etc.

Nun hat ja jeder Patient (= 1 Datensatz in Tabelle „Patienten“) mehrere Befund-Datensätze, da er ja an mehreren Tagen untersucht
wurde. Wenn ich also einen Patienten aufrufe, so möchte ich in
den Befund-Datensätzen „blättern“ können wie in einer Krankenakte.
Analog zur Beispieldatenbank Nordwind, wo eine ähnliche Situation
mit Kunden und Bestellungen vorliegt, habe ich über eine Verknüpfungstabelle eine 1:m-Beziehung aufgebaut.

Die Verknüpfungstabelle enthält die beiden Primärschlüssel, also
„Patientencode“ und „Untersuchungscode“.

In der Nordwind-Datenbank funktioniert so eine Verknüpfung, bei mir
gibt es aber die besagte Fehlermeldung.

Was ist hier zu tun ?

Gruß Kai

Hallo, ich nochmal…

Moin.

Ja. Ich versuche es nochmal anschaulicher zu erklären:

Tabelle „Patienten“ enthält:

  • Patientencode (AutoWert als Primärschlüssel für eindeutige
    Kennung)
  • Name
  • Vorname
  • Geburtsdatum
  • Anschrift

Mit dieser Tabelle soll die Tabelle „Befunde“ verknüpft
werden.
In dieser Tabelle sind folgende Angaben gespeichert:

Schön, da fehlt das Fremdschlüsselfeld, mit dem du dir die dritte Tabelle schenken kannst…

  • Untersuchungscode (AutoWert, als Primärschlüssel für
    Eindeutigkeit)
  • Patientencode (Primärschlüssel aus Tabelle Patienten als Felddatentyp Zahl)
  • Untersuchungsdatum
  • Aktuelle Beschwerden
  • Laborwerte
  • Ultraschall-Befund
  • Röntgen-Befund etc.

Nun hat ja jeder Patient (= 1 Datensatz in Tabelle
„Patienten“) mehrere Befund-Datensätze, da er ja an mehreren
Tagen untersucht
wurde. Wenn ich also einen Patienten aufrufe, so möchte ich in
den Befund-Datensätzen „blättern“ können wie in einer
Krankenakte.
Analog zur Beispieldatenbank Nordwind, wo eine ähnliche
Situation
mit Kunden und Bestellungen vorliegt, habe ich über eine
Verknüpfungstabelle eine 1:m-Beziehung aufgebaut.

Die Verknüpfungstabelle enthält die beiden Primärschlüssel,
also
„Patientencode“ und „Untersuchungscode“.

und ist in diesem „einfachen“ Fall überflüssig (um nicht von Speicherverschwendung zu reden)…

In der Nordwind-Datenbank funktioniert so eine Verknüpfung,
bei mir
gibt es aber die besagte Fehlermeldung.

Was ist hier zu tun ?

Gruß Kai

Wenn du in der Tabelle Befunde ein Zahlenfeld zur Aufnahme des Fremdschlüssels einfügst, in dem dann der Patientencode direkt gespeichert wird, lässt sich schon mit dieser einen Tabelle feststellen, zu welchem Patienten welche Datensätze gehören.
Du kannst dann nach Belieben (manche stehen da drauf!) eine 1:n Beziehung zwischen deinen beiden Tabellen Patienten und Befunde (über das Feld Patientencode) erstellen.

Im Formular muss dann für das Unterformular-steuerelement (Das Fenster, in dem das Unterformular dargestellt wird!) die Eigenschaften „Verknüpfen von“ und „Verknüpfen nach“ auf die Tabellenfelder „Patientencode“ angepasst werden. Dann zeigt das Unterformular nur noch die Datensätze, die zum aktuellen DS im Hauptformular gehören.
CU, Jan

Hallo Jan !

Es klappt noch immer nicht. Wie erstelle ich denn einen Fremdschlüssel ? Beschreibe das bitte mal etwas ausführlicher.

Danke!
Gruß Kai

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo Jan !

Es klappt noch immer nicht. Wie erstelle ich denn einen
Fremdschlüssel ? Beschreibe das bitte mal etwas ausführlicher.

Danke!
Gruß Kai

Ein Fremdschlüssel ist lediglich ein Feld, in dem der hinterlegte Wert auf einen Primärschlüssel einer anderen Tabelle hinweist.
Ergo ist das ein ganz gewöhnliches Feld in dieser Tabelle. Fremdschlüssel wird das Feld nur genannt, weil es zu Verknüpfung mit einer „fremden“ (anderen) Tabelle genutzt wird.