We currently have a major issue using Microsoft Access Database Engine 2010. The engine comes in 64-bit and 32-bit forms, which is good. However, apparently you need to always install the 32-bit version if the host process is always 32-bit. Fine, we can do this.
Our software deals with a lot of legacy components that are 32-bit, and much of it is in VB6 code, which generates 32-bit assembly. So, we are under the assumption that the driver must also be installed as 32-bit. Indeed, when we install 32-bit drivers on a 64-bit machine, and run our 32-bit applications, it works correctly.
However, the problem begins when Office 2010 64-bit is installed on the system. Trust me, we've tried to educate users that 64-bit Office is largely unnecessary, to no avail. As computers come off the assembly line with 64-bit versions installed, we're unable to keep up with support requests when our software breaks something. Either the 64-bit Office breaks our installation, or our installation breaks their Office version, but it's not pretty either way. A further issue is that non-legacy software will sometimes install the 64-bit drivers (as they should), and the two versions simply do not coexist in any reasonable manner. Either our software breaks, or their software breaks.
So, has anybody managed to find a way to make the 32-bit drivers coexist with 64-bit installations? I have seen that installing with /passive
flag allows the two to be installed, and our installer does use passive. Both are being installed, but once on the system either our software no longer works, or Office constantly repairs its installation. Is there any reasonable way to make this work?
The 32-bit and 64-bit versions of Office programs aren't compatible, so you can't install both on the same computer. You're developing in-house solutions, like add-ins or document-level customization. Your organization requires that Hardware Data Execution Prevention (DEP) be enforced for Office applications.
To check whether the 32-bit Microsoft Access Database Engine drivers are installed, go to C:\Windows\SysWOW64\odbcad32.exe. If on a 32-bit machine, go to C:\Windows\System32\odbcad32.exe to access the utility.
Microsoft Access Database Engine contains essential components that make it possible for Microsoft Office programs to interact with software services and applications that do not belong to Microsoft.
Answer. Microsoft Access 2016, 2013 and 2010 each have 32 and 64-bit versions.
Here's a workaround for installing the 64-bit version of the Microsoft Access Database Engine 2010 redistributable on a system with a 32-bit MS Office version installed:
Now you can start a 32-bit MS Office application without the "re-configuring" issue. Note that the "mso.dll" registry value will already be present if a 64-bit version of MS Office is installed. In this case the value should not be deleted or renamed.
Also if you do not want to use the "/passive" command line parameter you can edit the AceRedist.msi file to remove the MS Office architecture check:
You can now use this file to install the Microsoft Access Database Engine 2010 redistributable on a system where a "conflicting" version of MS Office is installed (e.g. 64-bit version on system with 32-bit MS Office version) Make sure that you rename the "mso.dll" registry value as explained above (if needed).
I hate to answer my own questions, but I did finally find a solution that actually works (using socket communication between services may fix the problem, but it creates even more problems). Since our database is legacy, it merely required Microsoft.ACE.OLEDB.12.0
in the connection string. It turns out that this was also included in Office 2007 (and MSDE 2007), where there is only a 32-bit version available. So, instead of installing MSDE 2010 32-bit, we install MSDE 2007, and it works just fine. Other applications can then install 64-bit MSDE 2010 (or 64-bit Office 2010), and it does not conflict with our application.
Thus far, it appears this is an acceptable solution for all Windows OS environments.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With