title: Deploying 32-bit Access system to 64-bit Office machine
body: <p>I’m compiling my Access database from a 32-bit Office machine running Access 2010. I’m deploying as an .accdr file for use in Access 2010 Runtime. My references are: </p>
  
  <p>VBE7.DLL </p>
  
  <p>MSACC.OLB </p>
  
  <p>stdole2.tlb </p>
  
  <p>ACEDAO.DLL </p>
  
  <p>EXCEL.EXE </p>
  
  <p>msxml6.dll</p>
  
  <p>I will need to deploy to a range of platforms, including 64-bit 2010, 2013 and so on.</p>
  
  <p>I take it there is no problem with most of the references as the deployed system will be using Access 2010 Runtime. However, Excel will give me a problem. I had tried registering the Excel reference (in fact all references, just in case any any other version differed by machine) on the fly, but it seems I can’t register a 64-bit version of Excel from a 32-bit system. Or can I?</p>
  
  <p>Also, would I still need to make changes to API calls (using the PtrSafe keyword) if I’m using Runtime 2010?</p>
  
  <p>Here are some of the API calls I make:</p>
  
  <pre><code>Declare Function aht_apiGetOpenFileName Lib "comdlg32.dll" 
      Alias "GetOpenFileNameA" (OFN As tagOPENFILENAME) As Boolean
  
  Private Declare Function apiGetLocaleInfo Lib "kernel32" 
      Alias "GetLocaleInfoA" (ByVal Locale As Long, ByVal LCType As Long, ByVal lpLCData As String, ByVal cchData As Long) As Long
  
  Private Declare Function LoadLibraryRegister Lib "kernel32" Alias "LoadLibraryA" (ByVal lpLibFileName$) As Long
  
  Public Declare Function SetDllDirectoryA Lib "kernel32" (ByVal lpPathName As String) As Long
  
  Private Declare Function GetProcAddressRegister Lib "kernel32" Alias _
  "GetProcAddress" (ByVal hModule&amp;, ByVal lpProcName$) As Long
  
  Private Declare Function CreateThreadForRegister Lib "kernel32" Alias "CreateThread" (lpThreadAttributes As Any, ByVal dwStackSize&amp;, ByVal lpStartAddress&amp;, ByVal lpparameter&amp;, ByVal dwCreationFlags&amp;, ThreadID&amp;) As Long
  </code></pre>