如何解决在 Access 数据库中的引用问题

Support for Office 2003 has ended

Microsoft ended support for Office 2003 on April 8, 2014. This change has affected your software updates and security options. Learn what this means for you and how to stay protected.

重要说明:本文是由 Microsoft 机器翻译软件进行的翻译并可能由 Microsoft 社区通过社区翻译机构(CTF)技术进行后期编辑,或可能是由人工进行的翻译。Microsoft 同时向您提供机器翻译、人工翻译及社区后期编辑的文章,以便对我们知识库中的所有文章以多种语言提供访问。翻译的文章可能存在词汇、句法和/或语法方面的错误。Microsoft 对由于内容的误译或客户对内容的使用所导致的任何不准确、错误或损失不承担责任。

点击这里察看该文章的英文版: 310803
概要
本文介绍了在 Access 数据库中的引用的使用问题。

了解引用错误,需要同时如何在 Access 数据库中引用库和安装在目标计算机上的数据库,而不会破坏这些引用所需内容的理解。这篇文章是以下主题的摘要:
  • 查看访问数据库引用
  • 在 Access 中的 Applicationsreferences 为解决 Microsoft Visual Basic
  • 了解引用错误消息
  • 在 developmentcomputer 上解决引用问题
  • 分发数据库文件
  • 更新的引用列表
  • 分发数据库文件的 ActiveXcontrols
  • 重新注册文件
更多信息

查看访问数据库引用

若要查看当前数据库引用:
  1. 打开该数据库。
  2. 按 ALT + F11 来启动 Visual Basic 编辑器。
  3. 工具菜单上单击引用

在 Access 中的 Visual Basic 引用解析

访问加载的信息将显示在引用框中,根据每个引用的相关文件 (例如,类型库、 对象库或控件库)。如果 Access 找不到该文件,Access 将运行以下过程以查找该文件:
  1. Access 检查以查看是否引用的文件 iscurrently 加载到内存中。
  2. 如果该文件不加载到内存中,访问试图的确认RefLibPaths注册表项存在。如果该项存在,Access 查找查找具有相同的名称作为参照 namedvalue。如果没有匹配项,Accessloads 的指名的值指向的路径中的引用。
  3. 然后访问搜索所引用的文件在您执行以下操作位置,顺序如下:
    1. 应用程序文件夹 (Msaccess.exe 文件的位置)。
    2. 如果您单击打开文件菜单上看到当前文件夹。
    3. Windows 或 Winnt 文件夹运行操作系统文件的位置。
    4. Windows 或 Winnt 文件夹下的系统文件夹中。
    5. 由操作系统直接访问文件夹在 PATH 环境变量中。
  4. 如果 Access 找不到该文件中,引用 erroroccurs。

了解引用错误消息

有一些与丢失的文件或已从数据库中使用的版本的不同版本的文件相关的错误信息。在大多数情况下,您可以搜索 Microsoft 知识库以查找有关特定错误消息的文章,然后可以通过下面文章中的步骤来解决错误。在某些情况下,依赖项文件未正确匹配与主文件。

下面的列表介绍了一些您可能会收到引用错误消息。但是,请注意,该列表不包含所有可能引用错误消息。
  • "方法 方法名称 对象的对象名称 失败"

    通常情况下,您的 mayreceive 此错误消息如果没有编程类型库,例如,无效的数据访问对象 (DAO) 动态链接 library(DLL) 文件的问题。您可以搜索 Microsoft 知识库文章 thatdescribe 的各种形式的此错误消息。
  • "功能在中不可用使用情况 表达式"

    您可能会收到 thiserror 消息,如果问题编程类型库,或者如果代码不专门调用正确的库和文件 listedat 较低的优先级,可在引用列表中包含 samefunction 名称--例如,如果在 DAO 代码使用 ActiveX 数据 Object(ADO) 库的文件比列在 DAO 库比更高的优先级。如果窗体或报表中包含一个 ActiveX 控件,可能以该错误消息 alsoreceive。
  • "找不到项目或库"

    如果 Access 无法找到的文件,在引用列表中,您可以 receivethis 错误消息。Oftenthe 文件被标记为引用对话框中的缺失。有时上开发 computerbut 的目标计算机上不存在该文件。 有关此错误的其他信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
    208218 ACC2000: 中断与丢失的引用的数据库中的 VBA 函数
  • "未定义的变量"或者"用户定义的类型 notdefined"

    如果您使用用户级安全机制向导保护默认情况下包含的库的数据库引用库用量,您可能会收到下列错误消息之一。例如,引用 tolibraries,存在于不安全的数据库中没有自动 createdin 新的安全数据库。
  • "运行时错误 5,""无效的过程调用或参数,""库包含此符号未引用当前项目中,通过"或"包含此符号的库未被引用当前项目中,使符号未定义"

    您可能会收到一个这些错误消息如果对数据库、 类型库、 标记为丢失的或有一个对象库的引用。 有关其他信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
    231413 ACC2000: 错误消息,指示缺少的引用
  • "ActiveX 组件不能创建对象"

    Thiserror 消息并不意味着涉及的 ActiveX 控件。例如,一个可能的原因是 DAO 中,这是一个 ActiveX 组件,不能创建对象,因为 DAO 自动化服务器无法启动。通常情况下,原因是引用的功能提供程序的 Dll 未注册,或未正确注册。有关此错误的其他信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
    244264 信息: 在自动执行 Office 应用程序时错误 429 进行疑难解答
    尽管这篇文章的编写 VisualBasic 视点,它涉及的此错误的原因很多。

