以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]年龄如何自动更新  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=21341)

--  作者:童年
--  发布时间:2012/7/9 18:21:00
--  [求助]年龄如何自动更新
现在设置了个年龄字段,是根据出生日期计算的。现在出现的问题是,只有录入日期时才能计算年龄,即使过了一年,年龄还是不改变。请问如何实现打开项目,或是添加一个窗口来实现刷新年龄字段?谢谢!
--  作者:童年
--  发布时间: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
--  发布时间:2012/7/9 20:39:00
--  

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


--  作者:sloyy
--  发布时间:2012/7/9 23:32:00
--  
这就是数据库设计不严谨造成的,你这个年龄完全可以根据身份证计算得出,放在数据库里面就是多余的数据
--  作者:狐狸爸爸
--  发布时间:2012/7/10 8:01:00
--  

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

在此之前,建议看看:

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


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

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


--  作者:客人
--  发布时间:2012/7/14 19:28:00
--  
这次搞清楚了,重置的不是年龄列,而是出生日期列。

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

 

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


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

 

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