' str : 주민번호 입력(13자리)
Function chk_Jumin(str As String) As Boolean
Dim i_Sum As Integer
Dim i_Odd As Integer
Dim i_Arr(13) As Integer
Dim s_Jumin1 As String
Dim s_Jumin2 As String
Dim s_YY As String
Dim s_MM As String
Dim s_DD As String
Dim i_N As Integer
Dim Genda As String
Dim i As Integer
s_Jumin1 = Mid(str, 1, 6)
s_Jumin2 = Mid(str, 7, 7)
s_YY = Mid(s_Jumin1, 1, 2)
s_MM = Mid(s_Jumin1, 3, 2)
s_DD = Mid(s_Jumin1, 5, 2)
Genda = Mid(s_Jumin2, 1, 1)
i_N = 2
If Len(s_Jumin1) <> 6 Then
MsgBox "생년월일을 정확히 입력하세요. 생년월일 :" + s_Jumin1, vbOKOnly
GoSub sub_Jumin
ElseIf Len(s_Jumin2) <> 7 Then
MsgBox "주민등록번호뒤 번호을 정확히 입력 하세요. 뒤자리 :" + s_Jumin2, vbOKOnly
GoSub sub_Jumin
End If
If CInt(Genda) < 1 And CInt(Genda) > 9 Then
MsgBox "주민등록번호뒤 성별이 정확하지 않습니다.. 뒤자리 :" + s_Jumin2, vbOKOnly
GoSub sub_Jumin
End If
If Mid(s_Jumin2, 6, 1) < 1 And Mid(s_Jumin2, 6, 1) > 9 Then
MsgBox "주민등록 등록자 구분이 잘못 되었습니다.", vbOKOnly
GoSub sub_Jumin
End If
If s_YY < "00" And s_YY > "99" And s_MM < "01" And s_MM > "12" And s_DD < "01" And s_DD > "31" Then
MsgBox "주민등록 앞자리을 다시 입력하세요.", vbOKOnly
GoSub sub_Jumin
End If
For i = 1 To 12
i_Sum = i_Sum + (CInt(Mid(str, i, 1)) * i_N)
i_N = i_N + 1
If i_N = 10 Then i_N = 2
Next i
i_Sum = 11 - (i_Sum Mod 11)
'// 내국인 경우
If CInt(Mid(s_Jumin2, 1, 1)) < 5 Or CInt(Mid(s_Jumin2, 1, 1)) = 9 Then
If i_Sum > 9 Then i_Sum = i_Sum Mod 10
If i_Sum <> CInt(Mid(s_Jumin2, 7, 1)) Then
'MsgBox "주민등록번호가 다릅니다. 확인 바랍니다." + s_Jumin1 + "-" + s_Jumin2, vbOKOnly
GoSub sub_Jumin
End If
ElseIf CInt(Mid(s_Jumin2, 1, 1)) > 4 And CInt(Mid(s_Jumin2, 1, 1)) < 9 Then
If i_Sum >= 10 Then i_Sum = i_Sum - 10
i_Sum = i_Sum + 2
If i_Sum >= 10 Then i_Sum = i_Sum - 10
If i_Sum <> CInt(Mid(s_Jumin2, 7, 1)) Then
'MsgBox "재외국인 주민등록번호가 다릅니다. 확인바랍니다." + str, vbOKOnly
GoSub sub_Jumin
End If
End If
chk_Jumin = True
Exit Function
'============================================
sub_Jumin:
chk_Jumin = False
Exit Function
End Function
'SMH > Module' 카테고리의 다른 글
PB_DLL File Exists Check (0) | 2011.01.01 |
---|---|
PB_File log make (0) | 2011.01.01 |
VB_file write (0) | 2011.01.01 |
VB_farpoint Initailize (0) | 2011.01.01 |
VB_DB Connection(MSSQL/MYSQL/DB2/ORACLE) (2) | 2011.01.01 |