设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
查看: 3387|回复: 4
打印 上一主题 下一主题

[帮助] [求助]十万火急!十伍位的身份证号码升级到十八位

[复制链接]
跳转到指定楼层
1#
发表于 2006-11-14 07:36:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求助:急,因为以前已经录了十五位的身份证号码,现在升级到十八位,所以有大量的身份证号码要更新,如何把十伍位的身份证号码升级到十八位,有人给了个这样的函数{=IF(LEN(A2)=15,REPLACE(A2,7,,19)&MID("10X98765432",MOD(SUM(MID(REPLACE(A2,7,,19),ROW(INDIRECT("1:17")),1)*2^(18-ROW(INDIRECT("1:17")))),11)+1,1),A2)},可是结果与真正的身份证号码有出入.能帮我解决下吗?

见附件
游客,如果您要查看本帖隐藏内容请回复

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
发表于 2006-11-15 21:12:00 | 只看该作者
没办法
3#
发表于 2007-4-22 06:57:00 | 只看该作者
Function IDCode15to18(sCode15 As String) As String
    '* 功能:将15的身份证号升为18位(根据GB 11643-1999)
    '* 参数:原来的号码
    '* 返回:升位后的18位号码
    Dim i As Integer
    Dim num As Integer
    Dim code As String
    num = 0
    IDCode15to18 = Left(sCode15, 6) + "19" + Right(sCode15, 9)
    ' 计算校验位
    For i = 18 To 2 Step -1
      num = num + (2 ^ (i - 1) Mod 11) * (Mid(IDCode15to18, 19 - i, 1))
    Next i
    num = num Mod 11
    Select Case num
    Case 0
      code = "1"
    Case 1
      code = "0"
    Case 2
      code = "X"
    Case Else
      code = Trim(Str(12 - num))
    End Select
    IDCode15to18 = IDCode15to18 + code
End Function
4#
发表于 2007-5-3 06:50:00 | 只看该作者
可行吗?
5#
发表于 2009-10-17 21:19:47 | 只看该作者
谢谢3楼,收藏了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-26 01:41 , Processed in 0.096927 second(s), 30 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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