none
The 32-bit OLE DB provider "Microsoft.Ace.OLEDB.12.0" cannot be loaded in-process on a 64-bit SQL Server RRS feed

  • Question

  • Hi

    I have a SQL Server 2012 (64 bit) on a remote Windows 2008 R2 (64 bit) Server. I have the Access 2010 database engine (32 bit) installed on this machine.

    I have an MS Access 2000 db residing on a local Windows 2008 R2 (64 bit) Server. I have the Access 2010 database engine (32 bit) installed on this machine too. My ADO.Net app, which is running on the local server and is set to run on x86, has opened a connection to the remote SQL Server and has run below query;

    DELETE tblStaff 
    FROM OPENROWSET('Microsoft.Ace.OLEDB.12.0','F:\Events Data\Events Data.mdb';'admin';'', Staff) AS a INNER JOIN tblStaff ON a.[Staff ID] = tblStaff.[StaffID]
    WHERE a.[Contact Status] <> "Current"


    I am getting below error on this query;

    The 32-bit OLE DB provider "Microsoft.Ace.OLEDB.12.0" cannot be loaded in-process on a 64-bit SQL Server

    How can I run the above query so I can delete the rows in the remote SQL Server based on relation with local MS Access table? Linked tables within MS Access and linked server in SQL Server are not among available options.

    Thanks

    Regards



    • Edited by Y a h y a Tuesday, April 22, 2014 2:38 PM
    Tuesday, April 22, 2014 2:36 PM

Answers

  • You will need the 64-bit version of ACE in order to connect from the 64-bit SQL Server database engine.

    Paul ~~~~ Microsoft MVP (Visual Basic)

    Tuesday, April 22, 2014 3:41 PM

All replies