绑定主表单有一些子表单,允许用户选择然后在主窗体的相关字段中为他们输入的数据。
但是,当焦点转移到子窗体或返回到主窗体时,主窗体的更新事件前后会触发。这是一个问题,因为BeforeUpdate有验证代码来检查是否输入了所需的字段。此时,用户仍在从子表单中“选择”数据以输入主表单的记录,因此尝试验证还为时过早。
有没有办法阻止主表单试图保存?
发布于 2015-04-21 08:09:03
这是访问过程中的一个棘手部分。一般来说,如果您离开脏表单,所有未提交的更改都将被提交(有界的表单)。但在此之前,forms_OnbeforeUpdate事件将引发。在您的情况下,一种方法是放置一个命令按钮,并仅通过命令按钮保存它。或在该onBeforeUpdate事件中使用任何验证检查。
想法是使用onBeforeUpdate_event来检查保存是有意的还是自动的。您可以执行检查:
插入一个命令按钮和一个名为
Dim iCanSave as boolean 使用命令按钮将iCanSave变量设置为True并执行
iCanSave = True
Docmd.runCommand accmdSAveRecord在您的Form_onBeforeUpdate事件中,检查iCanSave是否为真,如果是,则保存是有意的,因此允许保存。如果不放弃保存。类似于:
form_onBeforeUpdate(cancel....)
if not (iCanSAve) then
cancel = true
End if发布于 2015-04-21 08:03:26
不是的。这是故意的。
您可以禁用(甚至隐藏)子窗体,直到在父窗体中输入和验证足够的信息为止。
https://stackoverflow.com/questions/29759929
复制相似问题