以文本方式查看主题

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

--  作者:HJG_HB950207
--  发布时间:2015/3/10 10:09:00
--  日期问题
如设置日期字段,日期只要求输入年月,将字段设为字符型,延时码为####-##, 但如何控制输入不出错,如月份不能超过12.谢谢!
--  作者:有点甜
--  发布时间:2015/3/10 10:18:00
--  
 不能控制。你在validateEdit那里写代码控制即可。
--  作者:有点甜
--  发布时间:2015/3/10 10:21:00
--  
If e.Col.Name = "第一列" AndAlso e.Text <> Nothing Then
    Dim ary As String() = e.Text.Split("-")
    If ary.Length <> 2 Then
        e.cancel = True
    Else
        If val(ary(1)) > 12 Then
            e.Cancel = True
        End If
    End If
End If

--  作者:Bin
--  发布时间:2015/3/10 10:22:00
--  
datacolchanging 事件

if e.datacol.name="日期" then
   if System.Text.RegularExpressions.Regex.isMatch(e.newValue,"[0-9]{4}-(0[0-9]{1})|(1[1-2]{1})" then
        e.cancel=true
   end if
end if

--  作者:HJG_HB950207
--  发布时间:2015/3/10 10:37:00
--  
谢谢!在数据表中搞定了。但不知道在窗口表单里面能否控制,我试下再请教。
--  作者:HJG_HB950207
--  发布时间:2015/3/10 10:48:00
--  
在窗口做的表单中,如何控制啊?如一张表,做窗口,在表单中,做时间列,沿用表中字段的文本(####-##),控制月份不超12.
--  作者:有点甜
--  发布时间:2015/3/10 10:51:00
--  

 去编写Validating事件

 

If System.Text.RegularExpressions.Regex.isMatch(e.Sender.Text,"[0-9]{4}-(0[0-9]{1})|(1[1-2]{1})") = False Then
    e.cancel=True
End If

[此贴子已经被作者于2015/3/10 10:52:40编辑过]

--  作者:HJG_HB950207
--  发布时间:2015/3/10 10:59:00
--  
非常谢谢,对我们初学者不厌其烦,谢谢!