Microsoft Office and–by extension–Microsoft Access (and the Access Runtime) come in two "flavors":
What is the difference between the two? Why should you install one versus the other?
Install the 64-bit version.
If your Access applications won't run in 64-bit, then install the 32-bit version of Access or the Access runtime on your end users' machines and fix your applications so that they will run in 64-bit.
For way more context, read below.
The Technical Differences
The key difference between the two versions is in how each one addresses memory:
The 32-bit version uses 32-bit memory addresses and 64-bit uses 64-bit memory addresses. Memory is the temporary holding area that applications use to store data while they are running. To save and retrieve data from memory, the application uses addresses in much the same way that addresses are used when sending mail through the post office.
Each byte (8 bits) of memory is assigned an address. Thus, the "addressable" memory space is limited to the number of unique addresses.
- 232 unique addresses
- 4,294,967,296 unique addresses
- 4 GB of addressable memory (2 GB for Access...see LAA section below)
- 264 unique addresses
- 18,446,744,073,709,551,616 unique addresses
- 16 EB (exabytes) of addressable memory
As you can see, there is no practical limit to the amount of memory one can address with 64-bit Office/VBA. Rather, the limit tends to be how much physical (and virtual) memory is available on the system. In other words, 64-bit VBA's memory limits are hardware-based.
This was also the case with 32-bit applications when they first arrived. However, as the cost of computer memory went down over time, the memory addressing system became the limiting factor for 32-bit applications. In other words, 32-bit VBA's memory limits are software-based.
What Not to Consider
There are some common variables that normally help us decide what type of software we should install:
With a narrow exception for very old computers, none of the above three variables should have any impact on which version of Office/Access you install.
There is no separate license for the 32-bit or 64-bit versions of Office.
If you have a license for Office–whether that is a perpetual license for something like Office 2021, Office 2019, or Office 2016 or subscription license like Microsoft 365–then you have the right to install your purchased version of Office as either a 32-bit install or a 64-bit install.
In other words, licensing has no bearing on your decision of which Office bitness you install.
As with licensing, there is no cost difference between the two.
In fact, you can install a 32-bit version of Office on a machine, run it for a few years, uninstall it, and then install a 64-bit version of Office on the same machine without needing to buy a new license.
You don't buy 32-bit Office or 64-bit Office. You buy Office 2016, Office 2019, Office 2021, or Microsoft 365 and you get the option of installing it as a 32-bit application or a 64-bit application.
In other words, cost has no bearing on your decision of which Office bitness you install.
Compatible Operating Systems and Hardware
In order to run 64-bit applications, you need a 64-bit capable processor and a 64-bit operating system.
When 64-bit first appeared as an option in Office 2010, it was not uncommon to come across computers with 32-bit-only processors or 32-bit versions of Windows. In 2023, that situation is practically unheard of.
If you want to reassure yourself that you have a compatible processor and operating system, you can open the Settings app and search for
If you have a 32-bit processor or a 32-bit operating system, then your only choice will be to install a 32-bit version of Office.
Chances are, though, this will not be a deciding factor for you as you are very likely to have a 64-bit processor and operating system.
What to Consider
There are some key things that you should consider when deciding whether to install 32-bit or 64-bit Office/Access.
If you have a version of Office that does not include a license for Access you can still install the free Access runtime. However, if you install the same version of the Access runtime as your installed Office version (e.g., Access 2016 runtime and Office 2016), then the two applications must have the same bitness.
Here's a brief timeline of 64-bit support for Microsoft Office:
- Office 2007 and earlier: 32-bit only
- Office 2010 to Office 2016: 32-bit by default (64-bit optional)
- Office 2019 and later: 64-bit by default (32-bit optional)
Be aware that if you (or your customers/clients) accept the defaults when installing Office or the Access runtime, then it will install the relevant bitness as shown above.
Do you have Third-Party Dependencies?
Many older third-party controls, including COM libraries (.dll's) and custom ActiveX controls (.ocx's) are only available in 32-bit versions. This is especially true if the developer used Visual Basic 6 to build the controls, as there is no 64-bit support in classic (non-.NET) Visual Basic.
You cannot run a 32-bit COM library or ActiveX control from 64-bit VBA.
If you find yourself in that situation, you will need to stick with 32-bit Office. That said, Microsoft may someday stop offering 32-bit Office entirely. When that happens, you need to have a plan to replace the functionality of your 3rd party dependencies. Now is the time to contact those developers or start pursuing alternatives.
Is this a Development Machine?
If you are a Microsoft Access developer, I highly encourage you to install the 64-bit version of Access on your development computer:
There are often compatibility issues moving an Access application from 32-bit to 64-bit. It's far better to encounter those errors on your development machine and address them there, rather than wait for them to become a problem for your users.
Are you having Memory Problems?
If you have started receiving "Out of Memory" or "Out of Resources" errors, then a move from 32-bit to 64-bit Access may be the easiest solution.
These errors often start to appear shortly after an upgrade from an older version of Access. The problem is that each new version of Access sets aside more memory for itself, leaving less memory available for your application. With RAM being relatively cheap, this is not a big deal for 64-bit Access.
But, since 32-bit Access is limited to only 2 GB of usable memory–regardless of how much physical memory is available on the machine–these types of errors can be a real problem on newer versions of Access.
Dealing with a Catch-22
What if you have an application that is getting frequent "Out of Memory/Resources" errors but is also dependent on a 32-bit only library or ActiveX control?
One possible workaround is to hack the 32-bit version of Access to create 4 GB of addressable memory space rather than the 2 GB it has by default. The way you do this is by manually enabling "large address awareness" for msaccess.exe.
LAA: Large Address Awareness
As noted above, 32-bit software should be able to access 4 GB of memory.
In practice, though, half of that memory was set aside for operating system use. In order to use the full 4 GB, applications have to be marked as "Large Address Aware" (LAA). Other Office applications (such as Word and Excel) have had this feature for years. As of 2023, Microsoft Access is still not Large Address Aware.
This means that the practical limit for 32-bit Microsoft Access is only 2 GB of addressable memory space.
It is possible to manually enable LAA mode by altering the
msaccess.exe executable file. I explain the process here:
Of course, many organizations (especially large enterprises) are understandably reluctant to make an unsupported change to an executable file. At last month's DevCon Vienna, the Access team listed LAA support as one of their development priorities. That said, it's been on the roadmap or listed as a development priority for years, and it still hasn't happened. Holding one's breath until the feature arrives is not recommended.