以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助] 验证按钮代码(已解决)  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=17366)

--  作者:yyzlxc
--  发布时间:2012/3/11 11:29:00
--  [求助] 验证按钮代码(已解决)

一段代码,要求在"无账号"列有√的行,"大帐存款"列必须填入数据,并提示"OK",否则提示"是否遗漏",现在的情况是,填入0时,提示"是否遗漏",要求在填入0的情况下,提示能显示"OK",代码应该如何修改,请各位老师指教,谢谢!!

 

 

For Each dr As DataRow In DataTables("存款明细").DataRows 
    If  dr("无账号") = "√" And dr("大帐存款") = Nothing Then
        MessageBox.Show("请检查无账号的大帐存款是否漏填","提示")
        Return
    End If

Next

MessageBox.Show("OK","提示")

 

 

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目4.table

[此贴子已经被作者于2012-3-11 18:58:24编辑过]

--  作者:程兴刚
--  发布时间:2012/3/11 12:34:00
--  
不必要在按钮中来检测,应该设计使用代码限制,当"无账号"列有√时且"大帐存款"列无数据,禁止离开该行,同时提示"大帐存款"列无数据,要求填写或修改无账号列的值,这就相当于硬性要求操作者养成这种操作模式和实时检测数据的习惯,不必要事后来解决和查缺补漏,就效率来说,更高,就数据库处理来说,实时限制错漏。
--  作者:yyzlxc
--  发布时间:2012/3/11 13:50:00
--  
谢谢程老师的回复,因为"无账号"列的√是从其他表引用过来的,这只是一个案例,在这张表还有其他的操作,只是想在保存前对一系列操作进行验证,此案例只是其中的一项操作内容,是否有办法达到上述目的,还请各位老师指教,谢谢!!
--  作者:程兴刚
--  发布时间:2012/3/11 13:59:00
--  
保存前直接全部筛选出来,根据筛选后的总行数大于0的时候提示修改并提示不无不可,没必要这样逐行遍历,效率低,如果有上千万条数据,就有一、两条这样的数据怎么办?遍历所有行是否耗费时间?
--  作者:yyzlxc
--  发布时间:2012/3/11 14:41:00
--  
谢谢程老师的指教,此表大概也就2万行的数据,现在的问题是"大帐存款"列填入0时,提示"是否遗漏",但是实际要求是允许填入0,提示显示"OK"(因为0值不为空值),如何来实现这个效果,请各位老师指教,谢谢!!
--  作者:程兴刚
--  发布时间:2012/3/11 18:00:00
--  
For Each dr As DataRow In DataTables("存款明细").DataRows
    If  dr("无账号") = "√" And dr.Isnull("大帐存款") = True Then
        MessageBox.Show("请检查无账号的大帐存款是否漏填","提示")
        Return
    End If
Next
MessageBox.Show("OK","提示")

--  作者:yyzlxc
--  发布时间:2012/3/11 18:58:00
--  
谢谢程老师,代码达到预期效果,再次衷心感谢!!