首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MS 2010 :防止在移动到子窗体时在主窗体中保存

MS 2010 :防止在移动到子窗体时在主窗体中保存
EN

Stack Overflow用户
提问于 2015-04-20 23:00:35
回答 2查看 2.1K关注 0票数 2

绑定主表单有一些子表单,允许用户选择然后在主窗体的相关字段中为他们输入的数据。

但是,当焦点转移到子窗体或返回到主窗体时,主窗体的更新事件前后会触发。这是一个问题,因为BeforeUpdate有验证代码来检查是否输入了所需的字段。此时,用户仍在从子表单中“选择”数据以输入主表单的记录,因此尝试验证还为时过早。

有没有办法阻止主表单试图保存?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-04-21 08:09:03

这是访问过程中的一个棘手部分。一般来说,如果您离开脏表单,所有未提交的更改都将被提交(有界的表单)。但在此之前,forms_OnbeforeUpdate事件将引发。在您的情况下,一种方法是放置一个命令按钮,并仅通过命令按钮保存它。或在该onBeforeUpdate事件中使用任何验证检查。

想法是使用onBeforeUpdate_event来检查保存是有意的还是自动的。您可以执行检查:

  • 如果您的验证失败,请不要保存(cancel = true)
  • 如果保存是有意通过查看任何变量。

插入一个命令按钮和一个名为

代码语言:javascript
复制
Dim iCanSave as boolean 

使用命令按钮将iCanSave变量设置为True并执行

代码语言:javascript
复制
iCanSave = True
Docmd.runCommand accmdSAveRecord

在您的Form_onBeforeUpdate事件中,检查iCanSave是否为真,如果是,则保存是有意的,因此允许保存。如果不放弃保存。类似于:

代码语言:javascript
复制
form_onBeforeUpdate(cancel....)
    if not (iCanSAve) then
        cancel = true
    End if
票数 2
EN

Stack Overflow用户

发布于 2015-04-21 08:03:26

不是的。这是故意的。

您可以禁用(甚至隐藏)子窗体,直到在父窗体中输入和验证足够的信息为止。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29759929

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档