Lies diesen Artikel und viele weitere mit einem kostenlosen, einwöchigen Testzugang.
Wie gelangt man in einem Formular intuitiv zu einem bestimmten Datensatz Wie kann man zum zuletzt angezeigten Datensatz zurückspringen Auf welche Weise lässt sich zu einem Detaildatensatz ohne Umwege ein Hauptformular öffnen Antworten auf diese Fragen versucht dieser Beitrag mit einigen trickreichen Routinen zu geben, die teilweise die Navigation auf Webseiten nachbilden.
Beispieldatenbank
Die Beispiele dieses Artikels finden Sie in der Datenbank 1511_FormNavigation.accdb
Datenmodell
Die Beispielanwendung verwendet ein Datenmodell (Bild 1), welches sich um Adressen, Kunden, Bestellungen und Artikel rankt. Dabei handelt es sich nicht um eine ausgefeilte Vertriebslösung, sondern um ein Demonstrationsobjekt, das auf die wesentlichen Teile reduziert ist. Zwei Hauptformulare speisen sich dann aus den Tabellen des Modells – so viel sei schon an dieser Stelle verraten. Das eine verwendet nur die Tabelle tblAdressen und deren Nachschlagetabellen tblAnreden, tblOrte und tblLaender.
Bild 1: Datenmodell der Beispieldatenbank mit den Beziehungen zwischen Adressen, Bestellungen und Artikeln
Das andere simuliert eine Kunden- und Bestellverwaltung, wobei hier die Adresstabelle als Kundenbasis zweckentfremdet wird. An ihr hängen die Bestellungen, Bestelldetails und Bestellartikel.
Die Verknüpfung zwischen Kundenadresse und Bestellung geschieht über die ID der Primärtabelle und KundeID der Fremdschlüsseltabelle. ähnlich sieht die Beziehung zwischen Bestellung und Bestelldetail aus. Die Tabelle tblArtikel ist hingegen eher wieder eine Nachschlagetabelle. Zu einer Kundenadresse kann es also mehrere Bestellungen geben und zu jeder Bestellung wiederum mehrere Bestellartikel in den Bestelldetails. Damit die Artikeltabelle etwas aufgepeppt wird, verweist ein Feld Herkunftsland zusätzlich auf die Tabelle tblLaender.
Adressen verwalten
über das Formular frmAdressen in Bild 2 werden nun die Adressen angezeigt und bearbeitet. Es enthält Steuerelemente für alle Felder der Tabelle, wobei die drei Nachschlagefelder IDAnrede, IDOrt und IDLand als Kombinationsfelder daher kommen und sich in ihrer Datenherkunft direkt aus den jeweiligen Tabellen speisen. Gebunden sind diese Felder an die erste unsichtbare Spalte ID der Detailtabellen. Die Datenquelle des Formulars selbst ist ebenfalls direkt die Tabelle tblAdressen. Soweit weist das Formular keinerlei Besonderheiten auf.
Bild 2: Das Adressformular frmAdressen der Beispieldatenbank
Zusätzlich sind ist aber ein Unterformular sfrmKinder integriert, welches ebenfalls auf der Adresstabelle basiert, jedoch deren Felder über eine Abfrage auf Nachname und Vorname beschränkt. Das sollen Kinder des angezeigten Hauptdatensatzes sein. Die Verbindung kommt über das unscheinbare Feld ParentID der Tabelle zustande. Ein Datensatz, der einen Wert in diesem Feld enthält, verweist damit auf den Elterndatensatz mit der verwiesenen ID. In der letzten Ausgabe von Access Basics lernten Sie diese Methode bereits im Beitrag zu Rekursiven Tabellen kennen. Beim Navigieren durch die Hauptdatensätze des Formulars werden also im Unterformular die zugehörigen Kinder angezeigt.
Es gibt nun drei Spezialelemente im Formular. Zum einen listet eine Combobox rechts oben im Kopfbereich alle Adressen namentlich auf. Durch Auswahl eines Eintrags gelangen Sie zum entsprechenden Adressdatensatz, wie Bild 3 demonstriert. Deshalb ist die Navigationsleiste des Formulars auch ausgeblendet. Denn diese ist in den meisten Fällen ohnehin überflüssig. Wer sucht Datensätze schon über Vor- und Zurücksteppen oder über die Eingabe eines Zahlenwerts heraus
Ende des frei verfügbaren Teil. Wenn Du mehr lesen möchtest, hole Dir ...
Testzugang
eine Woche kostenlosen Zugriff auf diesen und mehr als 1.000 weitere Artikel
diesen und alle anderen Artikel mit dem Jahresabo