以文本方式查看主题

-  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


图片点击可在新窗口打开查看此主题相关图片如下:gif.gif
图片点击可在新窗口打开查看

[此贴子已经被作者于2021/5/6 23:04:42编辑过]

--  作者:有点蓝
--  发布时间:2021/5/6 23:09:00
--  
去掉这句:e.DataRow("负责人出庭案件数") = ""
--  作者:天一生水
--  发布时间:2021/5/7 8:39:00
--  
去掉那句代码后,录入的数据符合要求,还是会弹出5次窗口。后面的3次不该弹出来~


图片点击可在新窗口打开查看此主题相关图片如下:gif.gif
图片点击可在新窗口打开查看


--  作者:有点蓝
--  发布时间:2021/5/7 8:43:00
--  
关闭退出项目,删除项目所在的文件夹里的bin目录,然后重启项目试试。