首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Excel VBA DBEngine.CreateWorkspace失败,不能加载DLL

Excel VBA DBEngine.CreateWorkspace失败,不能加载DLL
EN

Stack Overflow用户
提问于 2015-08-26 22:24:28
回答 2查看 5.8K关注 0票数 1

我有一个在Excel中用VBA编写的遗留业务应用程序。它使用VBA库(安装在c:\program files (x86)\Common Files\Microsoft Shared\DAO\dao360.dll上)和类WorkspaceDatabaseDBEngineConnection通过ODBC连接到SQL数据库。

它正常工作到Windows 7,但在Windows8 /Server 2012上,它在第一次调用DAO时就不起作用了:

代码语言:javascript
运行
复制
Set ws = DBEngine.CreateWorkspace(wsName, "", "", dbUseODBC)

引发运行时错误号3633描述"Cannot load DLL: 'msrdo20.dll'"。这既发生在类库的DBEngine.Errors中,也发生在常规的VBA Err对象中。

无论文件msrdo20.dll是否存在,都会发生此错误。

我找到了https://support.microsoft.com/en-us/kb/260369,上面写着包括ODBCDirect,但这似乎与此无关。

我找到了http://www.xtremevbtalk.com/archive/index.php/t-172385.html,它建议从引用中删除Microsoft 3.6并切换到DAO 3.5 --但是这样做更糟,运行时错误为429,"ActiveX组件不能创建对象“。

这是Windows Server 2012,Excel 2013。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-05-23 05:52:47

这个博客为我解决了这个问题:

http://pwaldman.com/unable-to-load-msrdo20-dll-or-rdocurs-dll/

摘录:

分辨率

  1. VisualBasic6.0下载Service 6 (Vs6sp6.exe)

http://www.microsoft.com/en-us/download/details.aspx?id=9183

  1. 运行Vs6sp6.exe并解压缩文件
  2. 打开msrdo20.cab,它包含以下文件: MSRDO20.DLL、MSRDO20.INF和RDOCURS.DLL。提取所有三个文件并将它们复制到C:\Windows\SysWOW64 64\目录。
  3. 打开一个提升的(管理)命令提示符,导航到C:\Windows\SysWOW64 64,并注册MSRDO20.DLL。RDOCURS.DLL不需要注册。 C:\Windows\System32> cd C:\Windows\SysWOW64 64 C:\Windows\SysWOW64> regsvr32 MSRDO20.DLL
票数 3
EN

Stack Overflow用户

发布于 2015-08-27 17:30:15

当我使用regsvr32时,我忘记了作为管理员运行命令提示符。这就是为什么VBA找不到DLL的原因。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32237704

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档