2010 年打开的 .mdb 文件丢失了 VBA 代码引用

2010 年打开的 .mdb 文件丢失了 VBA 代码引用

免责声明:我刚病假回来,没有亲自看到错误,也没有调查所有可能的原因,只是在寻找可能是系统性问题或其他人在类似情况下遇到的问题的线索。

将办公室从 Office 2003 迁移到 Office 2010。现在,在 2003 中打开时,几个关键的 Access 数据库会出现错误,类似于您在使用未在“参考”(VBA 应用程序:工具 => 参考)中正确设置的库时遇到的错误。

我正在调查在 Access 2010 中打开文件时是否会出现与在 2003 中打开文件时相同的问题。此外,我还想比较一下在正常运行的机器和未运行的机器上引用了哪些库。一旦获得更多信息,我会更新。

与此同时,是否有人知道可以通过配置更改而不是 MDB 编辑来解决类似的问题?

MDB工作的2010系统中引用的库:

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

第二个库带来了一个问题。MDB 最初可能是使用 Access 97 编写的,否则,使用 Access 2003,因此会引用相应的“Microsoft Access 12.0 对象库”(适用于 2003)或类似内容。在 2010 中打开该文件(我们看到它修改了对 14.0 版本的引用)是否会导致 2003 查找相同版本的 14.0 库?

更新:我检查了系统上的 MDB 文件,似乎没有问题(当然)。引用的库在 Access 2003 和 2010 中是相同的,Microsoft Access ##.# 对象库在 2003 中报告 11.0,在 2010 中报告 14.0,这应该表明它不是在代码中“硬设置”的。

我将检查下面评论者建议的安全选项并报告。

答案1

这与您所说的并不完全一致,但是我在升级 Office 时遇到的大多数问题都是由于 Office 2007 中引入了增强的安全设置造成的,而 2010 也是如此。

我会先尝试转到“文件”>“选项”>“信任中心”>“信任中心设置”,然后降低所有设置,即使只是作为测试。然后,您可以将它们重新调高,看看是什么破坏了什么。首先排除这个常见问题,然后看看是否仍然有实际的编码问题。

答案2

在 Vista 或 Windows 7 下使用多个版本的 Access 时出错。按照解决方法 1) 更改注册表权限解决了我的系统中的确切问题。由于我的 Auto FE Updater 实用程序中存在错误,我最近一直在测试多个版本的 Access。

答案3

解决方案如下:

Access 不提供退出 Word 和其他 Office 应用程序提供的应用程序检查和重新配置的方法。这是由于引用库的要求,这也是我遇到的特定问题的原因。

如果您正在运行多个版本的 Access,则最后运行的版本将始终是默认版本。手动打开其他版本将导致重新配置并更改默认版本。

正常情况下,当应用程序正常运行时,这些更改不会影响数据库的功能,只要它们与系统默认设置的 Access 版本兼容即可。不同的库总是至少与编写它们的 Access 版本兼容。

在多版本环境中,确保人们使用正常方法通过文件管理器选择数据库文件而不是直接打开 Access 然后选择所需的文件,将带来一致的版本体验以及最小的兼容性问题。

在此特定案例中,三位运行针对我们部署过程第一阶段定制的 Office 2010 软件包的用户遇到了上述问题。安装 Office 2010 第二阶段版本后,重置了相应设置并解决了该问题。

更新:我发现有此问题的用户之一确实存在引用问题。即使在 Office 2003 在打开 Access 2003 时重新配置自身后,引用仍然包含 Microsoft Access 对象库版本 14.0,而不是版本 11.0。这就是导致 On Load 和 On Click 事件中出现错误消息的原因。

相关内容