MSACCESS.EXE中的错误R6034后跟运行时错误'-2147023782(8007045a)'

时间:2012-11-23 09:32:47

标签: sql-server-2008-r2 ms-access-2010 windows-7-x64 sqldmo

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

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

的行。

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

我的环境:Win7 Pro 64-bitOffice 2010 64-bitMS SQL Server 2008 R2 SP2 64-bit

我从Microsoft下载了向后兼容包,运行了MSI,没有。 试图手动安装,并收到错误消息:

  1. R6034代表C:\Windows\System32\regsvr32.exe,当我点击确定 - >模块“SQLDMO.DLL”无法加载。 Make sure the binary is stored at the specified path or debug it ... blah blah
  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....
  3. 我检查了SQLDMO.DLL的版本,它肯定是64位的。我找到了SQL-DMO需要的所有其他DLL,并将它们存储在SysWOW64System32中。

    我已经运行Office repairWindows UpdateSQL Server repair(日志文件表示客户端工具向后兼容性的所有内容都已通过。)

    非常感谢任何帮助。 谢谢,Miki。

1 个答案:

答案 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。