当我启动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
,没有。
试图手动安装,并收到错误消息:
R6034
代表C:\Windows\System32\regsvr32.exe
,当我点击确定 - >模块“SQLDMO.DLL
”无法加载。 Make sure the binary is stored at the specified path or debug it
... blah blah 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,并将它们存储在SysWOW64
和System32
中。
我已经运行Office repair
,Windows Update
,SQL Server repair
(日志文件表示客户端工具向后兼容性的所有内容都已通过。)
非常感谢任何帮助。 谢谢,Miki。
答案 0 :(得分:0)
不确定我是如何设法的,但是(以某种方式)设法注册64位SQLDMO.DLL(在它没有真正注册之前)然后在我的VBA代码中 - >工具 - >引用...我试图从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然后它停止工作! 我不知道发生了什么,或者为什么参考表说它指向一个文件夹但实际上指向另一个文件夹,或者在之前的相同尝试之后如何,只是现在它可以工作。 我希望能够复制这个(如果我需要再次完成这个过程),所以任何想法/建议将不胜感激。 谢谢,Miki。