none
Microsoft.ACE.OLEDB.12.0 provider is not registered...while Platform cannot be changed from x64 to x86

    Question

  • I have a Windows 7 64 Bit system with SQL Server 2008 R2 installed (which includes VS 2008) and I cannot establish a connection to a simple Access database sitting on the desktop of the very same computer. (Note that I use Office 2010 64 bit)

    I downloaded from Microsoft the latest 64 bit AccessDatabaseEngine (Microsoft.ACE.OLEDB.14.0) because I cannot even put on the 32 bit version since we use Office 2010 64 bit.

    I went through all the posting and could not find a solution.

    So, let me summarize this simple scenario:

    1) I have: a) Windows 7 64bit Pro, b) SQL Server 2008 R2 including VS 2008, c) Office 2010 64bit, and d) installed AccessDatabaseEngine_X64 (from MS).

    2) I have an ACCESS database copied on the desktop of the very same computer

    3) I would like to establish a database connection to the ACCESS database on the desktop with Analysis services to build some test cubes

    4) Problem: I do not have the option of changing the Platform (under the Build > Configuration Manager > "Active Solution Platform" = "new"....). It does not have the drop down list and no matter what I set. See picture here: http://img821.imageshack.us/f/platform1.jpg/

    How should I do it? I cannot change the Platform as you can see from the picture. Maybe I missed something and/or did not do it right so any help and instructions would be greatly appreciated. Thanks.

    • Edited by der72 Saturday, June 26, 2010 7:19 PM spelling
    Saturday, June 26, 2010 4:36 PM

Answers

  • Hi,

    Installing the "Microsoft Access Database Engine 2010 Redistributable", followed by the "2007 Office System Driver: Data Connectivity Components" solved a problem with the same error message for me.

    In my situation, Business Intelligence Development Studio (BIDS) would raise the error while creating an Excel Source that uses an Excel Connection Manager.

    I really just had to do the two installs, none of the other steps described above (eg. Office 2010 was already installed).

    My environment: Windows 7 64bit, SQL Server 2008R2 64bit, Microsoft Office 2010 64bit.

    A big thankyou to der72 for such persistence, and taking the time to post/share.

    Cheers, Dave.

    Saturday, January 01, 2011 12:30 PM

