1

我继承了一个使用 sql 2000 作为数据源的 access 2003 ADP 文件。这是我的第一个访问维护项目,没有考虑所涉及的问题,只是在我的开发机器上的 access 2007 中打开它。它当然奏效了,我开始做要求的工作。

我已完成工作并将文件提交给客户,他在 access 2003 中打开该文件并继续收到几个错误,这些错误都与未声明的变量有关。正是在这一点上,我意识到没有任何代码文件具有 Option Explicit 集。我再次查看 access 2007 中的项目 - 没有错误。行为就像 access 2007 尊重缺乏 Option Explicit 并按预期工作,但 access 2003 “认为” Option Explicit 已设置,即使它从未出现在任何代码文件中。

我意识到我可以只使用 access 2003 重新做这项工作,但这会比我想要的更耗时。

4

3 回答 3

0

奇怪的问题 - 我看不到 Access 2003 如何在没有任何 Option Explicit 的情况下检查显式变量声明。一定有别的事情发生。

您可以使用 Access 2003 在您的机器上重现该行为吗?

你如何真正声明你的变量?无论如何,您都应该设置 Option Explicit。

更新:

因为目标是尝试让 Access 2003 mdb(从 2007 年保存)工作。我会再尝试一件事。

使用 Access 2003 使用 /decompile 开关打开 mdb

  • 备份您的 mdb
  • 通过快捷方式打开您的 mdb(按住 SHIFT 键以停止运行任何代码):msaccess.exe database.mdb /decompile
  • 打开一个模块并编译您的应用程序
  • 保存并关闭访问
  • 再次打开(再次SHIFT)而不反编译
  • 压缩和修复数据库
  • 关闭访问
于 2009-04-15T18:29:03.717 回答
0

这不会对您有太大帮助,但是当我的一个客户切换到 Office 2007 时,我很快了解到我不应该在 2007 年使用 2003 数据库,然后尝试在 2003 年运行它。在 2007 年开发然后转换到 2003 年也不起作用。在 2003 年开发,然后在 2007 年运行 2003 db(没有转换)效果很好。大多数时候。

您问题第二部分的可能答案:1.将您的 2007 db 转换为 2003 格式。2. 在 2003 中打开一个新的空 db 3. 从转换的 2003 db 中导入所有对象。重新编译,并在您的客户端机器上尝试。

于 2009-04-15T18:45:11.460 回答
0

我也有这个问题。我花了 2 年时间开发连接到 SQL 后端的 Access 2003 前端。我开始使用 Access 2007,以为我所要做的就是以 2003 格式保存,一切都会好起来的。

不是这样。我所有仍在使用 2003 的用户都报告了问题。

这个问题最后很容易解决。我实际上并没有使用任何 2007 功能,因此更改的只是库引用。我缺少对 Word 和 Excel 12.0 库的 2 个引用,这些引用仅在 2007 年打开数据库时自动包含在内。

取出这些参考资料,我能够“修复”我的数据库,而无需恢复到早期版本。

于 2010-06-22T04:39:48.503 回答