📄 peoplecode.cls
字号:
VERSION 1.0 CLASS
BEGIN
MultiUse = -1 'True
Persistable = 0 'NotPersistable
DataBindingBehavior = 0 'vbNone
DataSourceBehavior = 0 'vbNone
MTSTransactionMode = 0 'NotAnMTSObject
END
Attribute VB_Name = "PeopleCode"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = True
Attribute VB_PredeclaredId = False
Attribute VB_Exposed = False
Public PeopleBirth As Date '接收居民身份证号码中的出生日期
Public PeopleAge As Integer '接收居民身份证号码中的年龄
Public PeopleSex As String '接收居民身份证号码中的性别
Public PeopleCodes As String
Public Function PeopleCode(StrCode As String) As String
Dim StrInput, Temp As String
Dim StrBirth As String
StrInput = StrCode '通过实参传递进来的身份证号码值
Length = Len(StrInput)
If StrCode = "" Then
MsgBox "输入不能为空", 48, "提示"
ElseIf Not IsNumeric(StrCode) Then
StrCode = ""
Else
If Length = 15 Then
Dim Temp1, Temp2, Temp3
Dim S As Integer
Dim x, Y
x = Array(7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2, 1)
Y = Array("1", "0", "x", "9", "8", "7", "6", "5", "4", "3", "2")
Temp1 = Mid(StrCode, 1, 6)
Temp1 = Temp1 + "19"
Temp2 = Mid(StrCode, 7, 15)
Temp1 = Temp1 + Temp2
S = 0
For i = 0 To 16
j = Val(Mid(Temp1, i + 1, 1)) * x(i)
S = S + j
Next i
S = S Mod 11
StrCode = Temp1 + Trim(Y(S))
PeopleCodes = Temp1 + Trim(Y(S))
Temp = Mid$(StrCode, 7, 4)
Temp3 = Temp
Temp = Mid$(StrCode, 11, 2)
If Val(Temp) > 12 Or Val(Temp) < 0 Then
MsgBox "您输入的身份证号非法"
StrCode = ""
Else
StrBirth = Temp3 + "-" + Temp
Temp = Mid$(StrCode, 13, 2)
StrBirth = StrBirth + "-" + Temp
PeopleBirth = StrBirth
PeopleAge = DateDiff("yyyy", PeopleBirth, Date)
End If
ElseIf Len(StrInput) = 18 Then
Temp = Mid$(StrInput, 7, 4)
StrBirth = Temp
Temp = Mid$(StrInput, 11, 2)
If Val(Temp) > 12 Or Val(Temp) < 0 Then
MsgBox "您输入的身份证号非法"
StrCode = ""
Else
StrBirth = StrBirth + "-" + Temp
Temp = Mid$(StrCode, 13, 2)
StrBirth = StrBirth + "-" + Temp
PeopleBirth = StrBirth
PeopleAge = DateDiff("yyyy", PeopleBirth, Date)
PeopleCodes = StrInput
End If
Else
MsgBox "您输入的身份证号的位数非法!", 48, "提示"
StrCode = ""
End If
End If
Temp = Mid$(StrCode, 17, 1) '判断身份证号的最后一位是“男”还是“女”
If Temp = "1" Or Temp = "3" Or Temp = "5" Or Temp = "7" Or Temp = "9" Then
PeopleSex = "男"
ElseIf Temp = "0" Or Temp = "2" Or Temp = "4" Or Temp = "6" Or Temp = "8" Then
PeopleSex = "女"
End If
End Function
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -