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