Foxtable(狐表)用户栏目专家坐堂 → 日期比较


  共有4664人关注过本帖树形打印复制链接

主题:日期比较

帅哥哟,离线,有人找我吗?
q2520
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:316 积分:2193 威望:0 精华:0 注册:2018/2/4 9:37:00
日期比较  发帖心情 Post By:2018/6/25 8:20:00 [只看该作者]

我现在有2列  第一列的格式是  2018-06-25 08:00     第二列是时间格式    08:00
想要的效果是    第二列输入的时间必须大于第一列时间6小时以上才能输入   代码要怎么写?

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By: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
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:316 积分:2193 威望:0 精华:0 注册:2018/2/4 9:37:00
  发帖心情 Post By:2018/6/25 10:00:00 [只看该作者]

谢谢老师  
如果时间列   只能用空格输入  不让手动写时间怎样实现

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/6/25 10:06:00 [只看该作者]

keydownEdit 事件

 

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

    e.cancel = true

End If


 回到顶部
帅哥哟,离线,有人找我吗?
q2520
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:316 积分:2193 威望:0 精华:0 注册:2018/2/4 9:37:00
  发帖心情 Post By: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编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/6/25 11:09:00 [只看该作者]

改成

 

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


 回到顶部
帅哥哟,离线,有人找我吗?
q2520
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:316 积分:2193 威望:0 精华:0 注册:2018/2/4 9:37:00
  发帖心情 Post By:2018/6/25 11:18:00 [只看该作者]

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


 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/6/25 11:39:00 [只看该作者]

代码写在不同的事件的,一个是validateedit,一个是keydownEdit

 回到顶部
帅哥哟,离线,有人找我吗?
q2520
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:316 积分:2193 威望:0 精华:0 注册:2018/2/4 9:37:00
  发帖心情 Post By:2018/6/25 14:15:00 [只看该作者]

If e.Col.name = "二次时间" Then
           e.cancel = True
    End If
 地方没错  keydownEdit


 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/6/25 14:19:00 [只看该作者]

validateEdit改成

 

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


 回到顶部
总数 42 1 2 3 4 5 下一页