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/2012.

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

Lernen Sie praktische Einsatzmöglichkeiten für das Navigationssteuerelement kennen.

Techniken

Formulare, Navigationssteuerelement, VBA

Voraussetzungen

Access 2010 und höher

Beispieldateien

NavigationssteuerelementPraxis.accdb

Shortlink

www.access-im-unternehmen.de/864

Navigationssteuerelement in der Praxis

André Minhorst, Duisburg

Das Navigationssteuerelement ermöglicht ein einfaches Handling von Unterformularen. Sie können damit etwa immer das gleiche Formular als Unterformular anzeigen und die Daten je nach gedrückter Navigationsschaltfläche filtern - beispielsweise um Artikel nach Kategorien zu sortieren oder nach dem Alphabet zu filtern. Dieser Beitrag zeigt, wie Sie eine solche Lösung erstellen - aber auch, wie Sie sich die Arbeit beim Erstellen des Formulars per VBA vereinfachen können.

Wenn Sie beispielsweise ein Navigationssteuerelement erstellen, mit dem Sie die Artikel oder Kunden in einer Datenbank nach dem Alphabet filtern möchten, ist erstmal umfangreiche Handarbeit gefragt: Immerhin wollen zumindest 26 Schaltflächen für den Aufruf eines Formulars mit den entsprechenden Filterkriterien erstellt werden.

Da diese Aufgabe eines Access-Entwicklers unwürdig ist, werden wir diese natürlich per VBA automatisieren. Um dies zu erledigen, sind ein paar Grundlagen erforderlich, die wir in einem einfachen Beispiel betrachten.

Ziel ist es, ein einfaches Navigationssteuerelement mit zwei Einträgen in der ersten Ebene und jeweils zwei Einträgen in der zweiten Ebene zu erstellen. Dieses sieht nach der Fertigstellung wie in Abb. 1 aus.

pic001.png

Abb. 1: Navigationssteuerelement mit verschachtelten Elementen

Die zur Erstellung dieses Formulars verwendete Prozedur nutzt eine Hilfsfunktion, die sich nur um das reine Formular kümmert. Diese heißt NeuesFormular, erwartet den Namen des zu erstellenden Formulars und sieht wie folgt aus:

Public Function NeuesFormular(strForm As String)

    Dim strFormTemp As String

    Dim frm As Form

    On Error Resume Next

    DoCmd.Close acForm, strForm

    DoCmd.DeleteObject acForm, strForm

    On Error GoTo 0

    Set frm = Application.CreateForm

    strFormTemp = frm.Name

    DoCmd.Close acForm, frm.Name, acSaveYes

    DoCmd.Rename strForm, acForm, strFormTemp

End Function

Die Funktion schließt zunächst ein eventuell vorhandenes Formular gleichen Namens und löscht dieses aus der Datenbank. Danach erstellt sie mit der CreateForm-Methode ein Formular-Objekt und speichert den Namen dieses neuen Formulars in der Variablen strFormTemp zwischen. Dies ist nötig, da das Formular im geöffneten Zustand nicht umbenannt werden kann. Also schließt die Funktion das Formular und benennt es dann mit der Rename-Funktion um. Anschließend startet die eigentliche Erstellung des verschachtelten Navigationssteuerelements. Die dazu verwendete Prozedur finden Sie in Listing 1.

Listing 1: Erstellen eines Formulars mit verschachtelter Navigation

Public Sub FormularErstellen()

    Dim frm As Form

    Dim strForm As String

    Dim ctlNavigation As NavigationControl

    Dim ctlSubnavigation As NavigationControl

    Dim ctlButton As NavigationButton

    strForm = "frmNaviPerVBA"

    NeuesFormular strForm

    DoCmd.OpenForm strForm, acDesign

    Set frm = Forms(strForm)

    Set ctlNavigation = Application.CreateControl(strForm, acNavigationControl, acDetail)

    ctlNavigation.Name = "nav"

    Set ctlSubnavigation = Application.CreateControl(strForm, acNavigationControl, acDetail)

    ctlSubnavigation.Name = "navSub"

    Set ctlButton = Application.CreateControl(strForm, acNavigationButton, acDetail, ctlNavigation.Name)

    With ctlButton

        .Name = "nab1"

        .Caption = "Button 1"

    End With

    Set ctlButton = Application.CreateControl(strForm, acNavigationButton, acDetail, ctlSubnavigation.Name)

    With ctlButton

        .Name = "nab11"

        .Caption = "Button 1-1"

    End With

    Set ctlButton = Application.CreateControl(strForm, acNavigationButton, acDetail, ctlSubnavigation.Name)

    With ctlButton

        .Name = "nab12"

        .Caption = "Button 1-2"

    End With

    Set ctlButton = Application.CreateControl(strForm, acNavigationButton, acDetail, ctlNavigation.Name)

    With ctlButton

        .Name = "nab2"

        .Caption = "Button 2"

    End With

    Set ctlButton = Application.CreateControl(strForm, acNavigationButton, acDetail, ctlSubnavigation.Name)

    With ctlButton

        .Name = "nab21"

        .Caption = "Button 2-1"

    End With

    Set ctlButton = Application.CreateControl(strForm, acNavigationButton, acDetail, ctlSubnavigation.Name)

    With ctlButton

        .Name = "nab22"

        .Caption = "Button 2-2"

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:

© 2003-2015 André Minhorst Alle Rechte vorbehalten.