设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

12下一页
返回列表 发新帖
查看: 7425|回复: 15
打印 上一主题 下一主题

[其它] [求助]从身份证号中提取出生年月日

[复制链接]
跳转到指定楼层
1#
发表于 2006-11-23 01:10:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
请教哪位老师:

有一个表中,怎样从已有的身份证号的字段中提取出生年月日到“出生年月”字段中?谢谢帮助!

[此贴子已经被作者于2006-11-22 17:10:46编辑过]

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
发表于 2006-11-23 01:14:00 | 只看该作者
将以下代码粘贴到模块中, 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
3#
 楼主| 发表于 2006-11-23 17:34:00 | 只看该作者
谢谢hi-wzj老师的热心帮助:

     我没有编程序,没有自己的模块呀,是想在设计表属性的时候在“出生年月”字段的默认值中加个函数或公式什么的,能行吗?

      

[此贴子已经被作者于2006-11-23 9:34:18编辑过]

4#
发表于 2006-11-23 19:15:00 | 只看该作者
表里面只需要身份证字段,不需要生日字段了。
5#
发表于 2006-11-23 19:16:00 | 只看该作者
性别字段也可以不要。
6#
 楼主| 发表于 2006-11-24 00:31:00 | 只看该作者
静儿朋友:谢谢你的热心!

     是这样的,我所操作的表是现存的,是很大范围通用的access数据库,有很多用户数据要交流的,我是其中一个用户,所以不能对表结构进行改动,应用程序也是通用的,不能改动,而且也没有原代码。在录入数据时录了身份证号码还要录出生年月,重复劳动,有点烦,想通过设置表中的“出生年月”字段的属性默认值=“身份证号”字段中出生年月信息,达到在应用程序控件中的自动填充止的。你知道方法吗?同时希望有办法的其他老师朋友们的帮助。谢谢大家了!

[此贴子已经被作者于2006-11-23 16:38:21编辑过]

7#
发表于 2006-11-24 01:28:00 | 只看该作者
窗体输入一样的,在输入身份证号后,用hi-wzj版主的方法调用一下就行
8#
发表于 2006-11-24 15:44:00 | 只看该作者
可以在生日控件上,click事件中调用上述代码。也可以在身份证号的losefocus事件中调用。

[此贴子已经被作者于2006-11-24 7:44:23编辑过]

点击这里给我发消息

9#
发表于 2006-11-24 16:30:00 | 只看该作者
不写代码,把二楼hi-wzj版主的代码摘出一个公式不行吗?

出生年月=IIf(Len([身份证号])=15,Mid([身份证号],9,2) & "/" & Mid([身份证号],11,2) & "/" & "19" & Mid([身份证号],7,2),Mid([身份证号],11,2) & "/" & Mid([身份证号],13,2) & "/" & Mid([身份证号],7,4))
10#
 楼主| 发表于 2006-11-24 18:20:00 | 只看该作者
wang1950317:您好!

    谢谢你的热心帮助。我把您提供的公式粘到表设计器“出生日期”属性的“默认值”栏中后,保存时显示错误信息:“数据库引擎不能识别验证表达式中的字段‘身份证号’,或表‘人事档案’的缺省值”。请帮助分析一下因原?谢谢!!

[此贴子已经被作者于2006-11-24 10:23:42编辑过]

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-11-19 12:28 , Processed in 0.102642 second(s), 34 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表