Office中国论坛/Access中国论坛
标题: [求助]从身份证号中提取出生年月日 [打印本页]
作者: ayu330602 时间: 2006-11-23 01:10
标题: [求助]从身份证号中提取出生年月日
请教哪位老师:
有一个表中,怎样从已有的身份证号的字段中提取出生年月日到“出生年月”字段中?谢谢帮助!
[此贴子已经被作者于2006-11-22 17:10:46编辑过]
作者: hi-wzj 时间: 2006-11-23 01:14
将以下代码粘贴到模块中, SfzToXb 返回的是性别 SfzToRq 返回的是生日。 使用: =SfzToRq([身份证字段名称])
Public Function SfzToXb(身份证号 As String) As String
Dim i As Integer
If Len(身份证号) = 15 And IsNumeric(Right(身份证号, 1)) Then
i = CInt(Right(身份证号, 1))
End If
If Len(身份证号) = 18 And IsNumeric(Mid(身份证号, 17, 1)) Then
i = CInt(Mid(身份证号, 17, 1))
End If
If i Mod 2 = 0 Then SfzToXb = "女" Else SfzToXb = "男"
End Function
Public Function SfzToRq(身份证号 As String) As Date
Dim strRq As String
If Len(身份证号) = 15 Then
strRq = Mid(身份证号, 9, 2) & "/" & Mid(身份证号, 11, 2) & "/" & "19" & Mid(身份证号, 7, 2)
ElseIf Len(身份证号) = 18 Then
strRq = Mid(身份证号, 11, 2) & "/" & Mid(身份证号, 13, 2) & "/" & Mid(身份证号, 7, 4)
End If
If IsDate(strRq) Then SfzToRq = CDate(strRq)
End Function
作者: ayu330602 时间: 2006-11-23 17:34
谢谢hi-wzj老师的热心帮助:
我没有编程序,没有自己的模块呀,是想在设计表属性的时候在“出生年月”字段的默认值中加个函数或公式什么的,能行吗?
[此贴子已经被作者于2006-11-23 9:34:18编辑过]
作者: 静儿 时间: 2006-11-23 19:15
表里面只需要身份证字段,不需要生日字段了。
作者: 静儿 时间: 2006-11-23 19:16
性别字段也可以不要。
作者: ayu330602 时间: 2006-11-24 00:31
静儿朋友:谢谢你的热心!
是这样的,我所操作的表是现存的,是很大范围通用的access数据库,有很多用户数据要交流的,我是其中一个用户,所以不能对表结构进行改动,应用程序也是通用的,不能改动,而且也没有原代码。在录入数据时录了身份证号码还要录出生年月,重复劳动,有点烦,想通过设置表中的“出生年月”字段的属性默认值=“身份证号”字段中出生年月信息,达到在应用程序控件中的自动填充止的。你知道方法吗?同时希望有办法的其他老师朋友们的帮助。谢谢大家了!
[此贴子已经被作者于2006-11-23 16:38:21编辑过]
作者: andymark 时间: 2006-11-24 01:28
窗体输入一样的,在输入身份证号后,用hi-wzj版主的方法调用一下就行
作者: yqi 时间: 2006-11-24 15:44
可以在生日控件上,click事件中调用上述代码。也可以在身份证号的losefocus事件中调用。
[此贴子已经被作者于2006-11-24 7:44:23编辑过]
作者: wang1950317 时间: 2006-11-24 16:30
不写代码,把二楼hi-wzj版主的代码摘出一个公式不行吗?
出生年月=IIf(Len([身份证号])=15,Mid([身份证号],9,2) & "/" & Mid([身份证号],11,2) & "/" & "19" & Mid([身份证号],7,2),Mid([身份证号],11,2) & "/" & Mid([身份证号],13,2) & "/" & Mid([身份证号],7,4))
作者: ayu330602 时间: 2006-11-24 18:20
wang1950317:您好!
谢谢你的热心帮助。我把您提供的公式粘到表设计器“出生日期”属性的“默认值”栏中后,保存时显示错误信息:“数据库引擎不能识别验证表达式中的字段‘身份证号’,或表‘人事档案’的缺省值”。请帮助分析一下因原?谢谢!!
[此贴子已经被作者于2006-11-24 10:23:42编辑过]
作者: wang1950317 时间: 2006-11-24 19:26
在窗体控件属性“控件来源”中使用,或在查询中使用。
作者: swx 时间: 2006-11-24 23:17
晕,表只是用来存基本数据的,不是给您计算用的。
作者: ayu330602 时间: 2006-11-28 03:36
唉 !解决不了
[此贴子已经被作者于2006-11-27 19:41:21编辑过]
作者: REORX 时间: 2008-3-4 16:14
路过 学习一下............
作者: jsjdn3 时间: 2008-3-4 18:11
学习学习再学习!!!
作者: baiy108195 时间: 2008-11-20 14:06
原帖由 wang1950317 于 2006-11-24 16:30 发表
不写代码,把二楼hi-wzj版主的代码摘出一个公式不行吗?
出生年月=IIf(Len([身份证号])=15,Mid([身份证号],9,2) & "/" & Mid([身份证号],11,2) & "/" & "19" & Mid([身份证号],7,2),Mid([身份证号],11,2) & "/" & M ...
我用此正解
欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) |
Powered by Discuz! X3.3 |