以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- [求助]判断新值不能小于前期的值 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=164421) |
-- 作者:天一生水 -- 发布时间:2021/5/6 22:49:00 -- [求助]判断新值不能小于前期的值 蓝老师好! 因为每月报送的值是前期的累计值,因此不允许本月的数据小于上月的数据,在DataColChanging写入下面的代码,但是不管本列[负责人出庭案件数]输入的值是多少,都弹出"小于前期值!"。代码哪里错了? 请老师指教。谢谢! If e.DataCol.Name = "负责人出庭案件数" Then Dim Val As Integer Val = DataTables("行政机关负责人出庭应诉统计表").SQLCompute("MAX(负责人出庭案件数)", "年份 = \'" & Date.Today.Year & "年\' And 法院全称 = \'" & _UserZName & "\'") msgbox(Val) If e.DataRow("负责人出庭案件数") < Val Then ’e.NewValue 也不行 msgbox("小于前期值!") e.DataRow("负责人出庭案件数") = "" e.Cancel = True End If End If |
-- 作者:有点蓝 -- 发布时间:2021/5/6 22:51:00 -- msgbox(Val)弹出什么值,是否正确? msgbox(e.NewValue)弹出什么值
|
-- 作者:天一生水 -- 发布时间:2021/5/6 22:59:00 -- 弹出的值都对,前面两个msgbox值都对,加黑代码里面不对。会又弹出一遍其他值,不光是“累计值”这3个字。 If e.DataCol.Name = "负责人出庭案件数" Then Dim Val As Integer Val = DataTables("行政机关负责人出庭应诉统计表").SQLCompute("MAX(负责人出庭案件数)", "年份 = \'" & Date.Today.Year & "年\' And 法院全称 = \'" & _UserZName & "\'") msgbox(Val) msgbox(e.NewValue ) If e.NewValue < Val Then msgbox("累计值!") e.DataRow("负责人出庭案件数") = "" e.Cancel = True End If End If [此贴子已经被作者于2021/5/6 23:04:42编辑过]
|
-- 作者:有点蓝 -- 发布时间:2021/5/6 23:09:00 -- 去掉这句:e.DataRow("负责人出庭案件数") = "" |
-- 作者:天一生水 -- 发布时间:2021/5/7 8:39:00 -- 去掉那句代码后,录入的数据符合要求,还是会弹出5次窗口。后面的3次不该弹出来~ |
-- 作者:有点蓝 -- 发布时间:2021/5/7 8:43:00 -- 关闭退出项目,删除项目所在的文件夹里的bin目录,然后重启项目试试。 |