以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  日期比较  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=120846)

--  作者:q2520
--  发布时间:2018/6/25 8:20:00
--  日期比较
我现在有2列  第一列的格式是  2018-06-25 08:00     第二列是时间格式    08:00
想要的效果是    第二列输入的时间必须大于第一列时间6小时以上才能输入   代码要怎么写?

--  作者:有点甜
--  发布时间:2018/6/25 8:48:00
--  

validateEdit事件

 

If e.Col.name = "第二列" Then
    Dim d1 As Date = e.Row("第一列")
    d1 = new Date(1900, 1, 1, d1.Hour, d1.Minute, d1.Second)
    Dim d2 As Date = e.text
    d2 = new Date(1900, 1, 1, d2.Hour, d2.Minute, d2.Second)
    Dim sp As TimeSpan = d2-d1
    If sp.TotalHours < 6 Then
        e.cancel = True
        msgbox("不满足")
    End If
End If


--  作者:q2520
--  发布时间:2018/6/25 10:00:00
--  
谢谢老师  
如果时间列   只能用空格输入  不让手动写时间怎样实现

--  作者:有点甜
--  发布时间:2018/6/25 10:06:00
--  

keydownEdit 事件

 

If e.col.name = "第二列" Then

    e.cancel = true

End If


--  作者:q2520
--  发布时间:2018/6/25 11:07:00
--  
现在有2个问题   

If e.Col.name = "第二列" Then
    Dim d1 As Date = e.Row("第一列")
    d1 = new Date(1900, 1, 1, d1.Hour, d1.Minute, d1.Second)
    Dim d2 As Date = e.text
    d2 = new Date(1900, 1, 1, d2.Hour, d2.Minute, d2.Second)
    Dim sp As TimeSpan = d2-d1
    If sp.TotalHours < 6 Then
        e.cancel = True
        msgbox("不满足")
    End If
End If
单独用这个代码的时候  如果第二列时间输入不满足6小时提示正常  但是删除的话 就会报错

图片点击可在新窗口打开查看此主题相关图片如下:sj.png
图片点击可在新窗口打开查看
如果2个代码一起用     如果第二列输入错误   删除都删除不了

还有下面这个代码  还是可以输入
If e.Col.name = "二次时间" Then
           e.cancel = True
    End If


[此贴子已经被作者于2018/6/25 11:10:10编辑过]

--  作者:有点甜
--  发布时间:2018/6/25 11:09:00
--  

改成

 

If e.Col.name = "第二列" AndAlso e.Text > "" Then


--  作者:q2520
--  发布时间:2018/6/25 11:18:00
--  
还有下面这个代码  还是可以输入
If e.Col.name = "二次时间" Then
           e.cancel = True
    End If


--  作者:有点甜
--  发布时间:2018/6/25 11:39:00
--  
代码写在不同的事件的,一个是validateedit,一个是keydownEdit
--  作者:q2520
--  发布时间:2018/6/25 14:15:00
--  
If e.Col.name = "二次时间" Then
           e.cancel = True
    End If
 地方没错  keydownEdit


--  作者:有点甜
--  发布时间:2018/6/25 14:19:00
--  

validateEdit改成

 

If e.Col.name = "二次时间" AndAlso e.Text > "" Then