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.

Access [basics]

Unser exklusives Angebot für Dich!

Access im Unternehmen
7,90 € im Monat*

(Das Abo ist jederzeit monatlich kündbar)

Hier geht’s weiter →

Die ersten 4 Wochen kostenlos testen – voller Zugriff auf alle Artikel, vollständigen Code und Beispieldatenbanken. Kein Risiko: Wenn es nicht passt, kündigst Du einfach innerhalb der ersten vier Wochen.

PayPal VISA Mastercard SEPA
Kostenlos & unverbindlich

Oder hast Du eine konkrete Frage zu Deiner eigenen Access-Anwendung?

Vielleicht stellt Deine Anwendung Dich vor eine Herausforderung, zu der Du bisher keine Lösung findest. Schlechte Performance, kein ausreichender Zugriffsschutz, Du bist unsicher über Dein Datenmodell oder Dein Code liefert unerklärliche Fehler?

In unserem kostenlosen Access-Audit schaut sich André Minhorst persönlich gemeinsam mit Dir Deine Lösung per Zoom an – und zeigt Dir, wo Datenmodell, VBA-Code, Ergonomie und Sicherheit Optimierungspotenzial bieten.

Jetzt kostenloses Access-Audit anfordern →