Today I thought I’d try and cover the subject of Access reporting back errors like:
System Resource Exceeded
What’s the Source of the Problem?
Many report these issues occurring on databases that were working fine for years and once they upgraded Access versions, the newer version would report such an error and then crash.
First, it is important to understand that Access does not access all of a computer’s RAM, so having 16, 32, 64 GB RAM changes nothing to the problem. Access has access only to a limited amount of RAM which depends on the bitness of your Access installation:
- A 32-bit installation of Access has a hard limit of 2 GB of virtual memory (4GB total virtual memory => 2GB for Windows and 2GB of processing) regardless of what is physically available on the system itself
- A 64-bit installation of Access has a hard limit of 8 TB of virtual memory (16TB total virtual memory => 8TB for Windows and 8TB of processing).
Note: The above information regarding the limitation of 32-bit and 64-bit installations comes from the youtube video on LAA given by Karl Donaubauer (Access MVP) for which a link is provided a little further in this post.
As such, a 64-bit version of Access can access orders of magnitude more RAM (if available) and it is thus highly unlikely to see such an error in an 64-bit installation.
Also, with each new version of Access, the core program itself consumes more and more of the memory leaving less and less for the database itself to use to perform operations. This is why databases that previously ran fine in prior versions suddenly start generating this error on more recent versions of Access or after some new update from Microsoft. As such, upgrading Access versions can actually be detrimental!
For instance, I logged the RAM consumption by Access with nothing open but the main window at startup and the results are quite telling IMHO.
| Version (32-bit) | Allocated RAM (MB) As of: 2018-10-20 |
% Increase From Previous Version |
% Increase From 2003 |
RAM (MB) Remaining for Your Operations |
||||
|---|---|---|---|---|---|---|---|---|
| 2003 (En) | 170 | — | — | 1878 | ||||
| 2007 (En) | 333 | 96% | 96% | 1715 | ||||
| 2010 (En) | 371 | 11% | 118% | 1677 | ||||
| 2013 (En) | 545 | 47% | 220% | 1503 | ||||
| 2013 (En) (2021-06-01) | 606 | 63% | 256% | 1442 | ||||
| 2016 (En) | 588 | 8% | 245% | 1460 | ||||
| 2016 (Fr) | 545 | 0% | 220% | 1503 | ||||
| 2019 build 11901.20218 | 647 | 10% | 280% | 1401 | ||||
| 2019 build 14026.20246 | 653 | 11% | 284% | 1395 |
Here is a graphical representation of what has happened over the years.
So since version 2003, we have effectively lost almost half a GB of RAM (483 MB) for our processing!
So, if you were using 2003 and jump to 2016 the RAM being consumed by Access itself has gone up by 246% and now, instead of having 1878 MB (2GB – 170MB) of RAM available to you for your operations, you now only have 1460 MB (2GB – 588MB). That is a substantial decrease in resource for handling heavy queries and other operations!
The data above also illustrates how MS updates seem to make this issue worse over time. Both my installation of Access 2013 and 2019 (I haven’t validated my 2016 installation) have seen the available RAM diminish as various updates have been applied.
Some Reported Workarounds
Sadly, there isn’t any magic bullet to this issue, but there are a few workarounds that have helped some in certain scenarios:
- Remove Calculate Fields. Some user have reported that once they removed Calculated data type fields from their tables, and switched to creating the calculation in queries using standard expressions, they no longer receive such errors.
- Uninstalling/Disabling add-ins. Don’t forget that your Access Add-ins take memory away from the available memory leaving you with less for your operations. So if you don’t absolutely need/use add-ins disable/remove them from loading by default. I did a quick test on my Access 2013 x32 installation and gained 125MB of RAM by disabling a single add-in!
- Some people have reported that changing their CPU affinity to a single CPU core in the task manager for the msaccess.exe process solved this issue.You can do so through the command line by doing something along the lines of:
C:\Windows\System32\cmd.exe /c start "Microsoft Access" /Affinity 1 "C:\Program Files (x86)\Microsoft Office\root\Office16\MSACCESS.EXE"
- Others had success by breaking complex queries into simpler operations and chaining them together or using temp tables as intermediary vessel for complex queries.
- Simplifying complex forms, breaking them into separate forms, using dynamic content loading techniques, etc…
- Closing all open objects prior to opening complex forms, running heavy queries.
- Another potential solution for 32-bit installations specifically is to try and make Access LAA (Large Address Aware) which enables it to use more memory, see: https://youtu.be/JTTsyNzY_i8
- You can try increasing your MaxLocksPerFile and MaxBufferSize values.
- Switching from 32-bit to a 64-bit installation can be the solution in some instances. That said, switching bitness can lead to other issues and require updating ActiveX controls, APIs and coding, …
- For some, the only answer is to go back to using an older version of Access that doesn’t suffer from the same memory limitations.
All this to say this is the type of issue that will require some trial and error on your part to find an acceptable workaround.
As always, Compact and Repair is always a recommended starting point to reduce the file size to a minimum. Don’t forget to make a backup prior to playing around with any of these settings (you’re always better safe than sorry!).
LAA Finally Here!
The real solution for 32-bit installation has finally arrived. It only took how many years (6+ years!), but LAA if finally here!
Sadly, once again, no official Microsoft Access Dev Team article on this new ‘feature’ release.
Windows 11 And Resources Exceeded
Well, just as we thought we were turning the page on this issue…
Just a heads up that there are reports that even running 64-bit installations of Microsoft Access, if on Windows 11, there are once again issue with resource exceeded. Same db run on Windows 10 – no issue, run on Windows 11 error!
So be forewarned.




