Back a few years ago, before Microsoft Office 2010, life was a little easier for developers: Office was 32-bit, period.
As you know our days just got a little more complicated since that with Microsoft Office 2010, users can also install a 64-bit native version of Office as well.
This means to us developers that our 32-bit applications using an OLEDB Provider to access Excel or Access files might not work anymore since the 32-bit provider
might not exist on a 64-bit Office 2010 installation.
In such cases, even though the user has a valid installation of Microsoft Office 2010 installed on his machine, your application might get an error as:
The ‘Microsoft.ACE.OLEDB.12.0' provider is not registered on the local machine.
Well, to address such problems Microsoft released a new redistributable named the “Microsoft Access Database Engine 2010 Redistributable”.
This redistributable provides a 32-bit or a 64-bit version of the Microsoft ACE OLEDB Provider which can be downloaded here:
http://www.microsoft.com/downloads/en/details.aspx?familyid=C06B8369-60DD-4B64-A44B-84B371EDE16D&displaylang=en.
So if as a developer you have a 32-bit application using this OLEDB provider on a machine with a 64-bit installation of Office 2010, you’ll need to install the 32-bit version of the provider.
Install Tip
Warning - This is just a tip, I used it on my dev machine and it worked, I did not test this any further and there’s absolutely no warranty,
express or implied. If anything should happen, I’m just saying I told you and I cannot be held responsible.
Launching the install of a Microsoft ACE OLEDB Provider on a machine with an Office install other than the current one (e.g., 32 on 64)
will cause the install to fail. To have it run properly you need to launch it from a command line with the “/passive” argument specified.
- To install the Microsoft ACE OLEDB Provider 32-bit on a machine running Office 2010 64-bit:
$> AccessDatabaseEngine.exe /passive
To install the Microsoft ACE OLEDB Provider 64-bit on a machine running Office 2010 32-bit:
$> AccessDatabaseEngine_X64.exe /passive