Formulare für die Dateneingabe

Lies diesen Artikel und viele weitere mit einem kostenlosen, einwöchigen Testzugang.

Formulare sind das A und O bei der Eingabe und Bearbeitung von Daten mit Access. Sie bergen jedoch ihre Tücken: Deshalb stellen wir Ihnen in loser Folge wichtige Techniken zum Erstellen von Formularen und der enthaltenen Steuerelemente vor – natürlich ohne den Einsatz von Assistenten. In diesem Rahmen möchten wir die Südsturm-Beispieldatenbank mit einer Benutzeroberfläche versehen. In der vorliegenden Ausgabe dreht sich alles um Formulare zur Detailansicht der Daten einer Tabelle.

Formulare zur Dateneingabe zeigen in der Regel einen einzigen Datensatz an – entweder einen vorhandenen oder einen leeren, neuen. Die Anordnung der Steuerelemente zur Anzeige der Felder der zugrunde liegenden Tabelle hängt dabei von unterschiedlichen Faktoren ab, die meist ergonomischer Natur sind. So sollten Sie die Steuerelemente so anordnen, dass der Benutzer die Daten möglichst intuitiv eingeben kann – im Falle von Adressdaten also etwa in der Reihenfolge, wie man es von Papier- und Online-Formularen gewohnt ist. Größere Mengen von Steuerelementen gruppiert man auf geeignete Weise, damit der Benutzer zusammenhängende Daten schnell finden kann. Bevor man jedoch zig Steuerelemente in die Fläche eines modernen Bildschirms hineinpresst, sollte man diese besser auf die Seiten eines Registersteuerelements aufteilen; verschachtelte Daten zeigt man in der Regel in verknüpften Haupt- und Unterformularen an.

In diesem Beitrag kümmern wir uns jedoch zunächst um einfache Formulare, die nur die Daten einer einzigen Tabelle oder einer Abfrage ohne weitere, in Unterformularen anzuzeigende Daten enthalten. Gewissermaßen können natürlich schon verknüpfte Daten vorhanden sein – etwa solche, die im Rahmen der Normalisierung einer Datenbank in andere Tabellen extrahiert wurden wie die Anrede, Kategorien oder Lieferanten.

Als Beispieldatenbank verwenden Sie die in [1] zur Südsturm-Datenbank umgewandelte Nordwind-Datenbank. Als einfaches Beispiel dient die Tabelle tblArtikel, deren Datensätze im in den nächsten Abschnitten beschriebenen Formular bearbeitet werden sollen.

Neues Formular an Datenherkunft binden

Nach dem Erstellen eines neuen Formulars speichern Sie dies einfach erst einmal unter dem Namen frmArtikel ab. Als Nächstes legen Sie die Datenherkunft fest – das Formular soll ja die in einer Tabelle enthaltenen Daten anzeigen. Dazu verwenden Sie die Eigenschaft Datenherkunft, die alle vorhandenen Tabellen und Abfragen anzeigt. Der Menüeintrag Ansicht/Feldliste oder ein Klick auf die entsprechende Schaltfläche zeigt nun die Liste mit den in der Datenherkunft enthaltenen Feldern an (siehe Bild 1).

pic001.tif

Bild 1: Ein leeres Formular und die Feldliste mit den Feldern der Datenherkunft

Felder hinzufügen

Es gibt mindestens zwei Wege, ein Feld zur Anzeige der in der Datenherkunft enthaltenen Daten zum Formular hinzuzufügen. Der einfachere ist das Ziehen der gewünschten Felder von der Feldliste an die passende Stelle im Detailbereich des Formulars. Im Falle von “normalen” Feldern erstellt Access dann ein Textfeld, bei Feldern, die in der Datenherkunft als Nachschlagefeld eingerichtet sind wie im vorliegenden Fall LieferantID oder KategorieID ein Kombinationsfeld und bei Ja/Nein-Feldern ein Kontrollkästchen. Manchmal ist aber nicht direkt offensichtlich, welches Steuerelement für die Anzeige des Feldes zum Einsatz kommen soll: Dann kommt die zweite Variante zum Tragen.

Nachträgliches Binden von Steuerelementen

Dabei erstellt man zunächst ein “leeres” Steuerelement und stellt erst danach die Bindung an das passende Feld der Datenherkunft her. Wollten Sie etwa die Kategorien in einem Listenfeld und die aktuelle Kategorie markiert anzeigen, müssten Sie folgendermaßen vorgehen: Legen Sie zunächst ein Listenfeld an. Weisen Sie der Eigenschaft Datensatzherkunft des Listenfeldes die Tabelle tblKategorien zu und stellen Sie die Eigenschaften Spaltenanzahl und Spaltenbreiten auf 2 und 0cm ein. Damit zeigt das Listenfeld schon einmal die vorhandenen Kategorien an. Damit nun auch noch die zum aktuellen Artikel gehörende Kategorie markiert wird, stellen Sie die Eigenschaft Steuerelementinhalt auf das Feld KategorieID ein.

Anzeigen der Daten

Wenn Sie die gewünschten Steuerelemente etwa wie in der Entwurfsansicht aus Bild 2 eingefügt und angeordnet haben, können Sie das Formular erstmals testen. Ein Wechsel in die Formularansicht sorgt auch gleich für die Anzeige des ersten Datensatzes; mit den Navigationsschaltflächen im unteren Bereich können Sie bequem zwischen den Datensätzen hin- und herwechseln. Die Aufteilung der Steuerelemente in einzelne Bereiche (hier wurde das Rahmen-Steuerelement eingesetzt) sorgt für eine bessere übersicht (siehe Bild 3).

pic002.tif

Bild 2: Ein Formular zur Dateneingabe in der Entwurfsansicht

