Farbschema: Hell
Sie befinden sich hier: start » de » Dokumentation » Werkzeuge für Microsoft Access » WKL Forms Object Library » Navigation und Befehle » WklNavBar

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]
+---+                                     +---+---------------------+
BereichBedeutung
1Umschaltfläche: wechselt zwischen aufgeklappter Leiste und Symbolspalte (ShowToggle); dasselbe bewirkt ToggleShortcut (Standard: Strg+B) von jeder Stelle des Formulars aus
2Gruppenü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
3Einträge am unteren Rand (Einstellungen, Hilfe): ohne Gruppe und auch beim Blättern immer sichtbar
4Trennleiste des WklDockLayout, in dem die Leiste einen Bereich bildet: Hier zieht der Benutzer die Leiste breiter oder schmaler
5Die Seite: ein Unterformular, dessen SourceObject die Anwendung in Navigate setzt; bei Einträgen mit Unterformular-Ziel (TargetControl) übernimmt das die Leiste selbst
6Nicht 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; ModeChanged meldet 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 in LoadProblems, 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. Mit BeforeNavigate lä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 Tabelle USysWklLayout des Frontends, auf UserForms in der Registrierung. Reset stellt 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

de/wiki/msaccess/comctl/navigation-and-commands/navbar/start.txt · Zuletzt geändert: von Wolfgang van der Stille