WklNavPane
The navigation pane designer of the WKL Forms Object Library: Access's own navigation pane, arranged as one custom category with groups, display names and a start group - from a model that can be kept as text, built again and varied per environment.
Get started
Common tasks
Visual aid
┌ Data Source ───────────────── ① ┐ │ ▾ Master Data ② │ │ Customers ③ │ │ Products │ │ ▾ Reports │ │ Stock │ │ ▾ Development * ④ │ │ tblCustomers │ └─────────────────────────────────┘
| Region | Meaning |
|---|---|
| ① | The heading: the own category, or the start group the pane is filtered to. |
| ② | A group of the category, in the order of the model. |
| ③ | A shortcut under its display name (“Customers” opens the form frmCustomers); the pane sorts the entries of a group by this name. |
| ④ | A group with a condition: written only where it holds, here only in the ACCDB. |
Key features
- Access's own pane. No pane of its own: the category is one more custom category of the built-in navigation pane, as Navigation Options would make it. Built-in categories stay.
- Display names. Entries show the names users know (“Customers”) instead of object names (
frmCustomers). - Only your category. The group of unassigned objects is hidden, the pane opens with your category or one of its groups, and it can be locked against deleting and renaming.
- Conditions. Groups and entries show only in a profile (DEV, TEST, PROD), only in an ACCDB, ACCDE or the runtime, or only when a function of the application returns True - the same form as the ribbon commands. Conditions decide what is shown, not what is allowed: a hidden object can still be reached through VBA, DAO or another front end. Protect data with the rights of the server.
- From text sources. The model is a JSON text the build tool builds from and exports again, byte for byte (
navPaneModelin access-app.json). - Take over. A category someone arranged by hand in Access becomes a model with one click.
Core concepts
The model is a model of the framework's core: one category with groups and entries, each entry an
object kind, an object name and a display name, with rules that hold before anything is written.
Applying turns the model into the rows Access keeps for its pane - only those of the own category,
deleted and written again, because Access overwrites changed rows with its own state when the
database closes - and shows the category. Conditions are evaluated when the model is applied, so an
application whose pane differs per environment applies the model when it starts
(WklNavPane.Apply); without conditions, the pane written once stays as Access saved it. The model
lives in the table USysWklNavPane. Access's internal pane tables are never part of the contract.
Administration
Troubleshooting
For developers
- navpane.json: every key of the model
- access-app.json reference (
navPaneModel)
Related topics
None