设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
查看: 1645|回复: 6
打印 上一主题 下一主题

[窗体] 如何取消在子窗体中经修改但未保存的数据表记录

[复制链接]
跳转到指定楼层
1#
发表于 2008-1-24 18:49:53 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
各位朋友:
       在access中,如何取消在子窗体中经修改但未保存的数据表记录.如附件中"班级信息"窗体中单击"取消"按钮后,在子窗体中修改过的某条记录的数据不保存到数据表中.

[ 本帖最后由 jsmugong 于 2008-1-25 15:29 编辑 ]

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
发表于 2008-1-26 15:51:09 | 只看该作者
帮你顶一下
3#
发表于 2008-3-14 22:39:09 | 只看该作者
这个问题我也想了好久,最后是用ado和事务解决的
在Form_Load时开始事务
然后再在ado的recordset上加一个事件监听如:
' rstChild 是ado 在子窗体上的一个recordset
' xxx_FieldChangeComplete是recordset的一个事件
' 当recordset的某个field发生改变是这个事件将会执行,接下来看就简单了
Private Sub rstChld_FieldChangeComplete(ByVal cFields As Long, _
    ByVal Fields As Variant, _
    ByVal pError As ADODB.Error, _
    adStatus As ADODB.EventStatusEnum, _
    ByVal pRecordset As ADODB.Recordset)
On Error GoTo ErrHandler
    bolIsEdt = True ‘ 这是一个全局变量,当某个Field改变后把它设为True(本来是false)
    Exit Sub
ErrHandler:
    Call GoFunction.ErrProcess(1,Err) ' 这是一个错误处理的东东
  Exit Sub
End Sub
最后在Form_OnLoad里MsgBox一下 如果选择保存而且bolIsEdt = True就CommitTrans
否则不管bolIsEdt都RollBack
应该说很麻烦,不过希望能帮你,有什么其他好办法记得说来听听
4#
发表于 2008-3-14 23:23:42 | 只看该作者
记得之前好像回答过这个问题的,一搜果然就找到,偶得记忆力不错

http://www.office-cn.net/forum.php?mod=viewthread&tid=59319
5#
发表于 2008-3-22 16:37:15 | 只看该作者
感觉晕晕的
6#
发表于 2009-7-28 23:16:01 | 只看该作者
我正想获得这个问题的答案,请高手关注!!!
7#
发表于 2009-7-31 12:04:48 | 只看该作者
我也想知道啊
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-11-15 12:33 , Processed in 0.089475 second(s), 32 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表