Mit Access 2010 hat Microsoft das Navigationssteuerelement eingeführt. Es erlaubt die Anzeige mehrerer Unterformulare, die durch entsprechende Schaltflächen aktiviert werden können. Die Schaltflächen können verschachtelt und sowohl horizontal als auch vertikal angeordnet werden. In diesem Beitrag zeigen wir, wie Sie dieses Steuerelement verwenden und programmieren.
Das Navigationssteuerelement ist vorrangig für den Einsatz in und die Steuerung von Webdatenbanken vorgesehen. Sie können es jedoch auch in Desktop-Anwendungen einsetzen – es bietet eine sinnvolle Variante, einfache Anwendungen komplett über die entsprechenden Navigationssteuerelemente zu steuern. Auf diese Weise brauchen Sie gegebenenfalls nur ein einziges Hauptformular zu definieren, mit dem Sie dann die übrigen Formulare als Unterformular anzeigen. Und da Webdatenbanken natürlich auch Berichte anzeigen sollen, kann das Navigationssteuerelement auch Berichte in seinem Unterformular-Steuerelement ausgeben.
Navigationssteuerelement hinzufügen
Ein Navigationssteuerelement fügen Sie über den Ribbon-Eintrag Entwurf|Steuerelemente|Navigationssteuerelement hinzu (s. Bild 2. Ein wenig Spielerei mit der Maus und der Entfernen-Taste zeigt, dass sich das Feld mit dem Text [Neues Element], der obere Teil und der untere Teil des so hinzugefügten Konstrukts markieren lassen. Die Beschriftung befindet sich in einem Navigationsschaltfläche-Element, das keinerlei über die Benutzeroberfläche einstellbare Eigenschaften aufweist. Der obere Bereich mit diesem Element ist laut Eigenschaftsfenster das eigentliche Navigationssteuerelement, der untere Bereich ist als Unterformular/-bericht gekennzeichnet.
Bild 1: Hinzufügen eines Navigationssteuerelements
Bild 2: Ein frisch erzeugtes Navigationssteuerelement
Wenn Sie das Navigationssteuerelement löschen, verschwindet das komplette Konstrukt, wenn Sie das Unterformular löschen, verschwinden ebenfalls alle Elemente, aber es verbleibt ein gestrichelter Rahmen.
Um zu untersuchen, mit welcher Art von Steuerelementen wir es hier zu tun haben, verwenden wir im Folgenden eine kleine Prozedur wie diese hier:
Public Sub FormularAnalysieren(strForm As String) Dim frm As Form Dim ctl As Control DoCmd.OpenForm strForm Set frm = Forms(strForm) For Each ctl In frm.Controls Debug.Print ctl.Name, TypeName(ctl) Next ctl End Sub
Der Aufruf erfolgt etwa mit folgender Funktion:
Public Sub NavigationssteuerelementAnalysieren() FormularAnalysieren "frmNavigationssteuerelement" End Sub
Die Prozedur öffnet das Formular (hier frmNavigationssteuerelement) und durchläuft alle enthaltenen Steuerelemente. Dabei gibt es die Namen und die Steuerelementtypen aller enthaltenen Steuerelemente aus. Für ein frisch angelegtes Navigationssteuerelement liefert die Prozedur beispielsweise diese Ausgabe:
NavigationControl7 NavigationControl NavigationButton8 NavigationButton Navigationsunterformular SubForm
Wenn Sie das Unterformular entfernen, sodass nur noch die gestrichelten Linien wie in Bild 3 übrig bleiben, liefert die Prozedur dieses Ergebnis:
Bild 3: Navigationssteuerelement nach dem Löschen des Unterformulars
EmptyCell26 EmptyCell EmptyCell27 EmptyCell
Dies sind ähnliche Steuerelemente, wie sie bereits bei Verwendung der Gestapelt– oder Tabelle-Layouts ab Access 2007 verwendet werden.
Layout entfernen
Wenn sich die Elemente des Navigationssteuerelements nun schon in einem Layout befinden (was übrigens auch das Plus-Zeichen oben links bei aktiviertem Navigationssteuerelement zeigt), können Sie den Layout-Rahmen doch sicher auch entfernen. Und genauso ist es: Markieren Sie den Layout-Rahmen durch einen Klick auf das Plus-Zeichen und wählen Sie den Ribbon-Eintrag Anordnen|Tabelle|Layout entfernen aus, und schon können Sie das Navigationssteuerelement und das Unterformularsteuerelement frei positionieren – zum Beispiel, indem Sie die Positionen vertauschen oder einen Abstand zwischen den Steuerelementen einfügen (s. Bild 4).
Bild 4: Getrennte Elemente des Navigationssteuerelements
Navigationssteuerelement bestücken
Wenn Sie nun anstelle des Texts [Neues hinzufügen] einen beliebigen anderen Text eintragen, wird es interessant: Access legt eine farbig hinterlegte Schaltfläche an und verschiebt den Eintrag [Neues hinzufügen] nach rechts.
Außerdem zeigt das Eigenschaftsfenster nun auch einige Eigenschaften für das neu hinzugefügte Steuerelement an (s. Bild 5). Und hier wird es interessant: Unter Daten finden sich nämlich nun die beiden Eigenschaften Name des Navigationsziels und WHERE-Klausel für Navigation. Mit der ersten Eigenschaft können Sie das Formular oder den Bericht benennen, der beim Anklicken der Schaltfläche angezeigt werden soll, mit der zweiten die angezeigten Daten filtern.
Bild 5: Anlegen eines ersten Eintrags im Navigationssteuerelement
Wenn Sie nun ein Formular namens frmArtikel auf Basis der Tabelle tblArtikel anlegen und der Eigenschaft Name des Navigationsziels den Eintrag frmArtikel hinzufügen, zeigt das Unterformular beim Anklicken der Schaltfläche das angegebene Formular als Unterformular an. Das geht auch noch schneller: Sie brauchen nämlich nur den Namen des anzuzeigenden Formulars oder Berichts statt des Wertes [Neues hinzufügen] anzugeben. Access füllt die Eigenschaft Name des Navigationsziels dann automatisch mit diesem Formular.
Unterformular filtern
Sie können in einem Unterformular-Steuerelement immer das gleiche Unterformular anzeigen und dieses nach verschiedenen Datensätzen filtern. Wenn Sie etwa bei einem Mausklick auf eine Navigationsschaltfläche mit dem Titel Artikel 1 den Artikel mit dem Wert 1 im Feld ArtikelID anzeigen möchten, stellen Sie die Eigenschaft WHERE-Klausel für Navigation auf den Wert ArtikelID = 1 ein. Fügen Sie eine weitere Schaltfläche hinzu, welche als Bezeichnung den Ausdruck Artikel 2, als Name des Navigationsziels ebenfalls frmArtikel und unter WHERE-Klausel für Navigation den Text ArtikelID = 2 enthält. Das entsprechende Beispiel können Sie in der Beispieldatenbank unter frmVerschiedeneArtikel einsehen (s. Bild 6).
Bild 6: Anzeige verschiedener Datensätze im gleichen Unterformular
Ausrichtung des Navigationssteuerelements
Als Nächstes werfen wir einen Blick auf die Eigenschaften des Navigationssteuerelements. Dort findet sich nur eine Eigenschaft, die nicht auch in herkömmlichen Steuerelementen vorkommt. Sie heißt Bereich und legt fest, ob die Navigationsleiste horizontal oder vertikal angezeigt werden soll (s. Bild 7).
Bild 7: Die Eigenschaft zum Einstellen der Ausrichtung der Navigationsleiste
Eine änderung in einem bestehenden horizontal ausgerichteten Navigationssteuerelement bringt allerdings nicht das erwartete Resultet: Die Navigationsleiste wird nicht etwa links vom Unterformular-Steuerelement angebracht, sondern lediglich in sich umsortiert (s. Bild 8).
Ende des frei verfügbaren Teil. Wenn Du mehr lesen möchtest, hole Dir ...
den kompletten Artikel im PDF-Format mit Beispieldatenbank
diesen und alle anderen Artikel mit dem Jahresabo