VB,크리스탈레포트

[VB]주민번호,사업자번호 검사로직

자료나눔 2009. 4. 29. 13:32

--법인(주민)등록번호 확인
Public Function GF_JuminCheck(sVal As String) As Boolean
Dim HAP, Reselt As Long
Dim F1, F2, F3, F4, F5, F6 As Integer
Dim L1, L2, L3, L4, L5, L6, L7 As Integer
Dim sWork As String

sWork = Trim(sVal)
GF_JuminCheck = True
If Len(sWork) = 14 Then
sWork = Mid(sVal, 1, 6) + Mid(sVal, 8)
End If
If Len(sWork) <> 13 Then
GF_JuminCheck = False
Exit Function
End If
F1 = Mid(sWork, 1, 1)
F2 = Mid(sWork, 2, 1)
F3 = Mid(sWork, 3, 1)
F4 = Mid(sWork, 4, 1)
F5 = Mid(sWork, 5, 1)
F6 = Mid(sWork, 6, 1)
HAP = F1 * 2 + F2 * 3 + F3 * 4 + F4 * 5 + F5 * 6 + F6 * 7
L1 = Mid(sWork, 7, 1)
L2 = Mid(sWork, 8, 1)
L3 = Mid(sWork, 9, 1)
L4 = Mid(sWork, 10, 1)
L5 = Mid(sWork, 11, 1)
L6 = Mid(sWork, 12, 1)
L7 = Mid(sWork, 13, 1)

HAP = HAP + L1 * 8 + L2 * 9 + L3 * 2 + L4 * 3 + L5 * 4 + L6 * 5

Reselt = HAP Mod 11
Reselt = (11 - Reselt) Mod 10

If Reselt <> L7 Then
GF_JuminCheck = False
End If
End Function

--사업자등록번호 확인
Public Function Check_ENTP_RGST(sNumber As String) As Boolean
Dim iMN, i, iNum, Count As Integer
Dim sTemp(11) As Integer

Count = 0
If Len(sNumber) = 12 Then
For i = 1 To Len(sNumber)
If (Mid(sNumber, i, 1) >= "0") And (Mid(sNumber, i, 1) <= "9") Then
Count = Count + 1
sTemp(Count) = Val(Mid(sNumber, i, 1))
End If
Next i

iMN = (Int((sTemp(9) * 5) / 10)) + (sTemp(9) * 5 Mod 10) + sTemp(1) + sTemp(4) + sTemp(7) _
+ (sTemp(2) + sTemp(5) + sTemp(8)) * 3 + (sTemp(3) + sTemp(6)) * 7
iNum = iMN Mod 10
If sTemp(10) = ((10 - iNum) Mod 10) Then
Check_ENTP_RGST = True
Else
Check_ENTP_RGST = False
End If
Else
Check_ENTP_RGST = False
End If
End Function