【问题标题】:Opening an access 2000 file in access 2003 - missing library在 access 2003 中打开 access 2000 文件 - 缺少库
【发布时间】:2010-11-29 05:00:52
【问题描述】:

感谢您对上一个问题的帮助。

总结:

我正在尝试在 access 2003 中打开 access 2000 文件,但缺少 Microsoft Access 9.0 对象库。有什么想法吗??

背景:

我最近继承了一个包含许多自动报告的 access 2000 文件。当我尝试打开时,出现以下错误:

Visual Basic for Applications (VBA) 在尝试访问属性或方法时遇到问题。问题可能是以下之一: 缺少参考。 有关恢复缺失引用的帮助,请参阅 Microsoft 知识库文章 283806。 表达式拼写错误。 检查事件属性中使用的所有表达式是否拼写正确。

我阅读了知识库文章,但它不是很有帮助。建议我删除标记为 MISSING 的库。但是没有!

我们检查了旧机器上的引用库,它们是:

Visual Basic 应用程序 Microsoft Access 9.0 对象库 OLE 自动化 Microsoft ActiveX 数据对象 2.1 库

除了 Microsoft Access 9.0 对象库之外,所有都存在于 access 2003 中。

根据这里:

http://allenbrowne.com/ser-38.html

文件应该存在于

C:\Program Files\Microsoft Office\Office\msacc9.olb

我从旧机器上获得了该文件的副本(不确定这是否严格符合犹太教规)并尝试导入它但无济于事。

谁能帮忙??

【问题讨论】:

  • 是否设置了对 Access 10.0 自动化库的引用?它应该涵盖所有 9.0 库。
  • 当你打开它并给出这个消息时再次检查,你确定那里没有一个图书馆,它的名字附加了 MISSING 吗?这有点难看,我已经错过了很多次。
  • 新的 A2003 MDB 是否具有 Access 11.0 对象库? Access 应该会在您打开 MDB 后立即更改引用。
  • 是的。这种情况非常令人困惑,因为这是必需的 Access 参考,并且应该根据您打开它的 Access 版本动态更新。我认为有些信息已经被忽略了。

标签: ms-access


【解决方案1】:

您可能已经注意到您以前的 Access mdb 引用了 Microsoft ActiveX 数据对象 2.1 库,并且没有引用任何 Microsoft DAO 对象库。如果在您的 Access 2003 文件中,您在 ADO 库之前引用了 DAO 库,并且如果原始代码编写得不好,那么在特别是记录集以这种方式声明的地方:

dim rs as recordset

而不是

dim rs as ADODB.recordset

您通常会遇到您遇到的那种错误,程序会认为它正在使用 DAO 记录集,而代码是为 ADO 编写的。指令如:

rs.open
rs.fields(0).definedSize

会引发你的错误

【讨论】:

  • 我会说一个带有 ADODB 引用的 Access 数据库写得不好(如果需要,它几乎从来不需要,它应该通过后期绑定使用),但我非常反对 ADO在 Access 中。
  • David W. Fenton:“如果需要 [ADODB]……应该通过后期绑定来使用”:您能给出充分的理由还是这仅仅是偏执?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-03-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-01-05
相关资源
最近更新 更多