Access计算根据"身份证号码"字段计算年龄和性别的表达式,最好是还能确定户籍地址,该在什么地方输入?
我只知道是用"DateDiff",但是怎么用,怎么编写我都不知道,谢谢各位大虾了.gogoyangsoft辛苦了,但是经过测试还是无法执行,麻烦你在百忙中抽时间到ACCE...
我只知道是用"DateDiff",但是怎么用,怎么编写我都不知道,谢谢各位大虾了.
gogoyangsoft辛苦了,但是经过测试还是无法执行,麻烦你在百忙中抽时间到ACCESS中测试一下,谢谢了,最好是能够直接发个已经通过测试的文件给我,真的很感激你,我的QQ:52722097 展开
gogoyangsoft辛苦了,但是经过测试还是无法执行,麻烦你在百忙中抽时间到ACCESS中测试一下,谢谢了,最好是能够直接发个已经通过测试的文件给我,真的很感激你,我的QQ:52722097 展开
2个回答
展开全部
谢谢你的帮助,我已经提高了分数,相信非你莫属了,也许是我不知道用法,我也是在OFFICE 2003 ACCESS 中用的,总之让你费心了,能够直接发个已经通过测试的文件给我就好了
自己改了一下,成功了,代码为:
Private Sub 出生日期_BeforeUpdate(Cancel As Integer)
End Sub
Private Sub 身份证号码_AfterUpdate()
On Error GoTo Err_身份证号码_Click
If Len(身份证号码) = 15 Then
xbstr = Right(Trim(身份证号码), 1)
出生日期.Value = Mid(身份证号码, 7, 2) & "-" & Mid(身份证号码, 9, 2) & "-" & Mid(身份证号码, 11, 2)
Else
If Len(身份证号码) = 18 Then
xbstr = Mid(身份证号码, 17, 1)
出生日期.Value = Mid(身份证号码, 7, 4) & "-" & Mid(身份证号码, 11, 2) & "-" & Mid(身份证号码, 13, 2)
Else
MsgBox "身份证数位错误,请检查。", 64, "提醒"
身份证号码.SetFocus
Exit Sub
End If
End If
result = xbstr Mod 2
If result = 0 Then
性别.Value = "女"
Else
性别.Value = "男"
End If
Exit_身份证号码_Click:
Exit Sub
Err_身份证号码_Click:
MsgBox "不能识别的身份证!", 64, "提醒"
Resume Exit_身份证号码_Click
End Sub
Private Sub 主体_Click()
End Sub
自己改了一下,成功了,代码为:
Private Sub 出生日期_BeforeUpdate(Cancel As Integer)
End Sub
Private Sub 身份证号码_AfterUpdate()
On Error GoTo Err_身份证号码_Click
If Len(身份证号码) = 15 Then
xbstr = Right(Trim(身份证号码), 1)
出生日期.Value = Mid(身份证号码, 7, 2) & "-" & Mid(身份证号码, 9, 2) & "-" & Mid(身份证号码, 11, 2)
Else
If Len(身份证号码) = 18 Then
xbstr = Mid(身份证号码, 17, 1)
出生日期.Value = Mid(身份证号码, 7, 4) & "-" & Mid(身份证号码, 11, 2) & "-" & Mid(身份证号码, 13, 2)
Else
MsgBox "身份证数位错误,请检查。", 64, "提醒"
身份证号码.SetFocus
Exit Sub
End If
End If
result = xbstr Mod 2
If result = 0 Then
性别.Value = "女"
Else
性别.Value = "男"
End If
Exit_身份证号码_Click:
Exit Sub
Err_身份证号码_Click:
MsgBox "不能识别的身份证!", 64, "提醒"
Resume Exit_身份证号码_Click
End Sub
Private Sub 主体_Click()
End Sub
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
呵呵,我有个EXCEL的计算公式,给你参考下
假定A1输入身份证号码
计算年龄的公式:
=IF(LEN(A1)=18,YEAR(TODAY())-YEAR(DATE(MID(A1,7,4),MID(A1,11,2),MID(A1,13,2))),(YEAR(TODAY())-YEAR(DATE(MID(A1,7,2),MID(A1,9,2),MID(A1,11,2)))))
计算性别的公式:
=IF(LEN(A1)=18,IF(MOD(MID(A1,17,1),2)=1,"男","女"),IF(MOD(MID(A1,15,1),2)=1,"男","女"))
年龄只能精确到年,如果你要精确到月,就再加一个判断当月是否大月出生月份的判断,但太麻烦,而且可能出问题.
================================================
好吧,我在ACCESS里试了下,原来有些函数要换一下,不过基本上方法都一样:
年龄:
=IIf(Len([idcard])=18,Year(Date())-Year(CDate(Mid([idcard],7,4) & "-" & Mid([idcard],11,2) & "-" & Mid([idcard],13,2))),(Year(Date())-Year(CDate(Mid([idcard],7,2) & "-" & Mid([idcard],9,2) & "-" & Mid([idcard],11,2)))))
性别:
=IIf(Len([idcard])=18,IIf((Mid([idcard],17,1) Mod 2)=1,"男","女"),IIf((Mid([idcard],15,1) Mod 2)=1,"男","女"))
idcard为身份证字段名
我在OFFICE 2003里做的,应该都一样吧
假定A1输入身份证号码
计算年龄的公式:
=IF(LEN(A1)=18,YEAR(TODAY())-YEAR(DATE(MID(A1,7,4),MID(A1,11,2),MID(A1,13,2))),(YEAR(TODAY())-YEAR(DATE(MID(A1,7,2),MID(A1,9,2),MID(A1,11,2)))))
计算性别的公式:
=IF(LEN(A1)=18,IF(MOD(MID(A1,17,1),2)=1,"男","女"),IF(MOD(MID(A1,15,1),2)=1,"男","女"))
年龄只能精确到年,如果你要精确到月,就再加一个判断当月是否大月出生月份的判断,但太麻烦,而且可能出问题.
================================================
好吧,我在ACCESS里试了下,原来有些函数要换一下,不过基本上方法都一样:
年龄:
=IIf(Len([idcard])=18,Year(Date())-Year(CDate(Mid([idcard],7,4) & "-" & Mid([idcard],11,2) & "-" & Mid([idcard],13,2))),(Year(Date())-Year(CDate(Mid([idcard],7,2) & "-" & Mid([idcard],9,2) & "-" & Mid([idcard],11,2)))))
性别:
=IIf(Len([idcard])=18,IIf((Mid([idcard],17,1) Mod 2)=1,"男","女"),IIf((Mid([idcard],15,1) Mod 2)=1,"男","女"))
idcard为身份证字段名
我在OFFICE 2003里做的,应该都一样吧
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询