如何解决 Access 引用问题 您所在的位置:网站首页 access中查询为单独文件存在 如何解决 Access 引用问题

如何解决 Access 引用问题

2023-10-18 22:19| 来源: 网络整理| 查看: 265

如何解决 Access 数据库中的引用问题 项目 03/18/2023 适用于: Access 2016, Access 2013, Access 2010, Microsoft Office Access 2007, Microsoft Office Access 2003

原始 KB 编号: 310803

摘要

本文介绍与在 Access 数据库中使用引用有关的问题。

了解引用错误就需要了解如何在 Access 数据库中引用库,以及如何在目标计算机上安装数据库时不中断这些引用。 本文是以下主题的摘要:

查看 Access 数据库引用 解析 Access 中的 Microsoft Visual Basic for Applications 引用 了解引用错误消息 解决开发计算机上的引用问题 分发数据库文件 更新引用列表 分发包含 ActiveX 控件的数据库文件 重新注册文件 查看 Access 数据库引用

要查看当前数据库引用:

打开数据库。 按 ALT+F11 启动 Visual Basic 编辑器。 在“工具”菜单上,单击“引用”。 解析 Access 中的 Visual Basic 引用

Access 根据“引用”框中显示的信息为每个引用加载相关文件(例如,类型库、对象库或控件库)。 如果 Access 找不到该文件,Access 将运行以下过程来查找该文件:

Access 检查引用的文件当前是否已加载到内存中。 如果文件未加载到内存中,Access 将尝试验证 RefLibPaths 注册表项是否存在。 如果该项存在,Access 将查找与引用同名的命名值。 如果存在匹配项,Access 会从命名值指向的路径加载引用。 然后,Access 将按以下顺序在下列位置搜索引用的文件: 应用程序文件夹(Msaccess.exe 文件的位置)。 在“文件”菜单上单击“打开”时看到的当前文件夹。 运行操作系统文件的 Windows 或 Winnt 文件夹。 Windows 或 Winnt 文件夹下的系统文件夹。 PATH 环境变量中可由操作系统直接访问的文件夹。 如果 Access 找不到该文件,则会出现引用错误。 了解引用错误消息

有几个错误消息与缺失的文件或与数据库中使用的版本不同的文件相关。 在大多数情况下,可以在 Microsoft 知识库中搜索有关特定错误消息的文章,然后按照文章的步骤解决错误。 在某些情况下,相关文件未与主文件正确匹配。

以下列表描述了你可能会收到的一些引用错误消息。 但是,请注意,该列表不包括所有可能的引用错误消息。

“对象 ObjectName 的方法 MethodName 失败”

通常,如果编程类型库出现问题,例如,无效的数据访问对象 (DAO) 动态链接库 (DLL) 文件,你可能会收到此错误消息。 你可以在 Microsoft 知识库中搜索介绍此错误消息的各种形式的文章。

“函数在使用方法表达式中不可用”

如果编程类型库出现问题,或者代码没有专门调用正确的库,并且文件在引用列表中以低于包含相同函数名称的文件的优先级列出,例如,如果 DAO 代码与优先级高于 DAO 库的 ActiveX 数据对象 (ADO) 库一起使用,则你可能会收到此错误消息。 如果表单或报表包含 ActiveX 控件,也可能会收到此错误消息。

“无法找到项目或库”

如果 Access 无法在引用列表中找到文件,你可能会收到此错误消息。 通常,该文件在引用对话框中标记为缺失。 有时,该文件存在于开发计算机上,但不存在于目标计算机上。

“未定义变量”或“未定义用户定义的类型”

如果使用用户级安全向导保护引用库而非默认包括的库的数据库,则可能会收到这些错误消息。 例如,对不安全数据库中存在的库的引用不会自动在安全的新建数据库中创建。

“运行时错误 5”、“过程调用或参数无效”、“当前项目未引用包含此符号的库”或“当前项目未引用包含此符号的库,因此未定义此符号”

如果存在对数据库、类型库或标记为缺失的对象库的引用,你可能会收到这些错误消息。

“ActiveX 组件无法创建对象”

此错误消息并不一定意味着涉及 ActiveX 控件。 例如,一个可能的原因是 DAO(一个 ActiveX 组件)无法创建对象,因为 DAO 自动化服务器无法启动。 通常是因为未注册或未正确注册为程序提供引用功能的 DLL。

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

如果代码或 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 可以处理这些函数。

要添加对库的引用:

打开数据库。 按 ALT+F11 启动 Visual Basic 编辑器。 在“工具”菜单上,单击“引用”。 在“可用引用”下,单击以选中库名称旁边的复选框,然后单击“确定”。

