以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]自动拆分日期列  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=41795)

--  作者:ZHX241806
--  发布时间:2013/10/28 6:34:00
--  [求助]自动拆分日期列

我有4个列A、B、C、D,A列为日期列,B为年列,C为月列,D为日列,当A列输入日期时,则B列自动填入年份,C列自动填入月份,D列自动填入日,(如A:2013-10-28,则B:2013,C:10,D:28),请求高手代码如何写,谢谢!!!


--  作者:swaterj
--  发布时间:2013/10/28 7:04:00
--  
在表的AfterEdit 时间中加入如下代码:
 If e.Col.name = "A" Then
   Dim dat As Date = e.Row("A")
   e.Row("B") = dat.Year
   e.Row("C") = dat.Month
   e.Row("d") = dat.day
End If
[此贴子已经被作者于2013-10-28 7:07:05编辑过]

--  作者:程兴刚
--  发布时间:2013/10/28 7:55:00
--  
第二行加入 if e.row.isnull("A") = false否则要报错
[此贴子已经被作者于2013-10-28 16:04:28编辑过]

--  作者:ZHX241806
--  发布时间:2013/10/28 18:23:00
--  
很好,谢谢两位高手!!!
--  作者:99473593
--  发布时间:2014/1/12 9:22:00
--  
以下是引用程兴刚在2013-10-28 7:55:00的发言:
第二行加入 if e.row.isnull("A") = false否则要报错
[此贴子已经被作者于2013-10-28 16:04:28编辑过]

按上面两位大侠的方法,在AfterEdi中加入下面代码

 

If e.Col.name = "登记日期"  Then
If e.Row.isnull("登记日期") = False
  Dim dat As Date = e.Row("登记日期")
   e.Row("登记日期年") = dat.Year
   e.Row("登记日期月") = dat.Month
   e.Row("登记日期日") = dat.day
  End If
End If

 

上述代码,在表上直接编辑时有效,但用录入窗口的方式对表进行编辑时无效,需要怎么调整呢,请指点!


--  作者:yan2006l
--  发布时间:2014/1/12 9:44:00
--  

代码是写到datachanged里面的,对应的row和col改成datarow和datacol

[此贴子已经被作者于2014-1-12 9:44:40编辑过]