The Problem With Microsoft Access

Though Microsoft put Windows 7 on the end-of-live junk heap in January, lots of people are running this operating system that is no longer supported by Microsoft for security vulnerabilities and patches.There's (at least) one remaining problem that a few folks will face - particularly if they have done in-place upgrades from Windows XP and/or 7 to Windows 10. It has to do with Microsoft Access.

Though the frequency of serious problems has dropped considerably as hams have moved to Windows 10, we still get calls from customer running Windows 7 (or in some cases, after an in-place upgrade from Windows 7 to 10) where customers complain that Logbook is slow. We often advise them about how to upgrade to Access Runtime 2013 32-bit. After the customer creates a new database and restores their log to it - problem solved!

The purpose of this post is to raise your awareness to this problem. I'll describe what you can do and what our plans are to deal with the problem.

Microsoft Access was first introduced to the market in 1992 after Microsoft acquired FoxPro (and parts of FoxPro were used to create Access). With this initial v1.0 release, Access was built on something called the Microsoft Jet Database Engine v1.0. Subsequent releases of Access also included an updated version of Jet. Access 2.0 included Jet 2.0... and so on.

The following chart demonstrates the progression of Access and Jet over the years.

Jet.png

On the left, you can see the versions of Jet. On the right, you can see the versions of Access along with the Jet versions.

See the column that says, "DLL file name?" Let's see where those files are located in the file/folder structure of Windows:

MSJET40.PNG

The first thing is - I have no idea why so many copies of the same file are required by Windows. I've never been able to understand why they do this. But, there is something else that we can notice. Even though these files have different dates, they have the same file name. These are the same versions.

You can search for your version by going to Windows File Explorer and (in the upper right) search for "msjet*.dll" (without the quotes). We can see that - on my fully up-to-date Windows 10 computer - I'm running on Jet v4.0. From the chart above, I can see that this was released in support of Access 2000 and Access 2003. That was 17-20 years ago!

What version is in your operating system? Hold that thought...

The most important observation is that these files are in the C:/Windows directory structure. Stated another way - these files are installed as part of the operating system. That means that software you install on this computer will not be allowed to make changes to the content of the Windows operating system. So for software like Ham Radio Deluxe - it's a problem that we can't fix as long as the database is running on Access.

As mentioned before, we get customers complaining that Logbook is slow. When we investigate this, it's pretty easy to find that this is the cause of the problem.

A while back, I wrote a post on our peer support forums entitled - "For those reporting "slow" performance of Logbook.."

Here are the steps I advised customers to take if they feel that Logbook performance is slow:

In Logbook...

> click on "Manager"; this opens up the Logbook Databases manager

> click on "ODBC Administrator"; this opens up Windows 32-bit ODBC Administrator

...among other things, you should see Microsoft Access Driver and... if you have a reasonably current version of Microsoft Access Runtime on your machine, it will show "*.mdb, *.accdb"

AccessNew.png

NOTE: In the above image, the logbook database called "HRD Logbook - Access" is using an old Access ODBC driver. I moved all my data out of that and into the logs shown below it to improve the performance of my own installation of Ham Radio Deluxe.

...if you do not see these two database file types there, then we need to get you off of a 20+ year old version of the Access Runtime.

So if this applies to you... do this:

> use the database backup utility in Logbook to make sure you've got your latest QSOs backed up

> Please download and install the Microsoft Access Database Engine 2013 driver. CAUTION: Please make sure you download and install the 32-bit version (AccessRuntime_x86_en-us.exe) from here: Access Runtime 2013

> Install that 32-bit version of the 2013 Access Runtime (the newer versions have compatibility problems; don't try to use them).

> Once that's installed... check the ODBC Administrator as we did before (you should now see this new Microsoft Access Driver in there with *.mdb, *.accdb in there.

> Create a brand new log

> Make sure the WSI check goes to this new log and no longer checks the old log

> Restore your backup to this new log

> Use this new log and close the old one.

Feedback from customers about this is almost 100% effective.

Finally, given that this is part of the operating system, it's not something we can change with our installation of Ham Radio Deluxe. That is - we can't fix the version of Jet. We can provide guidance about how to fix it.

That said, we DO want to move away from Access (and Jet) for a number of reasons. Reason #1 - all the problems referenced above. Reason #2 - we need to have a version of Ham Radio Deluxe that is not dependent upon Windows-specific foundations in order to create versions that will run on Linux or Mac. It is in our plan to move off of Access.

73 de Mike, VK4EIE, WA9PIE