代码之家  ›  专栏  ›  技术社区  ›  Derek

在Access 2003中打开Access 2000文件-缺少库

  •  1
  • Derek  · 技术社区  · 15 年前

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

    总结:

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

    背景:

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

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

    我读了知识库的文章,但没什么帮助。建议我删除标记为“丢失”的libary。但没有一个!

    我们检查了旧机器上的参考库,它们是:

    应用程序用VB语言 Microsoft Access 9.0对象库 OLE自动化 Microsoft ActiveX数据对象2.1库

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

    根据这里:

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

    该文件应位于

    C:\程序文件\Microsoft Office\Office\MSAcc9.olb

    我从旧机器上得到了那个文件的副本(不确定这是否是严格的犹太洁食),并试图导入它,但没有用。

    有人能帮忙吗??

    1 回复  |  直到 13 年前
        1
  •  1
  •   Philippe Grondier    15 年前

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

    dim rs as recordset
    

    而不是

    dim rs as ADODB.recordset
    

    您通常会得到您所拥有的那种错误,程序会认为它使用的是DAO记录集,而代码是为ADO记录集编写的。说明,如:

    rs.open
    rs.fields(0).definedSize
    

    会引起你的错误