title: The 32-bit OLE DB provider "Microsoft.ACE.OLEDB.12.0" cannot be loaded in-process on a 64-bit SQL Server
body: <p>I have the following code in a SQL Server database, recently we had migrated this database from a Server which is SQL Server 2008 R2 to another server which is SQL Server 2014.</p>
  
  <pre><code>IF EXISTS (SELECT 1 FROM sys.servers WHERE name = 'Excel_File_Src')
      EXEC sp_dropserver 'Excel_File_Src', 'droplogins'
  
  EXEC sp_addlinkedserver 'Excel_File_Src',
          @srvproduct = 'ACE 12.0',
          @provider = 'Microsoft.ACE.OLEDB.12.0',
          @datasrc =  'E:\UCB_Data.xlsx' ,                
          @provstr = 'Excel 8.0;'
  
  EXEC sp_addlinkedsrvlogin 'Excel_File_Src', 'false'
  
  EXEC SP_TABLES_EX 'Excel_File_Src'
  </code></pre>
  
  <p>New SQL Server version is: </p>
  
  <pre><code>Microsoft SQL Server 2014 - Microsoft Corporation Developer Edition (64-bit) on Windows
  </code></pre>
  
  <p>It is used to run perfectly on old server, but after moving it to new server we getting below error. </p>
  
  <blockquote>
    <p>The 32-bit OLE DB provider "Microsoft.ACE.OLEDB.12.0" cannot be loaded in-process on a 64-bit SQL Server.</p>
  </blockquote>