我有一个带有子表单的绑定表单。当我更改主窗体然后单击子窗体时,出现以下错误:
设置为该字段的 BeforeUpdate 或 ValidationRule 属性的宏或函数阻止 {program name} 保存该字段中的数据。
- 如果这是一个宏,请在“宏”窗口中打开该宏并删除强制保存的操作(例如,GoToControl)。
- 如果宏包含 SetValue 操作,请将宏设置为控件的 AfterUpdate 属性。
- 如果这是一个函数,请在“模块”窗口中重新定义该函数。
如果我在主窗体上进行更改,然后单击记录选择器框或按Shift+Enter保存,然后单击子窗体我没有收到错误消息。
原来,罪魁祸首是一个电话DoEvents的Form_BeforeUpdate过程。最简单的解决方案是删除对DoEvents.
在我的特殊情况下,对 的调用DoEvents深埋在调用堆栈中,因此请务必遵循所有代码路径或仅对DoEvents.
要重现此错误:
[Event Procedure]将以下代码添加到表单的代码模块中:
Private Sub Form_BeforeUpdate(Cancel As Integer)
DoEvents
End Sub
Run Code Online (Sandbox Code Playgroud)