【问题标题】:MS-Access compile optionsMS-Access 编译选项
【发布时间】:2011-09-16 21:44:21
【问题描述】:

ms-access (2003) 中是否有编译器选项要求在允许任何代码运行之前编译所有 vba 代码?我希望能够将其关闭。我试过取消选中“需要变量声明”和“自动语法检查”选项,但没有结果。

背景信息
我刚刚获得了一个 ms-access 数据库,该数据库在他们的机器上运行良好,但不会在我的机器上运行。我在启动时收到此错误消息:

"The expression On Open you entered as the event property setting produced the following error: Method or data member not found"  

这是由看起来像冗余代码的 vba 编译错误引起的。有趣的是,代码不能在两台机器上编译,但在他们的机器上,数据库可以在我的机器上使用,但不是!我假设它像编译器选项一样简单,但我找不到它!

(在任何人提到它之前,我知道问题的真正解决方案是修复/删除错误代码)

【问题讨论】:

  • 你能告诉我们有错误的代码行吗?
  • @David-W-Fenton 这可能不是代码问题。根据我的回答,这是我在同一台计算机上运行两个版本的访问时遇到的错误。

标签: ms-access


【解决方案1】:

代码将在 MS Access 中运行,而无需编译所有代码,但是,On Open 是一个表单属性,在打开表单时运行代码,因此该事件中的代码将在表单打开时编译并运行。在安装了两个版本(特别是 =2007)的 PC 上运行某个版本的 Access 之前,我遇到过此错误。对我来说,解决方案是从“帮助”菜单中选择“修复”。

【讨论】:

  • 如果我在只安装 Access 2007 的 PC 上运行数据库,那么它将运行正常。如果我在装有 Access 2003 和 2007 的机器上运行,则会收到问题中所述的错误消息。顺便说一句,进行压缩和修复并没有奏效。
  • 不是压缩和修复,从帮助菜单中选择检测和修复来修复 Access 的安装。
  • 刚刚尝试了 Detect & Repair 的 access 2007 版本,但也没有任何作用。顺便说一下,Detect & Repair 似乎已移入 2007 年访问 (office.microsoft.com/en-gb/access-help/…)
  • 出于好奇,我可能会尝试暂时卸载 2003,看看它是否能解决问题。顺便说一句,最初的问题从来都不是一个“严重”的问题,因为我已经获得了对数据库的控制权,所以我可以修复错误的代码,问题就解决了。但我仍然非常感兴趣的是,在给定完全相同的代码的情况下,Access 如何在不同的机器上表现不同。感谢您在这件事上的帮助!
【解决方案2】:

Access 有一个 /decompile 命令行开关。请参阅this StackOverflow question 的已接受答案。

【讨论】:

  • 我不认为反编译是答案,在 Tony Toews 关于反编译的非常好的文章中:granite.ab.ca/access/decompile.htm,这并不是真正解决的问题之一。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-04-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多