【问题标题】:Access db missing msado15.dll when run by end-user最终用户运行时访问缺少 msado15.dll 的数据库
【发布时间】:2012-09-05 03:54:34
【问题描述】:

我有一个脚本繁重的 Access db,我最近将它发送给最终用户进行错误测试。这些脚本主要是读取数据,从内部表中添加/更新/删除,以及与共享驱动器交互。

他们立即返回报告说,由于对 'msado15.dll' 6.1 版(又名 Microsoft ActiveX 数据对象 6.1 库)的引用丢失/损坏,最重要的部分无法运行.这带来了两个问题:

  1. 为什么这个库会存在于我的机器上而不是他们的机器上?据我所知,我们所有的机器都有相同的标准 Office 安装包。是因为我有 SQL Server 而他们没有吗?

  2. 我想我找到了替代方案,msado28.tlb(又名 Microsoft ActiveX 数据对象 2.8 库),它似乎也能正常工作,但我还没有在用户的机器。这是一个很好的替代品吗?

【问题讨论】:

  • 如果您必须对 ADO 使用早期绑定,2.8 版是更好的选择,因为它应该在您的所有 XP 和 Windows 7 客户端计算机上都可用。我不知道关于 ADO 6.1 的所有细节……它不是 SQL Server 的一部分;它不是 SQL Server 的一部分。我认为它可能作为 Win 7 SP 从 ADO 6.0 升级而来。如果您可以切换到 ADO 的早期绑定,则无需担心 ADO 版本差异。
  • @HansUp,感谢您提供背景信息。
  • 我最后一句写错了。我的意思是,如果您可以切换到 ADO 的 late 绑定,则无需担心 ADO 版本差异。

标签: ms-access ms-access-2007


【解决方案1】:

你需要分布式版本的库吗?您可以使用后期绑定:

Dim rs As Object
Set rs = CreateObject("ADODB.Recordset")

使用早期绑定进行开发通常最容易,使用后期绑定进行分发。

【讨论】:

  • 是的,我一直喜欢开发的早期绑定。除了更改参考之外,我还应该这样做吗?因为即使我这样做,当我在他们的机器上打开数据库时,参考菜单仍然显示缺少参考。
  • 完全摆脱库引用,添加所有后期绑定的东西,确保您已设置常量、编译和测试。
  • +1 早期绑定非常适合开发工作,因为您可以获得智能提示,除非您有过目不忘的记忆力,否则非常方便。但是我最近严格尝试发布所有后期绑定的内容,因为引用只需要存在于一个版本中并且不必完全匹配,显然对于 ADO 有少数版本(1.2 - 2.8)或类似的东西.
猜你喜欢
  • 2012-10-21
  • 2011-03-23
  • 1970-01-01
  • 2021-01-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-10-28
相关资源
最近更新 更多