Office中国论坛/Access中国论坛

标题: [求助]请继续关注:在关闭录入窗体时,如何判断数据是否完整 [打印本页]

作者: luodream    时间: 2007-1-29 21:25
标题: [求助]请继续关注:在关闭录入窗体时,如何判断数据是否完整
[求助]

1、关闭窗体时,如何实现提示是否保存记录?

2、保存记录时,如何判断文本框是否为空,数值是否大于0,日期是否大于某指定日期,否则提示相关信息。

请各路高手明签,提示

不胜感激。

[此贴子已经被作者于2007-1-29 17:19:53编辑过]


作者: 一点通    时间: 2007-1-29 22:16
可参照这个例子的提示方法

http://www.office-cn.net/forum.php?mod=viewthread&tid=52001

[此贴子已经被作者于2007-1-29 14:15:45编辑过]


作者: luodream    时间: 2007-1-30 01:08
感谢。但还有两个问题:

1、保存记录时,有两字段无何判断无效呢?而“录入人”判断是有效的。

2、关闭窗体时,如何实现:

提示是否保存,若选择“是”,则按保存记录的判断进行判断,记录完整,保存退出,不完整,提示。“否”则删除记录。

再次感谢。


[此贴子已经被作者于2007-1-30 12:42:44编辑过]


作者: tz-chf    时间: 2007-1-30 04:53
这种东西一般就在表的规则里设定,用不着再判断,只是有些提示不友好。用户多看几次就习惯了。
作者: wu8313    时间: 2007-1-30 04:59
如果窗体是绑定数据的话,可以这样做:


表里面不要设置任何规则,否则 jet引擎方面的错误很是烦人。建议使用窗体界面来解决这个问题。


1将窗体的 '允许添加' 属性设为 '是'。这个设置,关系到你关闭后是否自动保存数据。


2在窗体的卸载事件中,对必填的控件进行判断。如果有必填项目,用户却提交了空,就删除刚才的记录。


如果用户必填项全部提交,就什么都不做。


形如这样的代码:


Private Sub Form_Unload(Cancel As Integer)





'卸载事件发生在窗体被关闭之后.因为本窗体的'允许添加'属性设为'是',关闭后将会自动保存数据。


If IsNull([体检时间]) Or IsNull([何种疾病]) Then


   


    If MsgBox("关键信息为空,该人体检信息未保存!", vbInformation + vbCritical, "关闭前提示") = vbOK Then





        DoCmd.SetWarnings False


        '如果数据不完整就删除该条自动保存的数据


        DoCmd.RunSQL "DELETE tbl_体检.编号  FROM tbl_体检  WHERE (((tbl_体检.编号)=[Forms]![frm_健康检查表]![编号]));  ", -1’可以针对性写上你的录入窗体名称


        DoCmd.SetWarnings True


        


    End If


        


Else


    ‘如果用户必填项全部提交,就什么都不做.给出一个提示


    MsgBox "数据保存成功!", vbInformation, "关闭前提示"


   


End If





End Sub








[此贴子已经被作者于2007-1-29 21:08:04编辑过]


作者: fan0217    时间: 2007-1-30 18:03
应该在更新前进行数据验证,然后再根据验证的情况提示用户作下一步处理,在关闭前如果窗体数据发生了变化会触发更新前事件的。
作者: wu8313    时间: 2007-1-31 04:01
fan0217 的说法更为 精确。
作者: gurenhua    时间: 2008-5-4 10:27
标题: 回复 4# 的帖子
可以自己定义提示的




欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3