以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]建立了“身份证号”列,如何通过身份证号计算出年龄,并在“年龄”列中显示  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=98793)

--  作者:an_1288
--  发布时间:2017/4/7 10:19:00
--  [求助]建立了“身份证号”列,如何通过身份证号计算出年龄,并在“年龄”列中显示
建立了“身份证号”列,如何通过身份证号计算出年龄,并在“年龄”列中显示
[此贴子已经被作者于2017/4/7 10:39:30编辑过]

--  作者:有点青
--  发布时间:2017/4/7 10:46:00
--  
 

DataColChanged事件

 

If e.DataCol.Name = "身份证号码" Then \'是身份证号码发生变化吗?
    If e.DataRow.IsNull("身份证号码") Then \'身份证号码是否为空
        e.DataRow("年龄") = Nothing \'如果为空,则清除出生日期
    Else
        Dim d As Date = ReadBirthday(e.DataRow("身份证号码"))
        Dim y As Integer = d.year
        If format(d, "MMdd") <= Format(Date.Today, "MMdd") Then
            e.DataRow("年龄") = Date.Today.Year - y
        Else
            e.DataRow("年龄") = Date.Today.Year - y -1
        End If
    End If
End If

[此贴子已经被作者于2017/4/7 14:39:57编辑过]

--  作者:an_1288
--  发布时间:2017/4/7 11:01:00
--  
谢谢!那这一串命令要放在哪里呢,或者说要怎么用在foxtabel数据库里呢,不好意思初学不是很明白
--  作者:有点青
--  发布时间:2017/4/7 11:09:00
--  

 表属性->DataColChanged事件

 

http://www.foxtable.com/webhelp/scr/1445.htm

 


--  作者:an_1288
--  发布时间:2017/4/7 11:55:00
--  
不好意思,还需要对身份证号和年龄两列作相应的设置吗?试了一下不行呢,表之前是空的没有录入数据
--  作者:有点青
--  发布时间:2017/4/7 11:56:00
--  
2楼的代码,【身份证号码】【年龄】 改成你表的列名。
--  作者:an_1288
--  发布时间:2017/4/7 12:19:00
--  
我表的列名就是这两个,身份证号码是字符的,年龄是整数的,可以吗、怎么不行呢
--  作者:有点蓝
--  发布时间:2017/4/7 14:40:00
--  
如果已经有数据,重置列
图片点击可在新窗口打开查看

--  作者:有点青
--  发布时间:2017/4/7 14:40:00
--  

代码改一下

 

If e.DataCol.Name = "身份证号码" Then \'是身份证号码发生变化吗?
    If e.DataRow.IsNull("身份证号码") Then \'身份证号码是否为空
        e.DataRow("年龄") = Nothing \'如果为空,则清除出生日期
    Else
        Dim d As Date = ReadBirthday(e.DataRow("身份证号码"))
        Dim y As Integer = d.year
        If format(d, "MMdd") <= Format(Date.Today, "MMdd") Then
            e.DataRow("年龄") = Date.Today.Year - y
        Else
            e.DataRow("年龄") = Date.Today.Year - y -1
        End If
    End If
End If


--  作者:an_1288
--  发布时间:2017/4/7 15:46:00
--  
行啦!谢谢!