All replies

  • Is anyone out there who can help?

    Monday, June 28, 2010 2:01 PM
  • I just cannot believe that there is nobody in this forum who can help. I do not want to be offensive but it is hard to imagine that such a simple scenario cannot be solved by the experts over here. Too sad!
    Monday, June 28, 2010 8:16 PM
  • I am shocked, two Microsoft products cannot work with each other. What also makes me wonder after reading through all the posts over here whether I should post somewhere else.(?) This expert area does not seem to have any clue about what i should do. Any suggestion from the experts where I should go to get an answer? Anyone who can help?

    Tuesday, June 29, 2010 3:46 AM
  • Hi,

    Since you are using 64bit Office then you can only install 64bit ACE provider. But BIDS is 32 bit and it can only call 32bit provider at design time (not only for SSAS but also for other BI projects). In your machine, ACE provider is only for 64bit application. So you shouldn’t use it in your BI project.

     

    The Microsoft.ACE.OLEDB.12.0 provider is working fine in your environment you can create a UDL file to test. The picture you posted is not a bug. This is by design, you cannot change it in any version of BIDS.

     

    Two Options I can think of:

    Option1: using Jet provider. Open Access database, and save database as Access 2002-2003 database (*.mdb) – click button ‘Save & Publish’. After that, use Microsoft.Jet.OLEDB.4.0 to connect to the file.

     

    Option2: if there is new feature so you cannot convert it to Access 2002-2003 database, then you have to create this project in another 32bit office environment, after that, deploy the project to the server, and then process it in the server. Note: after deployment, you need to change the datasource in SSMS because of the file path.

     

    Personally, I would suggest you report this as a suggestion not a bug, because the picture you posted is by design.

    https://connect.microsoft.com/SQLServer/feedback/details/571116/microsoft-ace-oledb-12-0-provider-is-not-registered-while-platform-cannot-be-changed-from-x64-to-x86

     

    Hope this helps,

    Raymond

     


    Raymond Li - MSFT
    Tuesday, June 29, 2010 5:45 AM
  • Hi Raymond,

    Did I correctly understand it? Microsoft did not think that if there is an Access 2007 (.accdb) file people want to actually use it in an environment where all products are made by Microsoft? I just cannot believe how badly this is designed!

    This means that if I have the following:

    1) Windows 7 64bit

    2) SQL Server 2008 R2

    3) Office 2010 64bit

    4) an Access 2007 database (*.accdb) sitting on the same computer's desktop (or anywhere else)

    Then my options are to go through one of these tricks:

    a) Save it in an older format (*.mdb) if it is possible then use the Jet.OLEDB.4.0 driver to connect to it, or

    b) Re-create the same Access project in another 32bit office environment, deploy the it to a server, and then process it in the server.

     

    My problems are:

    1) I have functions in the queries that do not work in the *.mdb format and the older (*.mdb) format has its limitations when it comes to the amount data it can store. I already surpassed that so this option is out.

    2) I cannot re-create the project in another environment and post it on a server and process it there. The whole purpose of this is to quickly create sample testings while for example I travel and do not have access to any of our servers. So this option is out as well.

    Now, is there any other way to make this SQL Server 2008 R2 with the BIDS to recognize 32bit and 64bit drivers somehow? I just cannot believe that Microsoft did not think that people will use different environments.

    And finally, can you find out for me who were the project managers of this SQL Server 2008 R2 and Office 2010 64bit projects? I would like to contact them and congratulate for their great work. Also, most likely you will hear about this case since Microsoft did not disclose that either of the two products are incompatible with each other. In fact, Microsoft is advertising how great the compatibility of its products. This is false advertisement and it may have legal consequences.

    My final word is that as it appears Microsoft Office 2010 is the biggest animal in the foodchain. It determines whether I can use 32 or 64 bit drivers in a development environment and ensures that productivity drops to nearly zero due to the waste of times we have search for answers over the net to actually make the products work!!! It is simply unacceptable.

    Tuesday, June 29, 2010 1:40 PM
  • Ok it seems to me that I cracked it. Here is how it can be done to have 32bit and 64bit ACE 12.0 and 14.0 drivers on the same computer.

    Step1: Install AccessDatabaseEngine_2010_x64
    Step2: Install Office 2010 x64
    Step3: Open VisualStudio and leave open one analysis services project
    Step4: Install AccessDatabaseEngine_2007_x86
    Step5: Close everything, reboot, and now you can see in Visual Studio the ACE 12.0 driver

    So far it is working for me but it would be great if others can test it and give feedback

     

    Here you can see that both the 2007 and 2010 AccessDatabaseEngines are installed: http://img444.imageshack.us/f/programlist.jpg/

    Note: if for some reason you have to change anything on Office 2010 64bit, first you will have to remove the 2007 AccessDatabaseEngine.

    Tuesday, June 29, 2010 8:56 PM
  • Thanks a lot!

      I had almost same problem. I have installed Windows 7 x64, Office 2010, Visual Studio 2010. I tried to make connection string to Access 2007 file in *.accdb format. And I was confused that I can't.  I had an error message "'Microsoft.Ace.Oledb.12.0' provider is not registered on the local machine" when I tried to establish connection from the C# code or "Data Source Connection Wizard".

      First of all, i found one decision: to download and install AccessDatabaseEngine_2010_x64. When this was done, I was able to create connection FROM C# CODE, but still could not from the "Data Source Connection Wizard".

      After that I downloaded and installed AccessDatabaseEngine_2007_x86 as noticed above.

    And it works now!

     

     

     

    Sunday, July 18, 2010 7:55 PM
  • How did you manage to install both at the same time? I always get a compatibility error when I try to install the AccessDatabaseEngine_2007_x86. Any advise would be appreciate it. Thank you
    Sunday, November 14, 2010 8:27 PM
  • OMG....Your awesome.  I was trying to get this working forever.  Thanks for posting your findings.
    Thursday, November 18, 2010 2:55 AM
  • Just a follow-up. This actually works without any problem. I used this method on over 30 systems and not one had a problem. Make it even better, the Import/Export data with 64 and 32 bit can use the engines. I hope this helps/helped others.
    Saturday, November 20, 2010 5:46 AM
  • Step1: Install AccessDatabaseEngine_2010_x64
    Step2: Install Office 2010 x64
    Step3: Open VisualStudio and leave open one analysis services project
    Step4: Install AccessDatabaseEngine_2007_x86
    Step5: Close everything, reboot, and now you can see in Visual Studio the ACE 12.0 driver

    Step 6: Configure both datasources in Windows 7 64 bit. As I said both individually the x86 and the x64. You will see the drivers that corresspond to the 32 and 64 bit.

    for x64 go to and run %windir%\system32\odbcad32.exe

    for x86 go to and run C:\Windows\SysWOW64\odbcad32.exe

    Once you configured both then you'll be fine. Let me know how it went. 

    Saturday, November 20, 2010 5:52 AM
  • Hi,

    Installing the "Microsoft Access Database Engine 2010 Redistributable", followed by the "2007 Office System Driver: Data Connectivity Components" solved a problem with the same error message for me.

    In my situation, Business Intelligence Development Studio (BIDS) would raise the error while creating an Excel Source that uses an Excel Connection Manager.

    I really just had to do the two installs, none of the other steps described above (eg. Office 2010 was already installed).

    My environment: Windows 7 64bit, SQL Server 2008R2 64bit, Microsoft Office 2010 64bit.

    A big thankyou to der72 for such persistence, and taking the time to post/share.

    Cheers, Dave.

    Saturday, January 01, 2011 12:30 PM
  • Thanks Der72!  Works like a charm with both ACE_2010_x64 and ACE_2007_x86 drivers installed.

    The issue is not limited to BIDS, I had the same problem with SSIS 2008R2 x64 on Windows 7 Ultimate 64bit importing Excel 2010 x64 .xlsx files. Probably relates to Windows 7 64bit depending on a 32bit ODBC library...

    Tuesday, February 22, 2011 10:19 AM
  • Thanks Der72! It took me so long to figure this one out.

    Now I understand why: Visual Studio 2010 is a 32bit app and can only use 32 bit drivers at design time inside the IDE. Once compiled it can use whichever you want (32 or 64).

    Thanks again.

    Thursday, April 07, 2011 6:44 AM
  • hi every one, it's embarrassing that so much important issue it's not even included in msdn or other helping stuff, thanks for your time der72

    I've some problems, I'm using:

    windows vista SP!  64-bit

    Office 2007 32-bit

    visual Studio 2005 .net 2 - vb.net

    after installing  AccessDatabaseEngine 2010 and 2007 as said above

    but still I have the errors for jet.oledb.4.0  and ace.oledb.12.0 that they are not registered!(is it related to my vista? ):  )

    I think i should change my software, if i buy and install visual studio 2012 and office 2012 will it be OK?

    i'm writing a software which is meant to be running in other platforms and users should be able to create or read from other databases.I can't tell everyone using the software to do installs/uninstalls as above!

    so if i move to newer versions can i be able to use oledb and access database properly?

    Friday, December 28, 2012 4:39 AM
  • Hi everyone.

    I have been resemble experience until today, but I find some cluing points.

    First my PC installed circumstance are Windows 7 pro X64, MS Office 2010 X64,

    MS Access database engine 2007 (English) and MS Access database engine 2010 (English).

    On this PC,

    1. I create a ACCESS DB at Access 2010 x64, but It could not connected by VS 2008 R2
    2. Then I save this ACCESS DB to 2002 – 2003 database version(*.mdb), and I try to connect with ‘Microsoft.Jet.OLEDB 4.0’,
      The result was successful.
    3. So I re-version up the upper ACCESS DB to 2002 – 2003 database version(*.mdb) to ACCESS DB 2007(*.accdb),
      and I retry to connect with ‘Microsoft.ACE.OLEDB 12.0’, yes The result was also successful!.

    I don’t know way and I’m happy!

    Thanks.


    rkdmfeksvnd

    Wednesday, February 27, 2013 7:57 AM