Zur Hauptseite ... Zum Onlinearchiv ... Zum Abonnement ... Zum Newsletter ... Zu den Tools ... Zum Impressum ... Zum Login ...

Achtung: Dies ist nicht der vollständige Artikel, sondern nur ein paar Seiten davon. Wenn Sie hier nicht erfahren, was Sie wissen möchten, finden Sie am Ende Informationen darüber, wie Sie den ganzen Artikel lesen können.

Kompletten Artikel lesen?

Einfach für den Newsletter anmelden, dann lesen Sie schon in einer Minute den kompletten Artikel und erhalten die Beispieldatenbanken.

E-Mail:

Gedrucktes Heft

Diesen Beitrag finden Sie in Ausgabe 6/2009.

Unser Angebot für Sie!

Lesen Sie diesen Beitrag und 500 andere sofort im Onlinearchiv, und erhalten Sie alle zwei Monate brandheißes Access-Know-how auf 72 gedruckten Seiten! Plus attraktive Präsente, zum Beispiel das bald erscheinende Buch 'Access 2010 - Das Grundlagenbuch für Entwickler'!

Diesen Beitrag twittern

Zusammenfassung

Erstellen Sie ein Formular, das gleichzeitig eine Auswahlliste und Detaildaten von Datensätzen anzeigt.

Techniken

Formulare, Listenfelder

Voraussetzungen

Access 2000 und höher

Beispieldateien

ListenfeldUndDetails.mdb

Shortlink

689

Listenfeld und Details in einem Formular

André Minhorst, Duisburg

Eine schön modular aufgebaute Benutzeroberfläche zeigt Übersichtslisten und Detailansichten in eigenen Formularen an. Manchmal will man aber der Übersicht halber beides in einem haben: Das Listenfeld bietet die wichtigsten Informationen zur Auswahl an und per Mausklick lassen sich die Details zum gewünschten Datensatz direkt daneben oder darunter betrachten. Wie Sie ein solches Formular erstellen, zeigt dieser Beitrag.

Die Daten eines Formulars, das Übersichtsliste und Details gleichzeitig anzeigt, stammen logischerweise aus der gleichen Tabelle. Diese heißt in unserer Beispieldatenbank tblPersonen und ist ganz einfach aufgebaut: Sie besteht lediglich aus dem Primärschlüsselfeld PersonID und den beiden Feldern Vorname und Nachname.

Funktionen des Formulars

Das Formular soll zunächst einmal gewährleisten, dass das Listenfeld den Nachnamen aller Datensätze der Beispieltabelle tblPersonen anzeigt und diese somit zur Auswahl anbietet. Per Mausklick auf einen der Einträge sollen die Details des gewählten Datensatzes im Formular angezeigt werden.

Dies ist der erste Schritt - im zweiten kommen wir dann zu den Bearbeitungsfunktionen. Dabei soll der Benutzer über dieses Formular neue Datensätze hinzufügen und vorhandene Datensätze bearbeiten und löschen können. Dies alles erfordert natürlich eine zeitnahe Aktualisierung, was allerdings nicht ganz trivial ist. Zunächst jedoch bauen wir das Grundgerüst des Formulars auf.

Detailformular

Das Formular ist prinzipiell genau so aufgebaut wie ein handelsübliches Detailformular. Das bedeutet, dass wir mit der Tabelle tblPersonen eine Datenherkunft festlegen und die in der Tabelle enthaltenen Felder als gebundene Felder zum Formular hinzufügen. Die Datenherkunft stellen Sie in der Entwurfsansicht über die gleichnamige Eigenschaft ein. Gleich danach können Sie die Felder der Datenherkunft aus der Feldliste (Menüeintrag Ansicht|Feldliste) in den Detailbereich des Formularentwurfs ziehen (s. Abb. 1).

pic001.png

Abb. 1: Hinzufügen gebundener Felder zum Formularentwurf

Navigation deaktivieren

Sie können mit dem Formular in der Formularansicht nun wie gewohnt Daten eingeben. Zum Anlegen eines neuen Datensatzes klicken Sie auf die entsprechende Schaltfläche der Navigationsleiste, zum Löschen markieren Sie den Datensatz über den grauen Balken am linken Rand und betätigen anschließend die Löschen-Taste.

Listenfeld hinzufügen

Anschließend fügen Sie ein Listenfeld zum Formular hinzu, das im Entwurf nun beispielsweise wie in Abb. 2 aussieht.

pic002.png

Abb. 2: Das Formular mit Listenfeld und gebundenen Steuerelementen

Für das Listenfeld legen Sie als Datensatzherkunft eine Abfrage namens qryPersonen fest, die auf der Tabelle tblPersonen basiert und wie in Abb. 3 aussieht. Die Abfrage setzt die Felder der Tabelle tblPersonen nach dem Schema <Nachname>, <Vorname> zusammen und sortiert die Ergebnisliste alphabetisch nach dem Inhalt dieses Abfragefelds.

pic003.png

Abb. 3: Diese Abfrage dient als Datensatzherkunft für das Listenfeld lstPersonen.

