2011-06-16 81 views
3

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

背景资料
我刚获得运行他们的机器上的罚款,但不会在我的机器上运行MS-Access数据库。我在启动时得到这个错误信息:

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

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

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

+0

你能告诉我们有错误的代码行吗? – TheOtherTimDuncan 2011-06-17 11:34:28

+0

只需修复该死的代码。 – 2011-06-17 18:26:27

+0

@ David-W-Fenton它可能不是代码问题。这是我按照我的答案在同一台计算机上运行两个版本的访问时得到的错误。 – Fionnuala 2011-06-17 21:18:07

回答

1

访问具有/反编译命令行开关。请参阅this StackOverflow question的接受答案。

+2

我不认为反编译是答案,在Tony Toews关于反编译的很好的文章中:http://www.granite.ab.ca/access/decompile.htm,这并不是真正解决的问题之一。 – Fionnuala 2011-06-17 06:07:07

2

代码将在没有所有代码编译的情况下在MS Access中运行,但是,Open是表单打开时运行代码的表单属性,因此当表单打开时,该事件中的代码将被编译并运行。在安装有两个版本的PC(特别是,< 2007和> = 2007)上运行Access版本之前,我遇到过此错误。对我而言,解决方案是从帮助菜单中选择修复。

+0

如果我在只安装了Access 2007的PC上运行数据库,那么它将运行正常。如果我在运行Access 2003和2007的计算机上运行,​​那么我会在问题中显示错误消息。做一个紧凑和修复的方式不起作用。 – David 2011-06-21 15:29:19

+0

不是压缩和修复,请从帮助菜单中选择检测并修复以修复Access的安装。 – Fionnuala 2011-06-21 19:00:02

+0

刚刚尝试访问2007年检测和修复版本,但没有任何区别。看起来像检测和修复被访问2007年的方式(http://office.microsoft.com/en-gb/access-help/what-happened-to-detect-and-repair-HA010100384.aspx) – David 2011-06-22 09:34:24