访问2003 adp open& 2007年保存的现在在2003年表现得很奇怪

时间:2009-04-15 18:16:15

标签: ms-access ms-access-2007

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

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

我意识到我只能使用Access 2003重新完成这项工作,但这比我想要的更费时。有人可以提供建议或解决方案吗?

谢谢。

3 个答案:

答案 0 :(得分: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)而不反编译
  • 压缩和修复数据库
  • 关闭访问

答案 1 :(得分:0)

这对你没什么帮助,但是当我的一个客户切换到Office 2007时,我很快就学会了,我不应该在2007年的2003 db上工作,然后尝试在2003年运行它。 2007年然后转换到2003年也不起作用。在2003年开发,然后在2007年运行2003 db(无转换)非常好。大部分时间都是。

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

答案 2 :(得分:0)

我也有这个问题。我正在开发一个连接到SQL后端的Access 2003前端2年。我愚蠢地开始使用Access 2007认为我所要做的就是以2003格式保存,一切都会好的。

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

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

取出这些引用,我能够“修复”我的数据库,而不必恢复到早期版本,失去2天的工作。

我希望这有助于某人。