Northwind 2.0: The Access Database Template You've Been Waiting For
It only took 30 years, but Microsoft Access finally has a set of templates showcasing the best of what Access and its community of experts have to offer.
Are you ready to take your Microsoft Access game to the next level?
With the recent release of the Northwind 2.0 database templates, new and experienced users alike can finally gain valuable insight into Microsoft Access best practices from an official template. The original Northwind template had an outdated user experience, was packed full of some of the most egregious beginner mistakes (spaces in table names, for crying out loud!), and generally made you a worse Access developer if you used it for inspiration.
This clip from Billy Madison pretty much sums up the Northwind 1.0 template:
Mr. Madison, what you’ve just said is one of the most insanely idiotic things I have ever heard. At no point in your rambling, incoherent response were you even close to anything that could be considered a rational thought. Everyone in this room is now dumber for having listened to it. I award you no points, and may God have mercy on your soul.
As bad as the Northwind 1.0 template was, the two new Northwind 2.0 templates are that good in the other direction.
The Access community, and the Access MVPs in particular, have complained loudly about the Northwind template for many years.
Over time, it became clear that Microsoft had no appetite for improving the template or developing a new one. Eventually, the community asked if they could build something themselves. Several Access program managers paid lip service to the idea over the years, but it wasn't until two years ago that (former Access program manager) Michael Aldridge officially green-lit the project.
Access MVP Tom van Stiphout led a core team of developers with a mandate from Microsoft to build a new Northwind template.
- Tom van Stiphout: Phoenix, AZ
- Kim Young: Chicago, IL
- Dawn Taylor: Denver, CO
- George Hepworth: Seattle, WA
- George Young: Denver, CO
The team made several key design decisions that I feel were instrumental to the success of the project:
- Creating two templates instead of one
- Treating each template as a showcase (without regard for a consistent UI)
- Light on class module usage
Coralling a group of top experts on this type of project is no easy task (the phrase "herding cats" comes to mind). I don't envy Tom's role in trying to achieve consensus on some of these topics.
Two Editions Available
Microsoft Access serves two target audiences:
- Power users with little to no programming background
- Professional developers who use Access as a Rapid Application Development (RAD) tool
Early on in the process, the team had trouble figuring out which audience to target when developing the new Northwind template.
In the end, the team chose to create two separate versions:
The Starter Edition is aimed at power users. It showcases Access's out-of-the-box features while minimizing the use of VBA. It makes heavy use of Access macros, as that is the built-in "visual" programming language aimed at non-developers.
The Developer Edition leans heavily on VBA to provide several advanced features.
- Cascading Combo Boxes
- Multi-instance Forms
- Ribbon Callbacks with Refresh (to dynamically update ribbon dropdowns)
- Context-Sensitive Help
- Class Module-based Custom Error Handling
- Workflow-Sensitive Required Fields (i.e., incremental validation; e.g., a Ship Date is needed to ship order but not to create the initial invoice)
- Strings Table with Replaceable Parameters
- Report Catalog Equivalent to DevExpress Access Report
By creating two separate editions, the Northwind 2.0 team was able to deliver templates that provide new users an easy on-ramp to get started with Microsoft Access along with a rocket ship to take professional developers to new heights.
Northwind as a Showcase
The team intentionally chose to show multiple approaches to solving common problems.
In a professional application, this would be a poor design decision as it would make for a confusing user interface. However, the Northwind template is not intended to be used as an off-the-shelf application. Rather, its purpose is to introduce developers to all the ways that Access can provide solutions to common data problems.
Another side effect of this decision is that some "features" that are rather unpopular with many professional developers (myself included) made it into the template, such as:
- Multi-valued fields
- Images embedded in tables
- Split forms
Sacrificing a consistent UI in the name of including additional techniques is a major win in my eyes.
Minimal Class Module Usage
One apparent point of contention with the team was how heavily to feature class modules in the Developer edition.
In the end, the team included a single class module that serves as a custom error handler. Ultimately, they chose not to go down the rabbit hole of trying to introduce object oriented programming concepts to a VBA audience. I can understand the design decision, even if I make heavy use of class modules in all of my own applications.
According to Kim Young, the team spent nearly as much time on documentation as they did on the application itself.
Every form contains a yellow information icon in the upper right that will take you to an associated online documentation page. For example, here is the online help page for the Orders form in the Northwind Developer template:
Generally speaking, the documentation focuses on why design decisions were made, rather than trying to teach how to do things.
The team felt that there are already several good books and online resources explaining how things work. However, none of those resources could explain to a user why the Northwind team chose to use a particular technique in a particular place.
The Northwind Features form shows how to implement items step-by-step via the Access ribbon/menus, as well as including links to online help and in-app help:
The team ran into a variety of challenges throughout the course of the project.
Some challenges were specific to dealing with .accdt (template) files:
- Relationships window custom layout lost when saving .accdb to .accdt
- Data macros were stripped from the tables when generating .accdb from .accdt (the team implemented a workaround where the data macros get re-applied after the .accdt-generated .accdb runs for the first time)
Working within the huge bureaucracy of Microsoft presented its own set of challenges.
- Every icon, image, and sample datum had to be approved by Microsoft's legal team
- Accessibility testers put the template through a battery of tests to make sure it worked for users with color blindness, visual impairments, and other physical challenges
Getting the New Northwind Templates
To try out the new templates for yourself, follow these steps:
- Open Microsoft Access
- Click the [ New ] button
northwindin the "Search for online templates" box and press enter
- Double-click on your preferred template
If the templates are not available through the New file interface, you can download them directly from the web at the Featured Access Templates page: