navpane.json
Das Modell des Navigationsbereichs einer Datenbank. Es beschreibt eine benutzerdefinierte Kategorie des
Access-Navigationsbereichs mit ihren Gruppen und Verknüpfungen, die Gruppe, die der Bereich beim Start zeigt, ob die
Access-Gruppe der nicht zugewiesenen Objekte ausgeblendet ist und ob der Bereich gesperrt ist. Bedingungen legen fest,
wann eine Gruppe oder Verknüpfung erscheint. WklNavPane speichert das Modell in der Tabelle USysWklNavPane der
Datenbank. Das Build-Werkzeug liest es aus der Datei, die navPaneModel in access-app.json nennt,
in einem Projekt des WKL Office SDK aus navigation/navpane.json seiner Quellen.
Signatur
{
"version": 1,
"category": "Kunden",
"defaultGroup": "Daten",
"hideUnassigned": false,
"lock": true,
"groups": [
{
"name": "Daten",
"entries": [
{ "kind": "form", "object": "frmCustomer", "label": "Kunden" },
{ "kind": "report", "object": "rptCustomerList", "label": "Kundenliste" }
]
},
{
"name": "Verwaltung",
"condition": { "profiles": ["DEV", "TEST"], "fileKinds": ["accdb"] },
"entries": [
{ "kind": "table", "object": "tblCustomer" },
{ "kind": "module", "object": "basAdmin", "condition": { "function": "IsAdmin" } }
]
},
{ "name": "Archiv", "hidden": true }
]
}
Zusammenfassung
Ein JSON-Objekt in UTF-8. Alle Schlüssel außer version sind optional; für einen weggelassenen Schlüssel gilt sein
Vorgabewert. Ein unbekannter Schlüssel, ein falscher Typ oder ein unbekannter Wert wird mit wkeInvalidValue und der
Angabe der Stelle abgelehnt, nie übergangen. Kommentare sind nicht zulässig.
Schlüssel
| Schlüssel | Typ | Vorgabe | Bedeutung |
|---|---|---|---|
version | Zahl | - | Formatversion; 1. Pflicht. Eine andere Zahl wird abgelehnt. |
category | Text | leer | Name der benutzerdefinierten Kategorie, wie ihn die Überschrift des Bereichs und die Liste der Kategorien zeigen. Pflicht, bevor das Modell gespeichert werden kann (höchstens 255 Zeichen). |
defaultGroup | Text | leer | Die Gruppe, auf die der Bereich beim Anwenden des Modells gefiltert wird; leer zeigt die ganze Kategorie. Muss eine nicht ausgeblendete Gruppe des Modells nennen (Groß- und Kleinschreibung zählt nicht). |
hideUnassigned | true/false | true | Blendet die Access-Gruppe „Nicht zugewiesene Objekte“ der Kategorie aus; false zeigt dort jedes Objekt der Datenbank, das in keiner Gruppe steht. |
lock | true/false | false | Sperrt den Bereich gegen Löschen, Umbenennen und Ändern von Gruppen (DoCmd.LockNavigationPane). |
groups | Array | keine | Die Gruppen der Kategorie in dieser Reihenfolge. |
Gruppe
| Schlüssel | Typ | Vorgabe | Bedeutung |
|---|---|---|---|
name | Text | - | Beschriftung der Gruppe. Pflicht, höchstens 255 Zeichen, eindeutig innerhalb der Kategorie (Groß- und Kleinschreibung zählt nicht). |
hidden | true/false | false | Die Gruppe existiert, ist aber ausgeblendet: Access zeigt sie nur grau, wenn ausgeblendete Objekte angezeigt werden. Eine ausgeblendete Gruppe kann nicht defaultGroup sein. |
condition | Objekt | keine | Wann die Gruppe erscheint; siehe Bedingung. Eine Gruppe, deren Bedingung nicht zutrifft, wird gar nicht geschrieben. |
entries | Array | keine | Die Verknüpfungen der Gruppe. Der Bereich sortiert sie selbst nach dem angezeigten Namen. |
Eintrag
| Schlüssel | Typ | Vorgabe | Bedeutung |
|---|---|---|---|
kind | Text | - | Die Art des Objekts: table (lokal oder verknüpft), query, form, report, macro oder module (Standard- oder Klassenmodul). Pflicht. |
object | Text | - | Name des Objekts in der Datenbank (zum Beispiel frmCustomer). Pflicht. Dasselbe Objekt darf je Gruppe nur einmal vorkommen. |
label | Text | leer | Name, den der Bereich für die Verknüpfung anzeigt (höchstens 255 Zeichen); leer zeigt den Objektnamen. |
condition | Objekt | keine | Wann die Verknüpfung erscheint; siehe Bedingung. |
Bedingung
Dieselbe Form wie bei den Bedingungen der Menüband-Befehle. Jeder angegebene Teil muss zutreffen; eine weggelassene Bedingung trifft immer zu.
| Schlüssel | Typ | Bedeutung |
|---|---|---|
profiles | Array aus Text | Die Verbindungsprofile (zum Beispiel DEV, TEST, PROD des WKL Linked Tables Managers), unter denen die Gruppe oder Verknüpfung erscheint; Groß- und Kleinschreibung zählt nicht. Das Profil ist das mit WklNavPane.Profile oder WklRibbon.Profile gesetzte, sonst das Profil, das die meisten verknüpften Tabellen verwenden. |
fileKinds | Array aus Text | accdb (eine ACCDB im vollständigen Access), accde (eine ACCDE im vollständigen Access), runtime (jede Datenbank in der Access Runtime); erscheint, wenn die Datenbank zu einer der genannten Arten gehört. Eine Datenbank in der Runtime zählt nur als runtime. |
function | Text | Name einer öffentlichen VBA-Funktion ohne Argumente; erscheint, wenn sie True oder eine Zahl ungleich 0 zurückgibt. Eine Funktion, die fehlschlägt, zählt als False. |
Hinweise
Wann Bedingungen wirken. Bedingungen werden ausgewertet, wenn das Modell angewendet wird (WklNavPane.Apply und
Save, sofern dessen zweites Argument nicht False ist). Was nicht zutrifft, wird nicht in den Bereich geschrieben, und
ein Benutzer kann es auch über die Navigationsoptionen nicht sichtbar machen. Der Bereich behält, was zuletzt
geschrieben wurde: Eine Anwendung, deren Bereich je Umgebung verschieden ist, ruft beim Start Apply auf, zum Beispiel
im Ereignis Beim Laden ihres Startformulars. Bedingungen sind eine Erleichterung, kein Schutz; wer die Datenbank öffnet,
kann das Objekt auf anderem Weg öffnen.
Fehlende Objekte. Ein Eintrag darf ein Objekt nennen, das die Datenbank noch nicht hat (ein späterer Build fügt es
hinzu). Check zählt das nicht als Problem; Apply lässt den Eintrag weg und gibt je fehlendem Objekt eine Zeile zurück.
Gleiche Bytes. WklNavPane speichert das Modell mit den Schlüsseln in der Reihenfolge dieser Seite und ohne
Vorgabewerte (hideUnassigned nur bei false, lock und hidden nur bei true), mit zwei Leerzeichen Einzug,
LF-Zeilenenden und einem abschließenden Zeilenende. Ein gelesenes und wieder geschriebenes Modell ergibt denselben Text,
die Datei lässt sich also in der Versionsverwaltung führen.
Integrierte Kategorien. Geschrieben wird nur die eigene Kategorie. Die integrierten Kategorien von Access (Objekttyp, Tabellen und zugehörige Ansichten) bleiben unverändert.
Codebeispiel
Dim pane As New WklNavPane
Debug.Print pane.Check("{ ""version"": 1, ""category"": ""Kunden"" }") ' empty: no problems
pane.Save "{ ""version"": 1, ""category"": ""Kunden"", ""groups"": [ { ""name"": ""Daten"" } ] }"
Verwandte Themen
- API-Referenz (Englisch): WklNavPane – das Objekt, das das Modell prüft, speichert und anwendet.
- access-app.json –
navPaneModeldes Build-Werkzeugs.