none
Using 32-bit MS Access (2003) mdb in a 64-bit application RRS feed

  • Question

  • I'm creating an 'add-in' for a product called "esri ArcPro", a 64-bit application.  My add-in is basically a button on a toolbar, that will connect to an MS Access 2003 database (.mdb) and show data on in a WPF Window.

    My OS is Windows 7, 64-bit with MS Office 2010 32-bit installed but with MS Access 2003.

    Will it be possible to connect to this .mdb without installing MS Office 64-bit??  I keep getting the error "Microsoft.ACE.OLEDB.12.0 is not registered", but if I download/install the 2010 version from this link  I can only install the 32-bit driver.

    I have tried building my application (through VS) as x86, x64 and Any CPU, but none resolves the issue.


    Brian


    • Edited by Khabibulla Friday, April 13, 2018 6:01 PM
    Friday, April 13, 2018 6:00 PM

Answers

All replies

  • Hi Brian,

    Rather than installing Office, have you tried installing just the ACE engine?

    Check out this download.

    Hope it helps...

    Friday, April 13, 2018 6:15 PM
  • Hi,

    Yes.  The link you sent me is the same as the link in my original post.  It has not helped the issue.  


    Brian

    Friday, April 13, 2018 6:48 PM
  • Hi Brian,

    Sorry, I missed that. If you have Office already installed on the machine, you will not be able to install the engine for a different bit-ness. I thought you were trying to develop on a machine without Office installed to duplicate the setup your clients have.

    Have you considered using a VM to duplicate their setup, so maybe you can have your development tools with the 64-bit engine installed?

    Just a thought...

    Friday, April 13, 2018 7:16 PM
  • No worries.  My machine is already the same as everyone else's machine.  So I guess what I'm trying to do is figure out how to get this 64-bit application to connect to the database.  It seems like without an upgrade to MS Office this won't be possible???

    Brian

    Friday, April 13, 2018 7:46 PM
  • Hi Brian,

    I'm a little confused now. I guess I am not quite sure why your 64-bit app won't be able to connect to a 32-bit database. Have you tried creating a 32-bit ACCDB file just to test if you can connect to it? If you can, then perhaps the next best thing is to upgrade your MDB to ACCDB, if possible or desired.

    Just a thought...

    Friday, April 13, 2018 7:55 PM
  • Well we are running MS Access 2003, so ACCDB is not an option....at least right now.  I could probably find someone to convert though for testing purposes.  

    Why the 64-bit app won't connect I guess is what I am trying to get at.  We have an older version of the software running which is 32-bit and it connects no problem, but the 64-bit will not.  I'm thinking the problem was with the setup of my system, but maybe the issue is with the application.<o:p></o:p>



    Brian

    Friday, April 13, 2018 8:04 PM
  • Hi Brian,

    Right. I could be wrong but I think a 64-bit Access 2010 application should be able to read a 32-bit Access 2003 database. If so, then a 64-bit application should be able to connect to a 32-bit database file.

    Just my 2 cents...

    Friday, April 13, 2018 8:22 PM
  • First problem is that you can't load a 32-bit OLEDB Provider from a 64-bit app, which means you can't use either the Jet OLEDB Provider (installed with Windows) or 32-bit ACE (installed with 32-bit Office 2010). Second problem is that Microsoft does not support the installation of both 32-bit and 64-bit Office components. There is a workaround for the dual installation if you want to give it a try, which will enable you to use the 64-bit ACE OLEDB Provider (your error message should disappear):

    https://knowledge.autodesk.com/support/autocad/learn-explore/caas/sfdcarticles/sfdcarticles/How-to-install-64-bit-Microsoft-Database-Drivers-alongside-32-bit-Microsoft-Office.html

    Otherwise, the alternative would be create a 32-bit .NET web service that would be able to fetch data from the database using either 32-bit Jet or ACE OLEDB. Since you are crossing process boundaries this would eliminate the 32-bit/64-bit issue.


    Paul ~~~~ Microsoft MVP (Visual Basic)

    Friday, April 13, 2018 8:47 PM
  • You can and should be able to install a x64 bit version of ACE.

    ACE can read + open the 2003 mdb files. I would suggest installing ACE x64 for 2010.  That should allow your x64 bit in-process .net code to open + read the x32 access file (both x32/x64 ACE can open mdb or accDB files).

    Regards,

    Albert D. Kallal (Access MVP, 2003-2017)

    Edmonton, Alberta Canada

    Saturday, April 14, 2018 9:52 AM
  • Hi Paul.  I will give things a go with both of your solutions and post back once I have things figured out.

    Thanks for posting!!


    Brian

    Monday, April 16, 2018 11:57 AM
  • Hi.  To close this out, I ended up using the Autodesk 'dual install' workaround as mentioned in Paul's post above.

    Perhaps once I have more time, I will look into the webservice option, but for a quick-fix the dual install is working.

    Thanks!


    Brian

    Wednesday, April 18, 2018 2:26 PM
  • Hi Brian,

    Glad to hear you got it sorted out. Good luck with your project.

    Wednesday, April 18, 2018 2:46 PM