|
身份证号码校验工具-VB编译版
一、前言
最近在学习VB,主要目的是为了提高办公效率,最近学习到了数据库和网络接口,做了一个身份证号码校验工具,本着大家一起学习的原则的原则,上来发给大家参考下,如有错误的地方请指正,
工具主要功能如下:
身份证号码校验,利用公式识别出身份证号码是否正确;识别性别,是男是女(身份证的倒数第二位数字判断)识别省份(前两位)、市(3-4位)、县(5-6位)识别年龄(当前日期减7-14位)识别星座(根据生日11-14位来判断)识别属相(根据出生年判断)
二、软件截图
三、工具下载地址
https://www.lanzous.com/i8cpfhc
三、部分源码(仅供学习)
[Visual Basic] 纯文本查看 复制代码'计算星座
Sub 星座()
Dim 星座$
If 主窗口.身份证号码s = "" Then
星座 = ""
Else
Dim 日期%
日期 = Int(Mid(主窗口.身份证号码s, 11, 4))
If 日期 >= 1222 Or 日期 = 120 And 日期 = 219 And 日期 = 321 And 日期 = 420 And 日期 = 521 And 日期 = 622 And 日期 = 723 And 日期 = 823 And 日期 = 923 And 日期 = 1024 And 日期 = 1122 And 日期
[Visual Basic] 纯文本查看 复制代码'计算属相
Sub 属相()
Dim 属相$
If 主窗口.身份证号码s = "" Then
属相 = ""
Else
Dim 全属相$
全属相 = "猴鸡狗猪鼠牛虎兔龙蛇马羊"
属相 = Mid(全属相, (CInt(Mid(主窗口.身份证号码s, 7, 4)) Mod 12) + 1, 1)
主窗口.属相.Caption = 属相
End If
End Sub
[Visual Basic] 纯文本查看 复制代码'身份证号码正确性校验
Sub 身份证号码校验()
Dim 身份证号码$, 正确性校验$, i%
i = 2
身份证号码 = 主窗口.身份证号码s.Text
正确性校验 = 校验(身份证号码)
If Len(身份证号码) = 15 Then
主窗口.显示框.ForeColor = vbRed
主窗口.显示框.Caption = "不支持验证15位身份证号码"
主窗口.身份证号码s.SetFocus
ElseIf Len(身份证号码) 18 Then
主窗口.显示框.ForeColor = vbRed
主窗口.显示框.Caption = "身份证号码位数不正确"
主窗口.身份证号码s.SetFocus
ElseIf 正确性校验 = "身份证号码错误" Then
主窗口.显示框.ForeColor = vbRed
主窗口.显示框.Caption = "身份证号码错误"
主窗口.身份证号码s.SetFocus
Else
If 主窗口.源1.Value = True Then
Call 读取地址1.地址
Call 属相.属相
Call 星座.星座
Else
Call 读取地址2.地址
Call 属相.属相
Call 星座.星座
End If
End If
i = i + 1
End Sub
Function 校验(身份证号码 As String)
Dim 余数, 校验码, 号码$, 校验码1, 校验码2, 校验结果
号码 = 身份证号码
'计算余数
If 号码 = "" Then
余数 = ""
Else
On Error Resume Next
余数 = (Left(号码, 1) * 7 + Mid(号码, 2, 1) * 9 + Mid(号码, 3, 1) * 10 + Mid(号码, 4, 1) * 5 + Mid(号码, 5, 1) * 8 + Mid(号码, 6, 1) * 4 + Mid(号码, 7, 1) * 2 + Mid(号码, 8, 1) * 1 + Mid(号码, 9, 1) * 6 + Mid(号码, 10, 1) * 3 + Mid(号码, 11, 1) * 7 + Mid(号码, 12, 1) * 9 + Mid(号码, 13, 1) * 10 + Mid(号码, 14, 1) * 5 + Mid(号码, 15, 1) * 8 + Mid(号码, 16, 1) * 4 + Mid(号码, 17, 1) * 2) Mod 11
Error = 0
End If
'计算校验码
If 余数 = 0 Then
校验码1 = 1
ElseIf 余数 = 1 Then
校验码1 = 0
ElseIf 余数 = 2 Then
校验码1 = "X"
ElseIf 余数 = 3 Then
校验码1 = 9
ElseIf 余数 = 4 Then
校验码1 = 8
Else
校验码1 = ""
End If
If 余数 = 5 Then
校验码2 = 7
ElseIf 余数 = 6 Then
校验码2 = 6
ElseIf 余数 = 7 Then
校验码2 = 5
ElseIf 余数 = 8 Then
校验码2 = 4
ElseIf 余数 = 9 Then
校验码2 = 3
ElseIf 余数 = 10 Then
校验码2 = 2
Else
校验码2 = ""
End If
校验码 = 校验码1 & 校验码2
If 号码 = "" Then
校验结果 = ""
ElseIf Len(号码) = 15 Then
校验结果 = "未验证"
ElseIf Len(号码) = 18 And Right(号码, 1) = 校验码 Then
校验结果 = "身份证号码正确"
Else
校验结果 = "身份证号码错误"
End If
校验 = 校验结果
End Function
四、身份证地址数据库文件(未加密数据库,仅供学习使用!)
[color=]未经允许,谢绝转载!!! |
|