Can you share the Microsoft documentation that states that MS Access 64 bit has a hard limit of 8TB of RAM?
That information came from the LAA youtube session (the link is provided in the article).
Update 2021-06-15
Furthermore, if you review Microsoft’s Memory Limits for Windows and Windows Server Releases the limit appears to be far less based on Windows OS limitations (the numbers below are for x64 OSes and are the upper limits depending on the Edition – refer to the previously mentioned link for all the details):
Windows 7 -> 8 GB – 192 GB
Windows 8 -> 128 GB – 512 GB
Windows 10 -> 128 GB – 6 TB
Update 2021-06-16
I did a little digging and I think the 8TB may have come from a Tech Community article by Mark Russinovich entitled Pushing the Limits of Windows: Virtual Memory. Never forget a lot of this stuff is theoretical and often limited by other factors (for instance, currently the OS seems to be a limiting factor). The simple takeaway is that 64-bit can access a lot more memory than its 32-bit counterpart, the exact upper limit is truly irrelevant with today’s PCs.
Is Microsoft adressing this issue as a bug? I have also noticed memory leaks with newer Access versions when displaying several large-sized images in reports.
I don’t know what MS is doing behind the scenes regarding this issue. They are always very tight lipped about everything, we (MVPs) typically know things at the same time the general population does. Seldom have been the times that I knew things ahead of the public, and even then we’re not allowed to discuss it at all publicly.
I do know that according to the Access Roadmap they are planning on “Enabling Large Address Aware (LAA) for 32-Bit Access”. The issue here, most probably, will be this will on apply to currently supported versions, so won’t necessarily help those that need it the most and will once again force users to upgrade.
It’s my understanding that having 8 or even 16 GB of memory and using 64-bit Access does not solve the “System Resources Exceeded” problem with newer Access editions. So how could LAA for the latest 32-bit Access editions prevent the problem if 64-bit Access suffers from the same?
I can’t really comment on the issue relating to 64-bit.
I have only ever experienced the issue with 32-bit and the LAA ‘feature’, from my understanding, will only address the 32-bit version as it is the only one that has this 2GB hard limit.
If there is a 64-bit version of this issue, I’d suggest you make a posting at https://feedbackportal.microsoft.com/feedback/forum/818e3b49-e61b-ec11-b6e7-0022481f8472 giving as much detail as possible, links to threads on the subject so the Dev Team can perhaps investigate.
We have a 32bit version of MS Access. This message came up when users tried to access a ‘shared’ db. Checks show the DB reached 83mb plus. Issue was resolved by getting all users to log off, backed up the db, opened the backend db and compressed it. It went down to just 15mb plus. This resolved the issue.
Thank you for creating this information.
Its a pity that Access starts complaining for exceeding the system ressources even when GlobalMemoryStatusEx tells me there are 300 MB virtual memory left ..