A2007应用中的两个表单在OnOpen事件后停止触发 OnLoad 事件。事件已经工作多年了,我无法确定为什么OnLoad事件现在没有运行。
相反,单击表单上的任何控件会触发OnLoad事件 - 包括窗口的“关闭”按钮。
表单是未绑定的,子表单由OnLoad事件中调用的公共函数过滤。还有很多其他形式,这些形式仍然有效。
我已经通过单击事件旁边的属性中的省略号([事件过程])检查了事件仍然链接到代码,这使我正确地看到了代码。
已反编译/重新编译。已检查的参考文献。导入到新的数据库。
尝试添加一个RecordSource(SELECT anyField FROM anyTable LIMIT 1),这不起作用,然后我找到了一个解决方法,通过添加Me.RecordSource = Me.RecordSource作为最后一个OnOpen事件中的行 - 执行然后触发OnLoad事件。
这是近20年的Access开发中我第一次遇到这种情况,而且每当Access'行为不端'时我都会非常紧张,我真的很想找到问题所在。任何建议都是最受欢迎的!
答案 0 :(得分:1)
我在开发的表单中遇到了同样的问题但是我在Open事件中没有任何代码,但突然我的Load事件代码在打开表单时停止运行。
在Open事件中添加“Me.RecordSource = Me.RecordSource”代码然后解决了问题?
我知道这不是答案,但确实证明Max的代码不会在Open事件中被挂起。
唯一的其他重要信息是我在两台PC上开发它,一台使用Access 2007,另一台使用2010,但我不记得在将代码移回Access 2007 PC后Load事件是否停止运行。
答案 1 :(得分:0)
在MS Access 2016中出现了相同症状的问题。 但是添加“ Me.RecordSource = Me.RecordSource”并没有帮助我,这使情况变得更糟。
在尝试了其他建议的解决方案并从头开始构建一个全新的表单之后,我又重新构建了它,并在每一步之后检查它是否仍然起作用。
结果表明访问无法处理将函数(带有返回值)作为可选参数的默认调用。 (这适用于表单模块中定义的所有过程)
由于我对VBA和Access开发还很陌生,这可能是一个初学者的错误,但也许可以帮助某人在此处发布它。