要删除对库的引用:

打开数据库。 按 ALT+F11 启动 Visual Basic 编辑器。 在“工具”菜单上,单击“引用”。 在“可用引用”下,单击以清除库名称旁边的复选框,然后单击“确定”。 分发数据库文件

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

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

在 Access 中开发运行时应用程序时,请注意某些操作系统文件必须与运行时应用程序一起分发。 这些文件的打包由 Microsoft Office 2000 Developer 的程序包和部署向导组件自动执行。 有时,包含的文件版本取决于安装在开发计算机上并且可能修改了操作系统文件的其他应用程序。

遵循某些指南通常可确保在安装运行时应用程序时,使用的文件版本不会与目标计算机上文件冲突。 以下是指南:

在任何计算机上开发 Access 数据库。 创建一个计算机环境,其中硬盘已重新格式化,并且仅安装了适用操作系统、Office 和 Office 2000 Developer 的最早版本。 在此计算机上运行程序包和部署向导以创建应用程序的运行时版本。 这将确保文件的修订级别适用于任何目标计算机。 创建一个硬盘已重新格式化,并且仅安装了操作系统的计算机环境。 在此环境中测试运行时应用程序。 如果应用程序未成功运行,则表明应用程序本身有问题。 分发应用程序之前,需要确定并更正问题。 如果应用程序在测试计算机上成功运行,但在目标计算机上无法运行,则表明目标计算机上而不是应用程序中出现问题。 你需要识别并更正目标计算机上的可能原因,可能是不兼容或文件已损坏。 刷新引用列表

如果引用问题涉及 ActiveX 控件,则有时可以通过刷新引用列表来解决此问题。 要刷新引用列表:

在 Visual Basic 编辑器中,在“工具”菜单上单击“引用”。 在“引用”对话框中,单击以选择尚未选择的引用,记下所选的引用,然后单击“确定”。 在“工具”菜单上,再次单击“引用”。 单击以取消所选引用,然后单击“确定”。 分发具有 ActiveX 控件的数据库文件

有两种类型的 ActiveX 控件许可证:设计时许可证和运行时许可证。

设计时许可证允许将 Office 2000 Developer 中许可的 ActiveX 控件插入 Access 数据库中的表单和报表。 运行时许可证允许在未安装 Office 2000 Developer 的计算机上使用 Access 数据库中的 ActiveX 控件,但运行时许可证不允许插入新的许可 ActiveX 控件。 要安装运行时许可证,请使用程序包和部署向导分发 ActiveX 控件,该向导会在目标计算机的注册表中写入控件的许可证。

在“设计”视图中打开模块,然后在“工具”菜单上单击“引用”时,可能会看到一个“缺失”标记,它指示对目标计算机上公用对话框控件的引用与开发计算机中数据库文件中的源不匹配。

如果在未安装可分发公用对话框控件的情况下分发数据库文件,则控件的引用可能标记为“缺失”,或者,如果目标计算机上已安装不可分发控件,则可能会收到错误消息“没有使用此 ActiveX 控件所需的许可证”。

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

重新注册文件

文件可以在未在注册表中正确注册的情况下位于引用列表中。 如果怀疑可能是这种情况,请按照以下步骤重新注册文件:

在 Microsoft Windows NT 4.0 中,单击“开始”,指向“查找”,然后单击“文件或文件夹”,或在 Windows 2000 中,单击“开始”,指向“搜索”,然后单击“针对文件和文件夹”。 在“命名”框中,或在“搜索命名的文件和文件夹”框中,键入“regsvr32.exe”。 在“查找范围”框中,单击硬盘的根目录(通常为 C:)。 如果尚未选中“包括子文件夹”复选框,请单击以选中它,然后单击“立即查找”或“立即搜索”。 找到该文件后,单击“开始”,单击“运行”,然后删除“打开”框中的内容。 将 Regsvr32.exe 文件从搜索结果窗格拖动到“打开”框。 重复步骤 2 至 6,这次搜索 FileName.dll,其中 FileName 是要重新注册的文件名。 FileName.dll 文件与 Regsvr32.exe 文件一起位于“打开”框中后,单击“确定”。 在 Access 中,测试以查看问题是否仍存在。

如果你的计算机上没有 Regsvr32.exe 文件,请查看其他计算机上是否包含该文件。 如果文件不可用,可以从 Microsoft 网站获取该文件。

注意

请记住,在调整引用后编译所有模块。 要编译所有模块,但模块仍处于打开状态,请在“调试”菜单上单击“编译数据库”。 如果模块未编译,则可能存在其他未解析的引用。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有