0

启动应用程序时出现这些错误消息MS-Access(有VBA代码)。

当我在第一个错误消息中单击“确定”并在第二个错误消息中单击“调试”时,调试器打开并指向显示“ Set oServer = New SQLDMO.SQLServer”的行

我意识到这是 SQL-DMO 的问题,但似乎无法注册 DLL。

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

我从 Microsoft下载了向后兼容包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 需要的所有其他 DLL,并将它们存储在SysWOW64System32.

我已经运行Office repair, Windows Update, SQL Server repair(日志文件表明客户端工具向后兼容性的所有内容都通过了)。

任何帮助深表感谢。谢谢,三木。

4

1 回答 1

0

不知道我是如何做到的,但是(以某种方式)设法注册了 64 位 SQLDMO.DLL(在它没有真正注册之前),然后在我的 VBA 代码中 - >工具 - >参考.. . 我试图从 64 位文件夹加载 SQLDMO.DLL。起初,它不起作用,然后我将 DLL 的副本放在 SysWOW64(这是一个 32 位文件夹)中并从那里注册它(一旦注册,显然,系统不需要它在那里不再 - 我删除了它,它仍然有效)。然后我试图弄清楚它是如何工作的。我检查了 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 然后它停止工作!我不知道发生了什么,或者为什么参考表说它指向一个文件夹但实际上指向另一个文件夹,或者在之前的相同尝试之后如何,现在才起作用。我希望能够复制这个(以防我需要再次经历这个过程),所以任何想法/建议将不胜感激。谢谢,三木。

于 2012-11-25T02:49:32.350 回答