Office中国论坛/Access中国论坛

标题: 一个用于验证18位身份证号码有效性的通用函数 [打印本页]

作者: 红尘如烟    时间: 2010-8-24 01:36
标题: 一个用于验证18位身份证号码有效性的通用函数
本帖最后由 红尘如烟 于 2010-8-24 02:09 编辑
  1. '===================================================================
  2. '函数名称: IsIDNumber
  3. '功能描述: 根据GB11643-1999编码规则验证18位身份证号码是否有效
  4. '输入参数: 参数1:IDNumber 必需的,18位身份证号码
  5. '返回参数: 有效返回True,无效返回False
  6. '兼 容 性:
  7. '使用示例: IsIDNumber("370284197901130819") '返回True
  8. '相关调用:
  9. '作 者: 红尘如烟
  10. '创建日期: 20010-4-25
  11. '===================================================================
  12. Function IsIDNumber(ByVal IDNumber As String) As Boolean
  13. Const W As String = "79058421637905842" '加权因子
  14. Const C As String = "10X98765432" '校验码
  15. Dim S As Integer, i As Integer, T As Integer

  16. IDNumber = UCase(Trim(IDNumber))
  17. If Len(IDNumber) <> 18 Then Exit Function
  18. If Not IsNumeric(Mid(IDNumber, 1, 17)) Then Exit Function
  19. If Not IDNumber Like "*[0-9X]" Then Exit Function


  20. For i = 1 To 17
  21.     T = Mid(W, i, 1)
  22.     If T = 0 Then T = 10
  23.     S = S + Mid(IDNumber, i, 1) * T
  24. Next
  25. T = S Mod 11
  26. If Right(IDNumber, 1) = Mid(C, T + 1, 1) Then IsIDNumber = True
  27. End Function
复制代码


作者: ZHENGLIAN    时间: 2010-8-24 08:11
这个不错哦 ,好东西呀!我要下了!多谢!多谢!!
作者: asklove    时间: 2010-8-24 08:17
下了
作者: xuwenning    时间: 2010-8-24 09:19
收下

作者: tmtony    时间: 2010-8-24 11:26
谢谢分享!
作者: sgrshh29    时间: 2010-8-24 15:17

作者: 石三少    时间: 2010-8-24 15:23
谢谢分享
作者: yanwei82123300    时间: 2010-8-24 15:28
这个不错哦 ,好东西呀!我要下了!多谢!多谢!!

作者: layaman_999    时间: 2010-8-24 20:50
三克油,饿骆驼
作者: t小宝    时间: 2010-8-26 11:16
好东西,收藏了
作者: 乐以忘忧    时间: 2010-12-24 23:23
这个不错哦 ,好东西呀!学习了。
作者: purplerose    时间: 2015-7-26 20:19
这类问题好多人在咨询,现在有了,谢了




欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3