以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助]对于数值的验证  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=127384)

--  作者:jjjeyes
--  发布时间:2018/11/12 22:56:00
--  [求助]对于数值的验证
我有一张“表A”,有一列“长跑”填写的内容是学生1000米跑步的成绩,为了输入的方便,我将输入“\'”用“.”代替。如输入数据为4\'34,则只需要输入4.34。数据“长跑”列的类型为字符型。
请问如何验证输入数据的有效性:
1、输入数据小数点后的值必须小于60
2、小数点前的值要在2至8之间

--  作者:有点蓝
--  发布时间:2018/11/12 23:13:00
--  
参考:http://www.foxtable.com/webhelp/scr/0617.htm

大概类似

If e.Col.Name = "长跑" Then \'如果正在输入的是折扣列
    If e.Text > "" Then \'如果已经输入内容
        Dim ar() As String = e.Text.split(".")
        If ar.Length = 2 Then
            Dim v1 As Double = Val(ar(0)) \'将输入的内容转换为数值
            If v1 > 8 OrElse v1 < 2 Then \'如果输入的值大于0.15
                e.Cancel = True \'则禁止退出编辑模式
            Else
                Dim v2 As Double = Val(ar(1)) \'将输入的内容转换为数值
                If v2 > 60 OrElse v1 <= 0 Then \'如果输入的值大于0.15
                    e.Cancel = True \'则禁止退出编辑模式
                End If
                
            End If
        Else
            e.Cancel = True \'则禁止退出编辑模式
        End If
    End If
End If

--  作者:jjjeyes
--  发布时间:2018/11/12 23:37:00
--  
明白了,主要是分割字符split的运用