2012-06-27 108 views
3

A2007应用程序中的两种窗体在OnOpen事件之后已停止触发它们的事件OnLoad事件。这些事件一直在工作多年,我无法确定为什么OnLoad事件现在没有运行。MS Access 2007窗体OnLoad事件未触发

而是,单击任何控件的窗体触发OnLoad事件 - 包括窗口的关闭按钮。

这些表单是未绑定的,其中的子表单由OnLoad事件中调用的公共函数进行过滤。还有很多其他形式,这些仍然可以正常工作。

我检查了事件仍然链接到代码通过单击事件旁边的属性中的省略号([事件过程]),这使我正确的代码。

已反编译/重新编译。检查参考。导入到一个新的数据库。

尝试添加一个记录源(SELECT anyField FROM anyTable LIMIT 1),其没有工作,然后我发现了一个变通,加入Me.RecordSource = Me.RecordSource作为的OnOpen最后一行事件 - 其中确实然后触发OnLoad事件。

这是Access近20年来我第一次遇到这种情况,而且当Access'行为不端'时我非常紧张,我真的很想找到问题所在。任何建议将是最受欢迎的!

+0

确实很奇怪。在互联网上我可以找到这个问题的其他每一个例子都提到了这个事件的链接,但是你已经检查过了。可能无法正常工作,但是您是否清除了事件链接,删除了子定义(将其复制到其他位置),然后通过在On Load属性中点击省略号并粘贴定义来重新创建事件?另一个(虽然很可怕)的解决方法是将Load子项作为Open子句的最后一行。 – nicholas

+0

也做了一个小巧的修复? – nicholas

+1

我想不出为什么会发生这种情况,但是从使用未绑定的表单开始,“Open”和“Load”事件之间没有太大区别,我知道它并不能解决问题,但你不能将代码移到“打开”事件中吗? –

回答

1

我在开发窗体时遇到了同样的问题,但是我在Open事件中没有任何代码,但是在打开窗体时我的Load事件代码突然停止运行。

在Open事件中添加“Me.RecordSource = Me.RecordSource”代码,然后解决了问题?

我知道这不是一个答案,但它证明Max的代码不能在Open事件中挂起。

唯一的其他重要信息是,我正在两台PC上开发它,一个使用Access 2007,一个使用2010,但我不记得在将代码移回Access 2007 PC后Load事件是否停止运行。