4

A2007 应用程序中的两个表单在 OnOpen 事件之后停止触发其OnLoad事件。这些事件已经运行了多年,我无法确定为什么 OnLoad 事件现在没有运行。

相反,单击窗体上的任何控件都会触发 OnLoad 事件 - 包括窗口的关闭按钮。

表单是未绑定的,子表单由 OnLoad 事件中调用的公共函数过滤。还有许多其他类似的形式,它们仍然可以正常工作。

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

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

尝试添加一个 RecordSource (SELECT anyField FROM anyTable LIMIT 1),但它不起作用,然后我找到了一种解决方法,方法是将 Me.RecordSource=Me.RecordSource 添加为 OnOpen 事件的最后一行 -然后触发OnLoad 事件。

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

4

2 回答 2

1

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

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

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

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

于 2013-03-15T01:25:55.357 回答
0

在 MS Access 2016 中遇到了相同症状的问题。但是添加“Me.RecordSource = Me.RecordSource”并没有帮助我,反而让情况变得更糟。

在成功尝试其他建议的解决方案并从头开始构建全新的表单后,我再次构建它,并在每一步检查它是否仍然有效之后。

结果表明,访问无法处理调用函数(带返回值)作为可选参数的默认值。(这适用于表单模块中定义的所有过程)

由于我对 VBA 和 Access 开发相当陌生,这可能是初学者的错误,但也许它可以帮助某人在这里发布它。

于 2019-06-11T14:24:38.460 回答