设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

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

[窗体] 如何让窗体关闭时不执行更新前事件?

[复制链接]
跳转到指定楼层
1#
发表于 2011-3-29 14:25:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
如题。我在窗体上放置了关闭按钮,事件代码如下:
Private Sub close_Click()
DoCmd.close

End Sub

而在窗体的更新前事件中,有如下代码:

Private Sub Form_BeforeUpdate(Cancel As Integer)

If MsgBox("本记录已经有所更改,您是否确定要保存到数据库中? ", vbYesNo, "保存么? ") = vbNo Then

  Cancel = True
   
   
  End If   

End Sub

这样每次点击关闭按钮,就会弹出提示是否保存的提示框,而如果不保存,则仍停留在窗口上,也无法关闭,请问各位,有什么方法,能让关闭按钮忽略掉更新前事件,就执行关闭吗?
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
 楼主| 发表于 2011-3-29 14:34:36 | 只看该作者
忘记了补充一下,窗体更新事件是对子窗体而言的。而关闭按钮是在父窗体上的
3#
 楼主| 发表于 2011-3-29 15:03:20 | 只看该作者
自己找到办法了,原来在更新前事件中,改为如下代码:
If MsgBox("本记录已经有所更改,您是否确定要保存到数据库中? ", vbYesNo, "保存么? ") = vbNo Then
   Me.undo
  Cancel = True

即可。
这样只要点击关闭时,提示是否保存,选不保存时,还能退回未修改前状态,再点击关闭按钮即可正常关闭了。
但是还是不知道有没有能忽略更新前事件的方法,请大家集思广益一下吧,谢谢!
4#
发表于 2011-3-29 15:29:04 | 只看该作者
检查数据是否被修改,无则退出,有则询问是否保存
'在窗体的字段的“属性”“事件”“更新后”的右边输入“=NoAllowSave()”,
'在窗体的“打开”事件中代码“allowSave = False”
'定义模块
Option Compare Database
Option Explicit
Public allowSave As Boolean
Public Function NoAllowSave()
    allowSave = True
End Function
“退出”按钮的单击事件代码
If allowSave = True Then
   If MsgBox("当前数据已经被修改,是否保存?", vbYesNo + vbQuestion, "请选择...") = vbYes Then
   Else
      Me.Undo
   End If
End If
DoCmd.Close
5#
 楼主| 发表于 2011-3-30 08:57:43 | 只看该作者
回楼上,我用你给的方法试了一下,貌似不行啊。点击关闭也不提示就关闭了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-5-14 17:33 , Processed in 0.168549 second(s), 28 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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