Bug Alert: Cannot Open Any More Tables/Databases
UPDATE [2022-02-09]: Microsoft has released an official fix for this bug.
These days, Microsoft Access releases a new feature about once a year.
This glacially slow feature release cycle is a source of endless frustration for professional Access developers. As the cacophony of complaints crescendoed, Redmond devised an ingenius plan to occupy Access developers in between feature releases: Monthly BUG Releases!
First, there was the 2021 Holiday Bug, then my UNC Alias trick stopped working, and, just for good measure, they temporarily broke the Access Runtime download links.
Now, it seems that the official fix for the Holiday Bug has brought problems of its own. Surprise, surpise.
Related Error Messages
As of yesterday, February 4, 2022, Microsoft has officially acknowledged that there is a bug in the January 2022 Office update (Version 2201 (Build 14827.20158)) that shows up with a variety of symptoms, including:
- Access Error 3014: Cannot open any more tables.
- Access Error 3048: Cannot open any more databases.
- The
msaccess.exe
process remains running in Task Manager after closing the main Access window. - Compact & Repair fails with the message "database already in use"
- Error at startup: "Already in use by Admin"
Workarounds
There are a few reported workarounds:
Place Access File(s) in a Trusted Folder
As of writing, the official workaround from Microsoft is:
To work around this issue, put your database in a trusted location.
Whether this requires putting your front-end database, your back-end database(s), or both in a trusted location is not clear. Some commenters have stated that this workaround requires putting both the front-end file and back-end file(s) into trusted locations.
Of course, the Trusted Locations are saved in the registry's current user hive (HKCU), which means this fix would need to be applied while end users are logged in to their computers. This may be something you could automate with Group Policy if you have Active Directory. You could also do this with a .reg
file, Powershell, or a VBScript.
Depending on the environment where your application is deployed, this could be an impractically time-consuming workaround.
Explicitly Close and Release All .OpenRecordset
s
There is some anecdotal evidence that this problem is more common among Access applications that have many .OpenRecordset
calls without corresponding .Close
calls.
Chances are, though, if you've got a large enough codebase for this to be causing the problem for you, it also means that it would be impractical to go through that codebase adding in .Close
methods everywhere just in case it might fix the problem for you.
This, too, would likely take a lot of your time. Plus, there's a better-than-even chance that it wouldn't work anyway.
Back Out the Update
Which brings us to Old Faithful: just uninstall it.
Unfortunately, rolling back Office updates is not exactly the click of a button. Here are the instructions from Microsoft:
- For MSI builds, see: Information about the ability to uninstall Office
- For Microsoft 365, see: How to revert to an earlier version of Office 2016 Click-to-Run
Further Reading
The best source for unofficial updates to this bug comes from Access MVP Daniel Pineault's website, DevHut: Another Access Bug: Cannot Open Any More Databases.