Damit können Sie nun das Listenfeld bestücken, dem Sie zunächst den Namen lstPersonen zuweisen. Dann stellen Sie die Eigenschaft Datensatzherkunft auf den Wert qryPersonen ein.

Damit das Listenfeld nur die Bezeichnung der Person und nicht die ID anzeigt, setzen Sie außerdem die beiden Eigenschaften Spaltenanzahl und Spaltenbreiten auf 2 beziehungsweise 0cm. Auf diese Weise wird die erste Spalte der Datensatzherkunft ausgeblendet und nur die zweite Spalte angezeigt.

Sie könnten auch die erste Spalte anzeigen, aber gewöhnlich ist ihr Wert völlig uninteressant. Sie muss aber trotzdem in der Datensatzherkunft enthalten sein, weil sie ihre Einträge eindeutig macht und somit später hilft, auch den ausgewählten Datensatz in der Detailansicht anzuzeigen.

Details anzeigen per Mausklick

Wenn Sie bereits einige Beispieldatensätze in die Tabelle eingegeben haben, sollten die gebundenen Steuerelemente des Formulars sowie das Listenfeld bereits die gewünschten Daten anzeigen (s. Abb. 4).

pic004.png

Abb. 4: Formular mit fehlender Synchronisation

Dummerweise geschieht noch nichts, wenn wir einen anderen Datensatz aus dem Listenfeld auswählen, aber es sollte eigentlich beim Öffnen des Formulars gleich der oberste Eintrag im Listenfeld markiert sein und gleichzeitig im Detail angezeigt werden.

Ersten Datensatz markieren

Kümmern wir uns also erstmal darum, dass unser Listenfeld den ersten Datensatz gleich beim Öffnen des Formulars markiert. Legen wir also eine Ereignisprozedur für das Ereignis Beim Laden des Formulars an und füllen es wie folgt:

Private Sub Form_Load()

    Me!lstPersonen = Me!lstPersonen.ItemData(0)

    Me.Recordset.FindFirst "PersonID = " _

    & Me!lstPersonen

    End Sub

Die erste Anweisung dieser Prozedur weist dem Listenfeld als Wert den Inhalt der gebundenen Spalte (also der ersten Spalte) des ersten Eintrags des Listenfelds zu, wodurch dieser markiert wird. Die zweite ruft die FindFirst-Methode des im Formular enthaltenen Recordsets auf und sorgt so dafür, dass das Formular den Datensatz mit der gleichen ID des im Listenfeld ausgewählten Eintrags anzeigt.

Ausgewählten Datensatz anzeigen

Danach kümmern wir uns um die Synchronisation zwischen Listenfeld und Detailansicht - zunächst vom Listenfeld aus. Wir verwenden die Ereigniseigenschaft Nach Aktualisierung, um nach Auswahl eines anderen Eintrags die folgende Ereignisprozedur auszulösen:

Private Sub lstPersonen_AfterUpdate()

    Me.Recordset.FindFirst "PersonID = " _

    & Me!lstPersonen

    End Sub

Die einzige Anweisung dieser Prozedur dürfte Ihnen bekannt vorkommen - sie wurde bereits weiter oben für die Auswahl des Detaildatensatzes verwendet.

Sie haben das Ende des frei verfügbaren Teils des Artikels erreicht. Lesen Sie weiter, um zu erfahren, wie Sie den vollständigen Artikel lesen und auf viele hundert weitere Artikel zugreifen können.

Sind Sie Abonnent?Jetzt einloggen ...
 

Kompletten Artikel lesen?

Einfach für den Newsletter anmelden, dann lesen Sie schon in einer Minute den kompletten Artikel und erhalten die Beispieldatenbanken.

E-Mail:

Verwandte Beiträge:

Zugriff auf Daten in Formularen und Steuerelementen

Listenfelder von A-Z

Temporäre Datensatzgruppen

Access-Optionen gestern und heute

Kontextmenüs von A bis Z

Individuelle Datenauswahl

TreeView-Elemente im Griff

Alle auf einen Streich: Suchen von Daten in Listenfeldern

Kombinations- und Listenfelder füllen

Listenfelder individuell sortieren

Steuerelemente zur Laufzeit verschieben

Sortieren und Filtern von Listenfeldern

HTML-Editor-Steuerelement

Modale Dialoge mal anders

Formulare im Blickpunkt

Zugriff auf Formulare

Unterformulare: Daten anlegen und löschen

Datenbankzugriff mit ADO

Das Optionsgruppen-Steuerelement

Tipps und Tricks

Access 2007: Bilder und Schaltflächen

Access-FAQ: Rund um Access

Anwendungsoptionen in Tabellen speichern

Lookup-Daten verwalten

Ereignisprozeduren

Formularposition speichern und wiederherstellen

Flexible Datumstextfelder

Tipps und Tricks

Registersteuerelemente von A-Z

Daten visualisieren mit HTML

Listenfeldbeschriftung per Assistent

Ereignisprozeduren implantieren

Auswahlfelder im Ribbon

TreeView-Konfigurator

Das Append-Only-Memofeld

Hierarchien visualisieren

Benutzerdefinierte Formatierung

© 2003-2015 André Minhorst Alle Rechte vorbehalten.