Foxtable(狐表)用户栏目专家坐堂 → [求助]年龄如何自动更新


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

主题:[求助]年龄如何自动更新

帅哥哟,离线,有人找我吗?
童年
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:100 积分:900 威望:0 精华:0 注册:2011/12/16 14:00:00
[求助]年龄如何自动更新  发帖心情 Post By:2012/7/9 18:21:00 [只看该作者]

现在设置了个年龄字段,是根据出生日期计算的。现在出现的问题是,只有录入日期时才能计算年龄,即使过了一年,年龄还是不改变。请问如何实现打开项目,或是添加一个窗口来实现刷新年龄字段?谢谢!

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


加好友 发短信
等级:等待验证 帖子:3855 积分:20692 威望:0 精华:5 注册:2012/6/21 14:03:00
  发帖心情 Post By:2012/7/9 18:26:00 [只看该作者]

用户已被锁定

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


加好友 发短信
等级:幼狐 帖子:100 积分:900 威望:0 精华:0 注册:2011/12/16 14:00:00
  发帖心情 Post By:2012/7/9 18:51:00 [只看该作者]

我试了还是不行啊

If e.DataCol.Name = "身份证号" Then '是身份证号发生变化吗?
If e.DataRow.IsNull("身份证号") Then '身份证号是否为空
e.DataRow("出生日期") = Nothing '如果为空,则清除出生日期
e.DataRow("性别") = Nothing '如果为空,则清除性别
Else
'否则从身份证号码列中提取出生日期
e.DataRow("出生日期") = ReadBirthday(e.DataRow("身份证号"))
e.DataRow("性别") = ReadSex(e.DataRow("身份证号"))
End If
End If
If e.DataCol.Name = "出生日期" Then
If e.DataRow.IsNull("出生日期") Then '如果没有输入出生日期
e.DataRow("年龄") = Nothing '则清空年龄
Else
'否则计算年龄
e.DataRow("年龄") = Date.Today.Year - e.DataRow("出生日期").Year
End If
End If

年龄是这样计算得到的

[此贴子已经被作者于2012-7-9 18:51:46编辑过]

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


加好友 发短信
等级:五尾狐 帖子:1128 积分:11041 威望:0 精华:2 注册:2008/9/1 10:45:00
  发帖心情 Post By:2012/7/9 20:39:00 [只看该作者]

用遍历的方法不行吗?年龄全都+1


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


加好友 发短信
等级:九尾狐 帖子:2180 积分:13816 威望:0 精华:2 注册:2012/2/25 10:59:00
  发帖心情 Post By:2012/7/9 23:32:00 [只看该作者]

这就是数据库设计不严谨造成的,你这个年龄完全可以根据身份证计算得出,放在数据库里面就是多余的数据

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


加好友 发短信
等级:管理员 帖子:47448 积分:251060 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2012/7/10 8:01:00 [只看该作者]

肯定可以的,如果搞不定,做个例子放上来,我们帮你搞定。

在此之前,建议看看:

http://www.foxtable.com/help/topics/1587.htm


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


加好友 发短信
等级:幼狐 帖子:100 积分:900 威望:0 精华:0 注册:2011/12/16 14:00:00
  发帖心情 Post By:2012/7/11 20:23:00 [只看该作者]

以下是引用sloyy在2012-7-9 23:32:00的发言:
这就是数据库设计不严谨造成的,你这个年龄完全可以根据身份证计算得出,放在数据库里面就是多余的数据

现实社会让我们每一个有很多生日的,比如父母生他们的公历生日、农历生日,户口簿上公安人员填报的生日,学校老师填报的生日,工作后单位或个人代填的生日,所以现在政府弄三定表,最终确定一个生日,而早期工作的人的生日并不是身份证的生日,而是档案中最早工作证明表中的生日。我回家试试大家的方法,不行就上传让大家解决。仍然要谢谢你。


 回到顶部
客人(60.165.*.*)
  8楼


  发帖心情 Post By:2012/7/14 19:28:00 [只看该作者]

这次搞清楚了,重置的不是年龄列,而是出生日期列。

重置列 或者 AfterOpenProject 那里加个代码

 

DataTables("表名").DataCols("出生日期").RaiseDataColChanged()


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


加好友 发短信
等级:婴狐 帖子:3 积分:92 威望:0 精华:0 注册:2015/1/27 14:57:00
  发帖心情 Post By:2015/1/28 15:20:00 [只看该作者]

麻烦老师给我这个初学者指导一下,谢谢,根据出生日期,得到当前年龄。

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2015/1/28 15:27:00 [只看该作者]

以下是引用qihehuang在2015-1-28 15:20:00的发言:
麻烦老师给我这个初学者指导一下,谢谢,根据出生日期,得到当前年龄。

 

http://www.foxtable.com/help/topics/2647.htm

 


 回到顶部