以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  如何输入日期只输入年月,输入具体日期?  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=117078)

--  作者:lhw7577
--  发布时间:2018/4/5 19:14:00
--  如何输入日期只输入年月,输入具体日期?
我想做一个日期输入列,比如“出生年月”和“参加工作时间”,数据只输入到年和月即可,不要输入日期。一个数据表有好几个日期列,怎么设计


--  作者:psu3785494
--  发布时间:2018/4/6 11:41:00
--  

DataColChanged事件

 

Dim d As Date
If Date.TryParse(e.NewValue, d) Then
    e.DataRow("出生年月") =d.Year & "年" & d.Month & "月"
End If

 

“出生年月”列的数据类型是“字符”

[此贴子已经被作者于2018/4/6 11:42:52编辑过]

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

控制日期列的显示,即可,drawcell事件

 

If e.Col.name = "日期" AndAlso e.text > "" Then
    e.text = Format(cdate(e.text), "yyyy-MM")
End If


--  作者:psu3785494
--  发布时间:2018/4/6 12:57:00
--  

谢谢老师

 


--  作者:psu3785494
--  发布时间:2018/4/6 13:26:00
--  

我只看到,老师写的这句话“控制日期列的显示,即可,drawcell事件”,没看答案,就写了如下代码

 

 

Dim d As Date
If e.Col.Name = "出生年月" AndAlso e.Row.IsNull("出生年月") = False  Then
    d = e.Row("出生年月")
    e.Text = d.Year & "年" & d.Month & "月"
End If

 

老师的这个“Format(cdate”我还不认识哪,谢谢老师,我再学

 


--  作者:psu3785494
--  发布时间:2018/4/6 13:38:00
--  

哈哈,明白了,原来是格式化啊,然后将输入值转化成日期格式(Cdate),显示成“yyyy年M月”的形式。真的感谢老师!

 


--  作者:有点甜
--  发布时间:2018/4/6 15:46:00
--  
以下是引用psu3785494在2018/4/6 13:38:00的发言:

哈哈,明白了,原来是格式化啊,然后将输入值转化成日期格式(Cdate),显示成“yyyy年M月”的形式。真的感谢老师!

 

 

填入日期的时候,年月日中日可以随便填,不显示日即可。

 

如果确实需要使用一列存放【年月】,你需要额外添加一列表达式列处理,如 http://www.foxtable.com/webhelp/scr/1285.htm

 


--  作者:lhw7577
--  发布时间:2018/4/6 17:08:00
--  
一个数据表有好几个日期列,比如“出生年月”\\“参加工作时间”“入党时间”只需要到年和月即可,不要输入具体日。怎么设计


--  作者:有点甜
--  发布时间:2018/4/6 17:19:00
--  
以下是引用lhw7577在2018/4/6 17:08:00的发言:
一个数据表有好几个日期列,比如“出生年月”\\“参加工作时间”“入党时间”只需要到年和月即可,不要输入具体日。怎么设计

 

如果要用日期列,必须输入日才行,对于输入的数据,你不理会日即可。看3楼。

 

如果不用日期列,那就改成字符列,你自己设计一个下拉窗口,给用户输入年月值,如

 

http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=98612&skin=0

 


--  作者:lhw7577
--  发布时间:2018/4/7 8:53:00
--  
甜老师,日期列不适合改字符列,想所有的日期列输入年月日,但只显示年月,能做到吗?谢谢指点!