Formulare [basics]: Probleme mit Form und Subform

Nutzen wir ein Haupt- und ein Unterformular zur Darstellung von Daten aus 1:n- oder m:n-Beziehungen, kann es zu unerwarteten Problem kommen: Plötzlich verschwinden Datensätze aus dem Unterformular oder es tauchen später Datensätze in der Tabelle mit dem an der Beziehung beteiligten Fremdschlüsselfeld auf, die keinen Wert in diesem Feld haben. In beiden Fällen kann es sein, dass eine unbewusste Fehlbedienung des Gespanns aus Haupt- und Unterformular verantwortlich ist. In diesem Artikel schauen wir uns zunächst einmal an, wie wir diese Probleme reproduzieren können und schauen uns dann einen praktischen Lösungsansätze an.

Beispieldatenbank

Die Beispiele dieses Artikels findest Du in der Datenbank FormulareBasics_Probleme-MitFormUndSubform.accdb.

Probleme mit Haupt- und Unterformular

Das Problem, das wir hier vorstellen wollen, tritt beispielsweise folgenden Konstellationen auf:

  • Wenn wir im Haupt- und Unterformular die Tabellen einer 1:n-Beziehung so abbilden, dass die Tabelle im Unterformular das Fremdschlüsselfeld der Beziehung enthält.
  • Wenn wir im Haupt- und Unterformular eine m:n-Beziehung abbilden, was letztlich auch wieder der Abbildung einer 1:n-Beziehung entspricht.

Wir gehen als davon aus, dass im Unterformular die Daten einer Tabelle abgebildet werden wie zum Beispiel die Tabelle tblAusleihen, die über das Fremdschlüsselfeld LeserID mit der Tabelle tblLeser im Hauptformular verknüpft ist.

Dies sieht in der Entwurfsansicht wie in Bild 1 aus.

Formular-Entwurf unseres Beispielformulars

Bild 1: Formular-Entwurf unseres Beispielformulars

Voraussetzung dafür, dass die Darstellung funktioniert, ist die Verknüpfung der Daten der beiden Tabellen aus Haupt- und Unterformular auch über die beiden Eigenschaften Verknüpfen von und Verknüpfen nach des Unterformular-Steuerelements. Damit kommen wir zu dem potenziellen Problem: Wenn wir nun im Hauptformular einen neuen, leeren Datensatz anlegen, zeigt auch das Unterformular logischerweise noch keine Datensätze an (siehe Bild 2).

Haupt- und Unterformular mit einem neuen, leeren Datensatz

Bild 2: Haupt- und Unterformular mit einem neuen, leeren Datensatz

Wenn wir nun die eigentlich vorgesehene Reihenfolge einhalten und zuerst einen Datensatz im Hauptformular anlegen, wird dieser gespeichert, sobald wir zum Unterformular wechseln und somit das Hauptformular verlassen.

Dies führt wiederum dazu, dass im Fremdschlüsselfeld LeserID des Unterformulars automatisch der Primärschlüsselwert des Datensatzes im Hauptformular eingetragen wird.

Ende des frei verfügbaren Teil. Wenn Du mehr lesen möchtest, hole Dir ...

den kompletten Artikel im PDF-Format mit Beispieldatenbank

diesen und alle anderen Artikel mit dem Jahresabo

Schreibe einen Kommentar