首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >取消Access 2013中的子窗体更改

取消Access 2013中的子窗体更改
EN

Stack Overflow用户
提问于 2016-05-10 16:25:57
回答 1查看 3.4K关注 0票数 0

我在表格里有个子表格。默认情况下,当我更改子窗体中的记录时,当我单击子窗体外部时,记录将自动保存。我在主窗体上添加了一个按钮,手动将记录保存在窗体和子窗体中,因此取消了对子窗体出口的保存,以避免写入冲突。

代码语言:javascript
复制
Private Sub Form_BeforeUpdate(Cancel As Integer)
    Me.Undo
    Cancel = True
End Sub

使用此代码,单击子窗体外部将不仅取消保存,而且将清除我在子窗体中输入的任何内容。这意味着,如果不首先取消子表单更改,我就无法保存表单。

如何取消子窗体中的自动保存,同时保持任何编辑直到退出主窗体?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-05-10 17:28:38

代码语言:javascript
复制
Me.Undo 

将撤消(子)窗体中的任何数据编辑。把那行删掉。

这是:

代码语言:javascript
复制
Cancel = True

就足以取消更新。

现在,您的下一部分需求更难解决。每当您将数据绑定表单留在Access中时,更改将被保存为

为了防止这种情况发生,你有两个选择。

1.)要么使用未绑定到任何记录源的未绑定窗体。您需要使用查询/记录集读取数据,将其写入表单的控件,然后使用VBA将任何修改的值写入数据库。-这将不适用于连续/数据表表单

2.)或者创建一个具有与主表相同结构的临时表,并将子表单绑定到该临时表。打开(main)表单时,可以将子表单的所有相关记录复制到临时表中。如果关闭/退出主窗体,则使用临时表中的任何更改更新实际数据表。

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

https://stackoverflow.com/questions/37144100

复制
相关文章

相似问题

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