以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  时间问题求教  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=34676)

--  作者:weller2
--  发布时间:2013/6/12 12:44:00
--  时间问题求教
日期时间列,它的格式能否改成年月,而不是现在的年月日?
--  作者:lsy
--  发布时间:2013/6/12 13:06:00
--  

如果日期列是自动取当天日期,可以将日期列的数据类型设为字符型,

DataRowAdded

 

e.DataRow("日期") = Format(Date.Today(),"y")


--  作者:weller2
--  发布时间:2013/6/12 14:16:00
--  
目的只是为了方便录入人员快速输入日期(年月),日期时间列如果无法实现只有年月的话,只好用数据列了。

不一定是当天或当月或当年的时间,有没好的时间录入方法指导一下?先行谢过啦。

--  作者:lsy
--  发布时间:2013/6/12 14:24:00
--  

字符型,使用方便。

AfterEdit

Dim y As String = Left((e.Row("日期")),2)
Dim d As String = Right((e.Row("日期")),2)
Dim ys1() As String = {"01","03","05","07","08","10","12"}
Dim ys2() As String = {"04","06","09","11"}
If e.Col.Name = "日期" Then
    If e.Row("日期").Length = 4 Then
        For i As Integer = 0 To ys1.Length - 1
            For j As Integer = 0 To ys2.Length - 1
                If val(y) > 12 OrElse (y.StartsWith(ys1(i)) AndAlso val(d) > 31) OrElse (y.StartsWith(ys2(j)) AndAlso val(d) > 30) OrElse (y.StartsWith("02") AndAlso val(d) > 28) Then
                    e.Row("日期") = ""
                    MessageBox.Show("年月日有误")
                    e.Table.Select(e.Row.Index,e.Col.Index - 1)
                    Return
                Else
                    e.Row("日期") = Right((Date.Today().Year),2) & "-" & y & "-" & d
                End If
            Next
        Next
    End If
End If


--  作者:傻马难骑
--  发布时间:2013/6/12 20:08:00
--  
学习了