在开发计算机上解决引用问题

如果代码或 ActiveX 控件依赖于引用默认不包含数据库中创建新的空白数据库,然后从另一个数据库文件中导入对象可以创建引用问题。是一个 Access 2000 数据库的默认引用:
  • Visual Basic for Applications
  • Microsoft Access 9.0 对象库
  • OLE 自动化
  • Microsoft ActiveX 数据对象 (ADO) 2.1 库
如果源是另一个 Access 2000 数据库,验证引用匹配。如果源是在早期版本的 Access 中,DAO 3.5 版或更早版本可能正在使用;但是,Access 2000 不提供默认 DAO 3.5。请尝试删除 ADO 2.1 参考库 (如果存在) 并添加对 DAO 3.6 对象库的引用。

如果您从早期版本的 Access 中,转换数据库,该数据库包含 Utility.mda 文件的引用,在大多数情况下可以删除此引用因为此引用调用的函数包含在 Access 2000 中的默认引用。如果存在早期版本的 DAO 的参考,还可以删除这些引用因为 DAO 3.6 可以解决这些函数。

若要添加对库的引用:
  1. 打开该数据库。
  2. 按 ALT + F11 来启动 Visual Basic 编辑器。
  3. 工具菜单上单击引用
  4. 可用的引用,请单击以选中的库名称旁边的复选框,然后单击确定
若要删除对库的引用:
  1. 打开该数据库。
  2. 按 ALT + F11 来启动 Visual Basic 编辑器。
  3. 工具菜单上单击引用
  4. 可用的引用,请单击以清除库的名称旁边的复选框,然后单击确定

分发数据库文件

有两种基本的数据库文件分发方法。您可以将文件从开发计算机复制到目标计算机,或者您可以使用打包和部署向导创建安装程序包。

如果将文件从开发计算机复制到目标计算机时,只有数据库文件将被复制。您必须手动操作来确保引用列表中列出的所有文件都都可用,在正确的版本级别和目标计算机上相同的相对位置在开发计算机上。

如果您使用打包和部署向导创建安装程序包,请参阅知识库文章作为开发在 Access 运行时应用程序的清单。 有关清单的其他信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
247530 MOD2000: 如何避免常见的错误,当您创建可分发运行时应用程序
当在 Access 运行时应用程序开发时,请注意,必须在运行时应用程序分发一些操作系统文件。Microsoft Office 2000年开发人员的组件打包和部署向导会自动执行这些文件的打包。有时所包含的文件的版本取决于其他应用程序在开发计算机上安装和程序可能会修改操作系统文件。

按照一定的准则通常确保让您使用文件的版本将不发生冲突与目标计算机上的文件时安装的运行时应用程序。下面是指导原则:
  1. 开发的任何计算机上访问数据库。
  2. 其中硬盘都有 beenreformatted 和装有只的最早版本适用的操作系统、 办公场所、 和 Office 2000 开发人员创建的计算机环境。这台计算机,以创建应用程序的运行时版本上运行 Packageand 部署向导。这可以确保文件的修订版本级别,将工作目标计算机的 onany。
  3. 创建计算机环境,其中硬盘都有 beenreformatted 和操作系统的安装位置。在此环境中测试运行 timeapplication。
    • 如果应用程序无法成功运行,您知道,没有与应用程序本身的问题。您需要找出并纠正问题之前分发应用程序。
    • 如果应用程序在测试计算机上成功运行,但无法在目标计算机上正常工作,您知道有一些错目标计算机上,而不是应用程序中。您需要找出并纠正在目标计算机上,可能不兼容或损坏的文件可能的原因。

