Das Datenmodell steht – jetzt geben wir ihm eine Oberfläche. Wir beginnen mit den Artikeln und bauen dafür ein Gespann aus zwei Formularen, das sich durch die ganze Reihe ziehen wird: eine Übersicht, die alle Artikel auflistet und durchsuchbar macht, und ein Detailformular, das einen einzelnen Artikel zum Bearbeiten anzeigt. Der Reiz liegt im Zusammenspiel der beiden – und in einem kleinen Trick, mit dem das Detailformular der Übersicht mitteilt, ob überhaupt etwas gespeichert wurde. Wie das gelingt, liest Du in diesem Artikel.
Beispieldatenbank
Die Beispiele dieses Artikels findest Du in der Datenbank Rechnungsverwaltung_ArtikeluebersichtUndDetailformular.accdb. Sie baut auf dem Datenmodell der vorherigen Artikel auf.
Die Beschreibungen in diesem Artikel setzen auf der Datenbank aus dem Artikel
Die Idee: Übersicht und Detail
Bevor wir etwas anlegen, lohnt ein Blick auf das Gesamtbild. Warum überhaupt zwei Formulare?
Das Übersichtsformular zeigt viele Artikel auf einmal – eine Liste, in der man sucht, blättert und den richtigen auswählt. Es dient dem Finden. Das Detailformular zeigt genau einen Artikel mit allen Feldern – großzügig angeordnet, zum bequemen Eingeben und Ändern. Es dient dem Bearbeiten.
Diese Trennung ist ein bewährtes Muster: Die Übersicht bleibt aufgeräumt, weil sie nur das Nötigste je Zeile zeigt, und das Detailformular hat Platz für alle Einzelheiten. Der Benutzer wählt in der Übersicht einen Artikel und öffnet ihn zum Bearbeiten – oder legt über eine Schaltfläche einen neuen an.
Das Zusammenspiel zeigt Bild 1: die Übersicht mit ihrer Liste und den Schaltflächen, davor das aufgerufene Detailformular.
Bild 1: Übersicht und Detailformular im Zusammenspiel
Das Übersichtsformular anlegen
Wir legen über Erstellen|Formulare|Formularentwurf ein neues, leeres Formular an und speichern es unter dem Namen frmArtikeluebersicht. Es soll selbst keine Daten anzeigen – die Liste übernimmt gleich ein Unterformular. Das Hauptformular ist nur der Rahmen, der die Liste und die Bedienelemente aufnimmt.
Weil das Hauptformular ungebunden ist, brauchen wir einige seiner Standardelemente nicht. Wir stellen im Eigenschaftenblatt Datensatzmarkierer und Navigationsschaltflächen auf Nein, ebenso die Bildlaufleisten. Damit es beim Öffnen mittig erscheint, setzen wir Automatisch zentrieren auf Ja.
Das Unterformular mit der Artikelliste
Die eigentliche Liste zeigt ein Unterformular in der Datenblattansicht. Wir erstellen ein zweites Formular, binden es an die Tabelle tblArtikel und ziehen die Felder hinein, die in der Übersicht nützlich sind: Artikelnummer, Bezeichnung, EinzelpreisNetto, Umsatzsteuersatz und EinheitID. Seine Standardansicht stellen wir auf Datenblatt und speichern es als sfmArtikeluebersicht (siehe Bild 2).
Bild 2: Formular-Entwurf unseres Beispielformulars
Hier sehen wir einen Effekt, den wir im Artikel Tabellen [basics]: Arbeit sparen mit Beschriftungen (www.access-basics.de/718) beschreiben.
Wir haben für die einzelnen Tabellenfelder Beschriftungen hinterlegt, die statt der Feldnamen beim Hinzufügen der Felder aus der Feldliste als Text für die Bezeichnungsfelder verwendet wird.
Unser exklusives Angebot für Dich!
(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.
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 →![Access [basics]](https://access-basics.de/wp-content/uploads/2021/02/logo400.png)

