2012-11-23 47 views
0

當我啓動MS-Access應用程序(具有VBA代碼)時,出現這些錯誤消息。MSACCESS.EXE中出現錯誤R6034,後面跟着運行時錯誤'-2147023782(8007045a)'

當我在第二第一條錯誤消息和調試單擊確定,調試器打開,並指出這行:「Set oServer = New SQLDMO.SQLServer

我意識到,它與SQL-DMO問題,但似乎無法註冊該DLL。

我的環境:Win7 Pro 64-bit,Office 2010 64-bit,MS SQL Server 2008 R2 SP2 64-bit

我從微軟下載了向後兼容包,運行了MSI,沒有任何東西。 嘗試手動安裝,並得到錯誤信息:

  1. R6034C:\Windows\System32\regsvr32.exe,當我點擊確定 - >模塊「SQLDMO.DLL」加載失敗。 Make sure the binary is stored at the specified path or debug it ...等等等等
  2. 當我嘗試從C:\Windows\SysWOW64註冊它,我得到「The module "SQLDMO.DLL" may not (be) compatible with the version of Windows that you're running. Check if the module is compatible with....

我檢查的SQLDMO.DLL版本,它肯定是64位的。我已經找到了所有其他該SQL-DMO需求和存儲他們SysWOW64System32的DLL。

我已經運行Office repairWindows UpdateSQL Server repair(日誌文件表明通過對家居客戶端工具向後兼容)。

任何幫助非常感謝。 謝謝,三木。

+0

好吧,設法通過從c:\ Windows \ SysWOW64運行regsvr32.exe sqldmo.dll來註冊SQLDMO.DLL。 SQLDMO.DLL是64位的,從我的理解來看,SysWOW64中的regsvr32.exe是32位的,所以我不確定它是如何註冊的... 錯誤消息仍然存在。不知道從這裏做什麼。 – mikimr

回答

0

不知道我是如何管理的,但是(以某種方式)設法註冊了64位SQLDMO.DLL(在它沒有真正註冊之前),然後在我的VBA代碼中 - > Tools - >參考文獻...我嘗試從64位文件夾加載SQLDMO.DLL。 起初,它沒有工作,然後我在SysWOW64(這是一個32位文件夾)中放入一個DLL的副本,並從那裏註冊它(一旦它被註冊,顯然,系統不需要它那裏 - 我刪除它,它仍然有效)。 然後我試圖找出它是如何工作的。我檢查了VBA代碼中的參考表,並且Microsoft SQLDMO對象庫仍然指向C:\ Program Files文件(x86)\ Microsoft SQL Server \ 80 \ Tools \ Binn,但是當我從那裏刪除SQLDMO.DLL時仍然工作...然後,我查看了C:\ Program Files \ Microsoft SQL Server \ 80 \ Tools \ Binn並從那裏刪除了SQLDMO.DLL,然後停止工作! 我不知道發生了什麼事情,或者爲什麼參考表是說它指向一個文件夾,但實際上指向一個不同的文件夾,或者之後如何嘗試,只有現在它工作。 我希望能夠複製這個(萬一我需要再次經歷這個過程),所以任何想法/建議將不勝感激。 謝謝,三木。