Haupt- und Unterformular synchronisieren

10.09.2019

Ein Formular dient bei Access oft zur Anzeige von Daten, die miteinander in Beziehung stehen. Das typische Beispiel ist die Kombination aus Firmen und Ansprechpartnern. Hier sollen meistens nur die Felder einer Firma und darunter eine Liste der Ansprechpartner dieser Firma angezeigt werden. Bei dieser Konstellation handelt es sich um eine klassische 1:n-Beziehung, die bei Access optimal über die Kombination eines Haupt- und eines Unterformulars angezeigt wird.

Formulare mit Bezug

Solche Formulare sind mit dem Formularassistenten blitzschnell angelegt. Das Hauptformular zeigt stets die 1-Seite und das Unterformular die N-Seite der Beziehung an. Im Beispiel zeigt das Hauptformular also die Felder einer Firma und das Unterformular die Felder der Ansprechpartner dieser Firma an. Ein Unterformular wird übrigens erst dadurch zum Unterformular, dass es in ein anderes Formular eingebettet wird. Ansonsten haben Unterformulare keine spezielle Kennzeichnung.

Damit der Anwender in den Datensätzen von Haupt- und Unterformular gezielt blättern kann, stattet der Formularassistent beide Formulare mit eigenen Navigationsschaltflächen aus. Auf dem Hauptformular ist außerdem reichlich Platz, um weitere Schaltflächen für spezielle Funktionen anzulegen. Hierbei ist der Schaltflächenassistent von Access behilflich.

Die Kombination aus Hauptformular und Unterformular bietet einen guten Überblick

Haupt- steuert Unterformular

Aber wie lassen sich im Hauptformular Schaltflächen anlegen, die das Unterformular beeinflussen? Der übliche Weg, um beispielsweise auf einen anderen Datensatz Einfluss zu nehmen, ist die Verwendung der Anweisung DoCmd.GoToRecord. Wird diese Anweisung in einer Ereignisprozedur des Hauptformulars aufgerufen, verändert Sie immer den aktuellen Datensatz im Hauptformular. Damit sich diese Anweisung auf das Unterformular auswirkt, müssen Sie es zunächst mit der Anweisung DoCmd.GoToControl "subfrmAdressen" aktivieren. Um dafür zu sorgen, dass die Anweisung richtig funktioniert, müssen Sie den Text subfrmAdressen durch den Namen Ihres Unterformulars ersetzen. Wenn Sie das Unterformular von einem ganz anderen Formular aus steuern wollen, müssen Sie zusätzlich das Formular angeben, in dem sich das Unterformular befindet:

DoCmd.SelectObject acForm, "frmAdressen"
DoCmd.GoToControl "subfrmAdressen"
DoCmd.GoToRecord Record:=acFirst

Die, hier zum Download bereitgestellte, Beispieldatenbank zeigt, wie Sie den aktuellen Datensatz in einem Unterformular per Fernsteuerung verändern können.

Tags:

Dienstleistungen

Als starker Partner an Ihrer Seite unterstützen wir Sie in folgenden Breichen:

Access-Programmierung

Benötigen Sie Unterstützung bei der Programmierung von Access-Anwendungen? Wir bieten die gesamte Bandbreite von der Access-Programmierung auf Stundenbasis bis zur Durchführung eines Software-Projektes als Auftragsarbeit an. Kontaktieren Sie uns für ein kostenloses Erstgespräch.

Software-Beratung

Haben Sie ein Software-Projekt und Sie wissen nicht, ob Access die richtige Plattform ist? Wir haben über 20 Jahre Erfahrung beim Erstellen von Windows-, Web und mobilen Anwendungen. Kontaktieren Sie uns für eine kostenlose Erstberatung.