刷新引用列表

如果引用问题涉及一个 ActiveX 控件,您可以通过刷新引用列表有时解决的问题。要刷新引用列表:
  1. 在 Visual Basic 编辑器中,在工具菜单上单击引用
  2. 引用对话框中,单击以选择不是 alreadyselected 的引用,请的记下哪一种的选择,然后单击确定
  3. 工具菜单上,再次单击引用
  4. 单击以取消所选内容的引用,然后单击确定

分发数据库文件的 ActiveX 控件

有两种类型的 ActiveX 控件的许可: 设计时许可证和运行时许可证。
  • 设计时许可证允许您从 Office 2000 开发的 licensedActiveX 控件插入到窗体和报表中的 Accessdatabase。
  • 运行时许可证允许您使用 ActiveX 控件访问数据库上没有 Office 2000 Developerinstalled,一台计算机,但运行时许可证不允许您插入新的 licensedActiveX 控件。要安装运行时许可证,请通过使用打包和部署向导,将 licensefor 控件写入目标计算机的注册表中分发 ActiveXcontrols。
缺少标志,但您可能会看到当您在设计视图中打开一个模块,然后在工具菜单上单击引用,这表示目标计算机上的通用对话框控件参考与从开发计算机的数据库文件中的源不匹配。

如果您分发数据库文件但不安装可分配的通用对话框控件,控件的引用可能会被标记为丢失,或者您可能会收到错误消息"您不具有使用此 ActiveX 控件所需的许可证"如果非可分发控件已安装在目标计算机上。

即使数据库文件不运行时应用程序的一部分,您可能会收到错误消息"您不具有使用此 ActiveX 控件所需的许可证"如果目标计算机已安装的非可分发控件是比控件提供运行时应用程序的较新版本。因为安装程序不会覆盖同一文件的早期版本更高版本的文件,则会出现此问题。

重新注册文件

很可能不在注册表中正确注册能引用列表中的文件。如果您怀疑这可能是这种情况,请按照以下步骤来重新注册该文件:
  1. 在 Microsoft Windows NT 4.0 中,单击开始,指向查找,然后单击文件或文件夹,或在 windows 2000 中,单击开始、 指向搜索,然后单击文件 andFolders
  2. 名称框中,或文件和 foldersnamed 的搜索框中,键入 regsvr32.exe.
  3. 查找范围框中,单击硬盘磁盘 (通常是 c:) 的根目录。
  4. 如果单击以选中包括子文件夹复选框尚未选中,,然后单击立即查找立即搜索
  5. 找到文件后,单击开始,单击运行,然后删除处于打开框中的任何内容。
  6. Regsvr32.exe文件从搜索结果窗格中拖动到打开框中。
  7. 重复步骤 2 至 6,搜索这次文件名.dll,其中文件名 是需要 toreregister 的名称。
  8. 之后 文件名.dll 文件 isin Regsvr32.exe 文件,使用打开框中单击确定
  9. 在 Access 中,进行测试,看是否问题 stillexists。
如果您没有 Regsvr32.exe 文件在您的计算机上,检查文件的其他计算机。如果该文件不可用,您可以获得该文件从 Microsoft 网站。 有关其他信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
161983 ACC: Regsvr32a.exe 可在下载中心中发布
注意:请记住后调整引用编译所有模块。若要编译所有模块,该模块仍然打开,单击调试菜单中的都编译数据库。如果没有编译模块,可能有更多的未解析的引用。

属性

文章 ID:310803 - 上次审阅时间:10/01/2015 14:41:00 - 修订版本: 1.0

Microsoft Access 2000 标准版, Microsoft Access 2002 标准版, Microsoft Office Access 2003, Microsoft Office Access 2007, Microsoft Access 2010, Microsoft Access 2013, Access 2016

  • kbhowto kbenv kbinfo kbinterop kbprogramming kbmt KB310803 KbMtzh
反馈