WklApplication
The application designer of the WKL Forms Object Library: title, icon, start form, ribbon and the user interface of each mode of an Access application - development, administration, production - from one model, written as Access's startup properties, plus the settings an operator may change in a delivered application.
Get started
Common tasks
Visual aid
┌──────────────┬──────────────┬──────────────┐
│ Development │Administration│ Production │ ①
│ ACCDB │ ACCDE+Access │ ACCDE+Runtime│
┌───────────────────┼──────────────┼──────────────┼──────────────┤
│ Navigation pane │ ✓ │ ✓ │ │ ②
│ Special keys │ ✓ │ │ │
│ Shift bypass │ ✓ │ │ │
└───────────────────┴──────────────┴──────────────┴──────────────┘
Title, icon, start form, ribbon: the same for all modes ③
Adjustable in operation: connections, options ④
| Region | Meaning |
|---|---|
| ① | The three modes. The mode is detected, never configured: an ACCDB is development, an ACCDE in full Access administration, an ACCDE in the Access Runtime production. |
| ② | The user interface of each mode: navigation pane, status bar, full menus, Access's shortcut menus and toolbars, special keys (F11, Ctrl+G), the Shift key that skips the start. |
| ③ | What is the same in every mode: title, icon, start form, the application's ribbon. |
| ④ | What an operator may change in a delivered copy without development access: where the linked tables point, and options the application reads. |
Key features
- One model instead of single properties. The startup properties Access spreads over the Current Database options are set from one model, kept in the database (USysWklApp) or as a text file next to the sources.
- Per mode. Each mode has its own user interface; the defaults keep development open and lock production down. A copy built for one mode and opened in another corrects itself from the next opening on (
EnsureApplicationat the start). - Told when it acts. Title and icon act at once, every other startup property only at the next opening.
ApplyandSavesay so for each change. - Profiles reported, not refused. A connection profile of the Linked Tables Manager can be tied to modes (PROD only in production); a deviation is reported at the start, the start goes on.
- Adjustments in operation.
ShowSettingslets an operator point the connections to another server or database and change released options, also in an ACCDE and the runtime; the values live outside the database, so a new version keeps them. - Delivery from the build. The build tool stores and applies the model (
appModel) and writes a folder per target with the database, the startup properties of its mode and a manifest (deploy).
Core concepts
Two axes, not one. The mode says how the database runs (file kind and Access or runtime) and decides the user interface. The profile (DEV, TEST, PROD of the Linked Tables Manager) says which server the tables point to. They are independent: a TEST profile can run in production mode on a test machine. A profile rule only states where a profile is expected and reports the rest.
Startup properties act late. Access reads most startup properties when a database opens. An
application therefore calls EnsureApplication once when it starts: it writes what the mode wants
and reports findings; the user sees the result from the next opening on. A delivered copy built with
deploy already carries the properties of its mode and is right at the first opening.
Locks prevent mistakes, not attacks. Without special keys and the Shift bypass a user does not reach the design by accident. Another DAO session can still change or delete the properties, also the bypass key with its DDL flag. Protect data with the rights of the server.
What an operator may change is decided by the developer. The model releases relinking and named
options, optionally only for some profiles, file kinds or users (a VBA function). The settings are
stored per user (%LOCALAPPDATA%\WKL\<database>\settings.json) over the machine's
(%ProgramData%\WKL\<database>\settings.json); a damaged file is reported and ignored.
Administration
Troubleshooting
For developers
- app-model.json reference (every key of the model, defaults per mode)
Related topics
None