Foxtable(狐表)用户栏目专家坐堂 → [求助]建立了“身份证号”列,如何通过身份证号计算出年龄,并在“年龄”列中显示


  共有2123人关注过本帖树形打印复制链接

主题:[求助]建立了“身份证号”列,如何通过身份证号计算出年龄,并在“年龄”列中显示

美女呀,离线,留言给我吧!
an_1288
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:35 积分:345 威望:0 精华:0 注册:2017/4/1 16:31:00
[求助]建立了“身份证号”列,如何通过身份证号计算出年龄,并在“年龄”列中显示  发帖心情 Post By:2017/4/7 10:19:00 [只看该作者]

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

 回到顶部
帅哥哟,离线,有人找我吗?
有点青
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:573 积分:2961 威望:0 精华:0 注册:2016/10/27 14:33:00
  发帖心情 Post By: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
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:35 积分:345 威望:0 精华:0 注册:2017/4/1 16:31:00
  发帖心情 Post By:2017/4/7 11:01:00 [只看该作者]

谢谢!那这一串命令要放在哪里呢,或者说要怎么用在foxtabel数据库里呢,不好意思初学不是很明白

 回到顶部
帅哥哟,离线,有人找我吗?
有点青
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:573 积分:2961 威望:0 精华:0 注册:2016/10/27 14:33:00
  发帖心情 Post By:2017/4/7 11:09:00 [只看该作者]

 表属性->DataColChanged事件

 

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

 


 回到顶部
美女呀,离线,留言给我吧!
an_1288
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:35 积分:345 威望:0 精华:0 注册:2017/4/1 16:31:00
  发帖心情 Post By:2017/4/7 11:55:00 [只看该作者]

不好意思,还需要对身份证号和年龄两列作相应的设置吗?试了一下不行呢,表之前是空的没有录入数据

 回到顶部
帅哥哟,离线,有人找我吗?
有点青
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:573 积分:2961 威望:0 精华:0 注册:2016/10/27 14:33:00
  发帖心情 Post By:2017/4/7 11:56:00 [只看该作者]

2楼的代码,【身份证号码】【年龄】 改成你表的列名。

 回到顶部
美女呀,离线,留言给我吧!
an_1288
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:35 积分:345 威望:0 精华:0 注册:2017/4/1 16:31:00
  发帖心情 Post By:2017/4/7 12:19:00 [只看该作者]

我表的列名就是这两个,身份证号码是字符的,年龄是整数的,可以吗、怎么不行呢

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110597 积分:562881 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2017/4/7 14:40:00 [只看该作者]

如果已经有数据,重置列
图片点击可在新窗口打开查看

 回到顶部
帅哥哟,离线,有人找我吗?
有点青
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:573 积分:2961 威望:0 精华:0 注册:2016/10/27 14:33:00
  发帖心情 Post By: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
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:35 积分:345 威望:0 精华:0 注册:2017/4/1 16:31:00
  发帖心情 Post By:2017/4/7 15:46:00 [只看该作者]

行啦!谢谢!

 回到顶部