Checking Version Compatibility with NetOffice

tl;dr: Use the search box below to get version compatibility for any member of the Access/Excel/Office/etc. object model.  The search will take you to the NetOffice GitHub repository and show source code matches near the SupportByVersion attribute.


Version Reference

  • 16.0: Office 2016+
  • 15.0: Office 2013
  • 14.0: Office 2010
  • 12.0: Office 2007
  • 11.0: Office 2003
  • 10.0: Office 2002/XP
  • 9.0: Office 2000

What's This All About?

You can use newer versions of Access to develop applications that will run on older versions of Access or the Access Runtime.

The biggest landmine is the Access object model.  If you reference a member of the object model that exists in your development version of Access but not in your user's older version of Access, the application will halt or crash.  Unfortunately, the official Microsoft documentation does not include version compatibility for any of the members of the Access object model.  

Luckily for us, we can use the NetOffice project's source code to check version compatibility for all of the object models in the Office suite:

NOTE: The NetOffice project itself is targeted at .NET Framework development, so it is of no direct use to us as Access developers.  I've used the library for my .NET development in the past, and its version compatibility data is top notch.  In fact, I used to keep a dummy .NET project around that I would edit just to look up compatibility for Office object model members.

Checking Compatibility

To check the compatibility of an object model member, you use the repository search box on the NetOffice project's GitHub page and search for:

SupportByVersion {ObjectModelMember}

Alternatively, you can copy and paste the URL below into your browser and then type the name of the object you want to search for at the end of the URL:

https://github.com/NetOfficeFw/NetOffice/search?q=SupportByVersion+

Or, just use the search box I created at the top of this article (adapted from HTML/CSS/JavaScript code I found here).

Sample Usage

This whole concept is a bit of a kludge, so you'll have to read between the lines a bit to make sense of the search results.  

As an example, let's search for the XlConstants enumeration, which has been supported by various Office applications over the years:

  • Excel: versions 9, 10, 11, 12, 14, 15, 16
  • Office: versions 12, 14, 15, 16
  • Word/PowerPoint: versions 14, 15, 16
  • Access: hah! you wish...

If you enter XlConstants into the search box above, it will take you to the following URL: https://github.com/NetOfficeFw/NetOffice/search?q=SupportByVersion+xlConstants

When you arrive, you should see something like this:

You'll need to pay close attention to the file names (e.g., Source/Excel/Enums/Constants.cs) and you may need to jump into the file to review the surrounding source code for additional context.

It's not a perfect solution, but it's a whole lot better than nothing.

External references

GitHub - NetOfficeFw/NetOffice: 🌌 Create add-ins and automation code for Microsoft Office applications.
🌌 Create add-ins and automation code for Microsoft Office applications. - GitHub - NetOfficeFw/NetOffice: 🌌 Create add-ins and automation code for Microsoft Office applications.
NetOffice Framework
How to Add a Search Bar in HTML
We look at how to add a search bar in HTML to your website and search connect it to Google search