pic003.tif

Bild 3: In der Formularansicht zeigt das Formular standardmäßig den ersten Datensatz der Datenherkunft an.

Formular hübsch machen

Die Anordnung der Steuerelemente macht schon einen recht ordentlichen Eindruck, allerdings könnten einige vorhandene Formularelemente ungeübte Benutzer verwirren. So wird zum Beispiel kein Benutzer wissen, dass man den aktuellen Datensatz mit einem Klick auf den Datensatzmarkierer am linken Rand speichern kann, und auch das Symbol zum Anlegen eines neuen Datensatzes dürfte nicht jedem bekannt sein. Schließlich will man auch mal einen Datensatz löschen: Und dazu muss man zunächst den kompletten Datensatz mit einem Klick auf den Datensatzmarkierer markieren und dann die Entfernen-Taste betätigen oder die Schaltfläche Datensatz löschen der Symbolleiste betätigen – beides scheint umständlich. Noch dazu bietet selbst der Menüpunkt Datensätze keinen Eintrag namens Löschen – das stellt Access kein gutes Zeugnis aus.

Also fügen Sie Ihre eigenen Elemente hinzu, doch zunächst müssen Sie die vorhandenen entfernen beziehungsweise ausblenden. Dies lässt sich schnell über das Eigenschaftsfenster erledigen, indem Sie die folgenden Eigenschaften auf den Wert Nein einstellen:

  • Datensatzmarkierer
  • Navigationsschaltflächen
  • Trennlinien

Ob Sie die Eigenschaft Bildlaufleisten auf Keine einstellen, bleibt Ihnen selbst überlassen: üblicherweise brauchen Sie diese nicht, wenn das Formular so klein wie das vorliegende ist. Sie sollten allerdings sicherstellen, dass der Anwender nicht die Größe des Formulars verändert, da er sonst mangels Bildlaufleisten möglicherweise Bereiche übersieht. Das ändern der Größe verhindern Sie durch Einstellen der Eigenschaft Rahmenart auf Dünn oder Dialog, wobei Letztere noch weitere spezielle Funktionen hat. Schließlich sollten Sie der Eigenschaft Zentrieren den Wert Ja zuweisen, damit das Formular beim öffnen immer in der Mitte des Access-Fensters angezeigt wird.

Stört noch der Formularname als Beschriftung: Diesen können Sie durch Hinzufügen eines Textes für die Eigenschaft Beschriftung ersetzen. Fügen Sie hier also etwa den Text Artikeldetails ein. Der aktuelle Stand des Formulars sieht schon wesentlich besser aus (siehe Bild 4), allerdings enthält es auch keine Navigationselemente mehr.

pic004.tif

Bild 4: Ein Formular ohne erkennbare Navigationsmöglichkeit

Wichtige Daten im Formularkopf anzeigen

Ein Datensatz enthält meist eines oder zumindest wenige Felder, die charakteristisch für diesen Datensatz sind und deshalb nach Wunsch hervorgehoben werden können. Im vorliegenden Fall sind das Artikelname und -ID, und diese sollen in geeigneter Weise im Formularkopf angezeigt werden. Dazu fügen Sie einfach ein gesperrtes Textfeld namens txtArtikelname hinzu, dessen Bezeichnungsfeld etwa den Text Artikeldetails enthält und dessen Steuerelementinhalt leer ist. Den weisen Sie nämlich beim Anzeigen des Datensatzes selbst zu, indem Sie für das Ereignis Beim Anzeigen eine passende Ereignisprozedur hinterlegen. Dazu markieren Sie das Textfeld, klicken doppelt in die Ereigniseigenschaft Beim Anzeigen und dann einfach auf die nun erscheinende Schaltfläche mit den drei Punkten. Der VBA-Editor öffnet sich und zeigt direkt den Prozedurrumpf an, den Sie wie folgt ergänzen:

Private Sub Form_Current()
     Me!txtArtikelname = _
Me!Artikelname End Sub

Außerdem sollten Sie den Formularkopf so formatieren, dass dieser sich vom Rest des Formulars abhebt (siehe Bild 5). Eine passende Abbildung wirkt hier übrigens immer recht angenehm.

pic005.tif

Bild 5: Der Formularkopf zeigt Informationen wie den Artikelnamen an.

Damit sich der Artikelname bei änderungen im entsprechenden Feld des Detailbereichs jeweils anpasst, fügen Sie für das Ereignis Bei änderung des Textfeldes Artikelname die folgende Routine hinzu:

Private Sub Artikelname_Change()
     Me!txtArtikelname = _
Me!Artikelname.Text End Sub

Notwendige Steuerelemente in Formularen zur Datenbearbeitung

In den vorherigen Abschnitten haben Sie erfahren, wie man die eingebauten Formular-Navigationselemente ausblenden kann. In einer der folgenden Ausgaben von Access im Unternehmen erfahren Sie, wie Sie die eingebauten Navigationselemente durch eigene ersetzen, für diesen Fall ist dies jedoch nicht nötig. Schließlich soll ein Detailformular zum Anzeigen und Bearbeiten von Daten nicht zum Blättern in den Datensätzen dienen, sondern lediglich den in einem anderen Formular ausgewählten oder einen neuen, leeren Datensatz anzeigen. Selbst das Löschen von Datensätzen sollte von einem übersichtsformular aus erfolgen. Daher soll dieses Formular nur noch zwei weitere Steuerelemente enthalten: eine Schaltfläche zum Bestätigen und eine zum Abbrechen der Eingabe (siehe Bild 6).

pic006.tif

Bild 6: Die beiden Schaltflächen im Formularfuß dienen zum Bestätigen und zum Abbrechen der Eingabe.

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

Schreibe einen Kommentar