Access pattern · table-driven menu

Nifty Switchboard Builder

Early Microsoft Switchboard is VBA-powered and data-driven: a table holds the menu pages and actions; a Switchboard form reads that table and builds the menu. That is the best switchboard pattern. Nifty Switchboard Builder is Tony Hine's form UI for editing that table, so you are not fighting the stock manager or typing row numbers by hand.

Videos that used to sit on this page may return later. Old storefront purchase links are gone on purpose.

Table + VBA Switchboard

One of the best add-in features of Microsoft Access is the Switchboard. It has been around for a long time. The stock manager UI is awkward -- many developers (including Uncle Gizmo) end up editing the switchboard table directly instead of fighting the wizard.

The beauty of that early Switchboard is that it is a clear example of data-driven programming. There is no separate hard-coded layout for each menu page. The number of items, and the text on those items, lives in a table. The classic VBA Switchboard form looks at the table and knows what to show.

Nifty Switchboard Builder is Tony's own interface for that Microsoft table + Switchboard form combination. You manage pages and items with forms and buttons. Under the hood it is still the Microsoft switchboard data model.

This is not the browser demo at /demo/switchboard/. That demo is a short table-driven menu in this browser. This page is the heritage Access product: the Builder, the samples, and the gap-after-delete fix.

What the Builder does

From the heritage product demos (spoken substance kept; video embeds not restored):

  • Open Forms, Reports, Queries, Macros, and even VBA routines from switchboard items.
  • Reorder items on a page with command buttons (rank up / down) instead of rewriting index values by hand.
  • Add a new page from a popup form: name it, press a button, done.
  • Pass information into a custom VBA routine when opening a form, so the switchboard can influence look-and-feel or start-up behaviour.

Creating a new page is a good place for an advanced MsgBox: the page gets a default name, and Yes / No / Cancel lets the user type a real name, keep the default, or escape. That pattern lives on Advanced Message Box.

Fix a missing row after delete

If you remove a menu item in the Builder, the display form can leave a blank gap where that row number used to be. That may or may not be what you want. To close the gap, move the lower items up the list so the row numbers are contiguous again.

Adding a new row can also fail if a gap already exists, because "next row" logic counts filled rows and can collide with an existing higher item number. Closing gaps first avoids that trap.

The browser twin at /demo/switchboard-builder/ shows the same gap-after-delete behaviour: delete leaves a blank slot; Close gap packs the remaining items.

Microsoft's Switchboard Manager

If you only want a main menu and do not need the Nifty Builder UI, Microsoft's original Switchboard Manager is the free path. From Access 2010 onward the manager is easy to miss -- it is no longer front-and-centre in the ribbon. Community tutorials (historically Tom Fragale's "Access switchboard manager -- creating a main menu" series) show how to find it and add a switchboard to a database. Those tutorials are listed here for completeness only.

Heritage distinction: the data-driven behaviour that is worth studying is clearest in the older VBA-driven switchboard form. Later Microsoft packaging moved toward macros. The Nifty samples and notes preserve the VBA-oriented approach. That is the line Tony draws, and it is the one this page follows.

Sample databases

The Access product lives in NiftySwitchboard_5a plus the install pack. Those .accdb files are not hosted as downloads on this page. Try the Builder UI in the browser at /demo/switchboard-builder/.

Preferred starting names (Access, not this website):

  • NiftySwitchboard_5a.accdb (install pack)
  • NiftySwitchboard_5a.zip
  • NiftySwitchboard_Install_1a.accdb
  • NiftySwitchboard_Install_Demo_1a.accdb
  • NiftySwitchboard_4c.accdb (release-candidate lineage)
  • SwitchboardInNorthwind_1b.accdb
  • SwitchBoard_2012_03_19.accdb (early)

There is no Builder VBA source paste on this page -- the capability lives in the .accdb samples. Use the install-pack filenames and the gap-after-delete notes above rather than an invented step list.

NiftySwitchboard_4b.accdb is mentioned in 2019 notes but was not found in the 2026-09-17 search; use 4c / 5a instead.

Access World Forums discussion (menus / switchboard context): Cramping many database applications into one menu (thread 305262).

Rank-with-VBA (move items past a unique index) is documented in the product Notes. Pat Hartman materials are a community alternate, not the Nifty product.

The old public slug was 404 for a long time. This page is the restore.

Also on this site

Advanced Message Box -- Yes / No / Cancel inside the Builder (delete or rename a page, confirm a new page name).

Browser Builder twin (sample rows in this browser): /demo/switchboard-builder/.

Short runtime menu (different page): /demo/switchboard/.