WklNavBar
WklNavBar ist die Navigationsleiste für Verwaltungsoberflächen in Access: wahlweise eine schmale
Symbolspalte oder eine breite Leiste mit Beschriftungen und Gruppenüberschriften, dazu Einträge am
oberen und unteren Rand, Zähler-Badges und genau ein ausgewählter Eintrag. Wählt der Benutzer einen
Eintrag, reagiert die Anwendung im Ereignis Navigate – meist, indem sie in einem Unterformular ein
anderes Formular anzeigt. Alternativ liest die Leiste ihre Einträge samt Seiten aus einer Tabelle
und zeigt die Seiten selbst an.
Erste Schritte
Häufige Aufgaben
Schaubild
+- frmShell ---------------------------------------------------------------+
| Formularkopf: Titel, Suche |
+-----------------------+-+------------------------------------------------+
| [=] [1] |#| sfPage [5] |
| (H) Start |#| |
| DATEN v |#| |
| |(T) Tabellen 4 |#| die Seite des gewählten Eintrags |
| (S) Sitzungen (3) [2]|#| |
| BETRIEB > |#| |
| |#| |
|-----------------------|#| |
| (*) Einstellungen [3] |#| |
+-----------------------+-+------------------------------------------------+
[4]
+---+ Symbolspalte (Mode = compact) +---+---------------------+
|[=]| |[=]| (H) Start | Überlagerung (Pinned = False):
|(H)| |(H)| DATEN | die aufgeklappte Leiste liegt
|(T)4 |(T)| (T) Tabellen 4 | über der Seite, bis ein Eintrag
|(S)3 |(S)| ... | gewählt ist [6]
+---+ +---+---------------------+
| Bereich | Bedeutung |
|---|---|
| 1 | Umschaltfläche: wechselt zwischen aufgeklappter Leiste und Symbolspalte (ShowToggle); dasselbe bewirkt ToggleShortcut (Standard: Strg+B) von jeder Stelle des Formulars aus |
| 2 | Gruppenüberschrift (klappt ihre Einträge zu), Einträge mit Symbol und Beschriftung; ein Akzentbalken markiert den ausgewählten Eintrag, Badges zeigen eine Zahl oder einen Punkt |
| 3 | Einträge am unteren Rand (Einstellungen, Hilfe): ohne Gruppe und auch beim Blättern immer sichtbar |
| 4 | Trennleiste des WklDockLayout, in dem die Leiste einen Bereich bildet: Hier zieht der Benutzer die Leiste breiter oder schmaler |
| 5 | Die Seite: ein Unterformular, dessen SourceObject die Anwendung in Navigate setzt; bei Einträgen mit Unterformular-Ziel (TargetControl) übernimmt das die Leiste selbst |
| 6 | Nicht angeheftet belegt die Leiste nur die Breite der Symbolspalte; aufgeklappt legt sie sich über die Seite |
Wichtige Funktionen
- Drei Modi: aufgeklappt (Symbole, Beschriftungen, Gruppenüberschriften), als 48 Pixel breite Symbolspalte oder ausgeblendet. Der Benutzer wechselt über die Umschaltfläche oder
ToggleShortcut;ModeChangedmeldet jeden Wechsel. - Angeheftet oder überlagernd (
Pinned): Angeheftet steht die aufgeklappte Leiste in voller Breite neben der Seite. Nicht angeheftet bleibt sie so schmal wie die Symbolspalte und klappt über der Seite auf; sie schließt sich, sobald der Benutzer einen Eintrag wählt, Esc drückt oder außerhalb klickt. - Gruppen und Einträge entwerfen Sie zusammen mit dem Formular (Designer: Zeile Benutzerdefiniert,
[...]) oder fügen sie per Code hinzu (AddGroup,AddItem,Items). Jeden Eintrag können Sie einzeln ausblenden oder deaktivieren; Gruppen kann der Benutzer zuklappen. - Einträge und Seiten aus einer Tabelle (
RecordSource,KeyField…): Gruppen und Einträge stammen aus einer Tabelle, Abfrage oder SQL-Anweisung. Jeder Eintrag kann ein Ziel haben – eine Seite in einem Unterformular-Steuerelement oder ein Formular bzw. einen Bericht im eigenen Fenster –, und beim Öffnen des Formulars erscheint eine Startseite. Bevor die Leiste eine Seite mit ungespeicherten Änderungen ersetzt, fragt sie nach. Unter ihren Formularzielen markiert sie stets das aktive Formular, und fehlerhafte Zeilen meldet sie inLoadProblems, statt die ganze Tabelle abzulehnen. Aus entworfenen Einträgen legt der Designer eine passende Vorlagetabelle an. - Badges (
SetBadge): eine Zahl oder ein Punkt in der Farbe einer Statusart. Die Anwendung setzt sie zur Laufzeit; mit dem Formular werden sie nie gespeichert. - Keine Ereignisschleifen: Ereignisse lösen nur Aktionen des Benutzers aus. Wählt Code den Eintrag der Seite aus, die er gerade geöffnet hat (
SelectedKey), passiert nichts weiter. MitBeforeNavigatelässt sich eine Wahl abbrechen, etwa solange die offene Seite ungespeicherte Änderungen hat. - Breite im
WklDockLayout: Ist die Leiste ein Bereich eines Layouts, bestimmt sie die Größe dieses Bereichs selbst und übernimmt die Breite, auf die der Benutzer die Trennleiste zieht. Ohne Layout passt sie ihre eigene Breite an und bringt einen eigenen Ziehrand mit. - Zustand je Windows-Benutzer (
AutoSaveLayout): Modus, Breite und zugeklappte Gruppen merkt sich die Leiste in der lokalen TabelleUSysWklLayoutdes Frontends, auf UserForms in der Registrierung.Resetstellt den Entwurf wieder her. - Tastatur und Sprachausgabe: Die Leiste ist ein einziger Tabstopp; darin arbeiten Pfeiltasten, Pos1, Ende, Eingabetaste und Leertaste. Die Tastenkombination wirkt auch in Unterformularen. Für UI Automation erscheint die Leiste als Liste „Navigation“ mit Gruppen und Einträgen; das Badge ist Teil des Eintragsnamens.
Grundkonzepte
Die Leiste navigiert, die Seite gehört der Anwendung – oder der Tabelle. Die Leiste verwaltet
den ausgewählten Eintrag und löst mit dessen Schlüssel BeforeNavigate und Navigate aus. Bei
einer entworfenen Leiste entscheidet der Code der Anwendung, was ein Schlüssel bedeutet: das
SourceObject eines Unterformulars, ein zu öffnendes Formular oder ein Filter. Eine gebundene
Leiste liest das Ziel jedes Eintrags aus ihrer Tabelle und zeigt es zwischen BeforeNavigate und
Navigate an; Einträge ohne Ziel überlassen weiterhin alles Navigate. Wechselt das
SourceObject des Seitenunterformulars, bleiben Leiste und umgebendes Layout unberührt: Größen,
zugeklappte Bereiche und Positionen bleiben auch nach Hunderten von Wechseln gleich.
Die Tabelle ersetzt den Entwurf, ohne ihn zu überschreiben. Eine gebundene Leiste zeigt die
Zeilen ihrer Tabelle anstelle der entworfenen Einträge. Diese bleiben mit dem Formular gespeichert
(Items) und kehren zurück, sobald die Datenquelle nicht lesbar ist oder Sie die Bindung entfernen.
Entwurf und Benutzerzustand sind getrennt. Gruppen, Einträge, der beim Öffnen ausgewählte
Eintrag, Modus, Anheften und Breite gehören zum Entwurf und werden mit dem Formular gespeichert.
Was der Benutzer an Modus, Breite und zugeklappten Gruppen ändert, ist sein Benutzerzustand: Er
wird je Windows-Benutzer gespeichert, beim ersten Anzeigen des Formulars einmal wiederhergestellt
und mit Reset auf den Entwurf zurückgesetzt. Badges und die Auswahl zur Laufzeit gehören zu
keinem von beiden; die Anwendung setzt sie beim Öffnen des Formulars.
Aktionen des Benutzers und Änderungen per Code. Klick, Eingabetaste, Leertaste,
Tastenkombination und ein Aufruf über UI Automation gelten als Aktionen des Benutzers und lösen
BeforeNavigate, Navigate und ModeChanged aus. Eigenschaften und Methoden, die Code aufruft,
ändern die Leiste dagegen ohne Ereignis.
Einzelformulare und UserForms. Die Leiste gehört in ein Einzelformular, denn in Endlosformularen wiederholt Access ActiveX-Steuerelemente nicht für jeden Datensatz. Auf UserForms in Excel und Word funktioniert sie ebenso; dort wirkt die Tastenkombination nur, solange die Leiste den Fokus hat.
Administration
Fehlerbehebung
Für Entwickler
Verwandte Themen
- WklSplitter und WklDockLayout: das Layout, in dem die Leiste meist sitzt