一种适合新手理解的解决数据绑定窗体关闭时不保存修改数据的方法-朱朱
Access软件网QQ交流学习群(群号码198465573),欢迎您的加入!
首页 >技术文章> Access数据库-窗体/数据页


一种适合新手理解的解决数据绑定窗体关闭时不保存修改数据的方法

发表时间:2019/11/3 8:01:25 评论(4) 浏览(7972)  评论 | 加入收藏 | 复制
   
摘 要:本文介绍了一种适合新手理解的解决数据绑定窗体关闭时不保存修改数据的方法。
正 文:

      Access的窗体如果绑定数据的话,则对记录的增与改都是相当方便的。一般来说一个这样的窗体通常会新增数据与编辑数据共用,其采用动态集绑定某张数据表。但这里也有一个问题,无论新增还是编辑了某条记录,如果已经修改了一定的数据中途想放弃新增或者编辑的话,关闭窗体后,Access还是会将数据保存到表中,这显然不是我们想得到的结果。

      通过进一步的窗体的学习可以知道,Access窗体有个Dirty事件,通过对Dirty进行判断可以达到在窗体关闭时对已经编辑的数据不保存。不过这个Dirty对于新手来说,理解起来可能有一点点不太友好。本文就尝试用一种较易理解的方式来解决这个问题。本文采用的示例是Access软件网职场范例中的一个示例,稍稍作了一定的修改。

      首先在编辑窗体(frm供应商资料_Edit)代码中定义一个变量:Dim bSaveFlag As Boolean,注意变量的位置,具体可以看示例。


附   件:

点击下载此附件


    在窗体的Load事件中,先将其值设置成False

    Private Sub Form_Load()
        bSaveFlag = False
    End Sub

    在保存按钮里面,DoCmd.RunCommand acCmdSave这句代码前设置其值为Ture

    bSaveFlag = True
    DoCmd.RunCommand acCmdSave


    最后是在窗体的BeforeUpdate事件中进行判断

    Private Sub Form_BeforeUpdate(Cancel As Integer)
        If bSaveFlag = False Then
            Cancel = True
        End If
    End Sub


      这样之后,无论新增还是编辑,如果中途想放弃,关闭窗体后就都不会保存数据了。

      现在来讲解一下实现的原理。定义这个变量之后,在窗体的Load事件中先将其设为False,如果确实要保存数据,点击了保存按钮,则其值再设置为True,则可以正常保存数据。 如果修改了部分数据,中途想要关闭窗体,则都会触发窗体的BeforeUpdate事件,那么就可以在这个事件中进行判断,如果bSaveFlag为False则表示不希望保存数据,则设置参数Cancel为Ture,这样修改的数据就不会被保存了。这样也就达到了修改了记录但关闭窗体不保存的目的。


Access软件网交流QQ群(群号:198465573)
 
 相关文章
Access快速新增非绑定窗体,运用Access非绑定表快速录入数...  【有神助  2012/9/25】
非绑定表与绑定表  【小赵  2013/5/23】
Access设置主子窗体链接字段时提示:子窗体字段链接器,不能在未...  【宏鹏  2014/9/24】
【Access扫盲】绑定表与非绑定表的区别  【麥田  2015/1/15】
绑定表录入数据如何实现移到下个字段就实现保存记录  【杜超  2016/12/26】
在非绑定窗体追加记录  【杨雪  2017/7/4】
ado绑定窗体后不显示记录的解决办法  【Tom and Jerry  2018/8/13】
常见问答
技术分类
相关资源
文章搜索
关于作者

朱朱

文章分类

文章存档

友情链接