כנראה הקוד לא מעודכן.
תעלה לכאן את הקוד של המודול mdlValidations.
Option Compare Database
Option Explicit
Public Function fValidateBankAccount(lngBankNumber As Long, _
lngBranch As Long, _
lngAccount As Long) As Boolean
Dim lngRequiredAccountLength As Long
Dim lngTotal As Long
Dim strArrayAccount() As String
Dim strArrayBranch() As String
Dim strAccount As String
Dim strBranch As String
fValidateBankAccount = False
' קביעת אורך המספר חשבון
Select Case lngBankNumber
Case 10, 13, 34
lngRequiredAccountLength = 8
Case 12, 4 ' פועלים, יהב
lngRequiredAccountLength = 6
Case 11, 17 ' דיסקונט, מרכנתיל דיסקונט
lngRequiredAccountLength = 9
Case 20 ' מזרחי טפחות
lngRequiredAccountLength = 6
Case 31, 52 ' הבינלאומי, פאגי
lngRequiredAccountLength = 9
Case 9 ' הדואר
lngRequiredAccountLength = 9
Case 22 ' Citibank N.A
lngRequiredAccountLength = 9
Case 46 ' מסד
lngRequiredAccountLength = 9
Case 14 ' אוצר החייל
lngRequiredAccountLength = 9
End Select
If lngBankNumber <> 54 Then
strAccount = String(lngRequiredAccountLength - Len(CStr(Left(lngAccount, lngRequiredAccountLength))), "0") & CStr(Left(lngAccount, lngRequiredAccountLength))
Else
strAccount = CStr(lngAccount)
End If
' strAccount = Right("0000000000" & CStr(lngAccount), lngRequiredAccountLength) ' This is an alternative to the previous line
strAccount = StrConv(strAccount, vbUnicode)
strArrayAccount = Split(strAccount, vbNullChar)
If lngBankNumber = 20 And lngBranch > 400 Then ' אם מספר הסניף בבנק מזרחי-טפחות גדול מ400
strBranch = CStr(lngBranch - 400) ' לפני החישובים יש להפחית 400
Else ' אם מספר הסניף בבנק מזרחי-טפחות לא גדול מ400
strBranch = CStr(lngBranch) ' לפני החישובים אל תבצע כלום
End If
If Len(strBranch) < 3 Then
strBranch = String(3 - Len(strBranch), "0") & strBranch ' מוסיף אפסים להשלים ל3 ספרות
End If
strBranch = StrConv(strBranch, vbUnicode)
strArrayBranch = Split(strBranch, vbNullChar)
Select Case lngBankNumber
Case 54
' כל חשבון חוקי
fValidateBankAccount = True
Case 10, 13, 34
Select Case CLng(Right( _
CLng(strArrayBranch(0)) * 10 + _
CLng(strArrayBranch(1)) * 9 + _
CLng(strArrayBranch(2)) * 8 + _
CLng(strArrayAccount(0)) * 7 + _
CLng(strArrayAccount(1)) * 6 + _
CLng(strArrayAccount(2)) * 5 + _
CLng(strArrayAccount(3)) * 4 + _
CLng(strArrayAccount(4)) * 3 + _
CLng(strArrayAccount(5)) * 2 + _
CLng(Right(lngAccount, 2)) _
, 2))
Case 90, 72, 70, 60, 20
fValidateBankAccount = True
Case Else
fValidateBankAccount = False
End Select
Case 12, 4
lngTotal = CLng(strArrayBranch(0)) * 9 + _
CLng(strArrayBranch(1)) * 8 + _
CLng(strArrayBranch(2)) * 7 + _
CLng(strArrayAccount(0)) * 6 + _
CLng(strArrayAccount(1)) * 5 + _
CLng(strArrayAccount(2)) * 4 + _
CLng(strArrayAccount(3)) * 3 + _
CLng(strArrayAccount(4)) * 2 + _
CLng(strArrayAccount(5)) * 1
Select Case lngTotal Mod 11
Case 0, 2
fValidateBankAccount = True
Case 4, 6
Select Case lngBankNumber
Case 12
fValidateBankAccount = True
Case Else
fValidateBankAccount = False
End Select
Case Else
fValidateBankAccount = False
End Select
Case 11, 17
lngTotal = CLng(strArrayAccount(0)) * 9 + _
CLng(strArrayAccount(1)) * 8 + _
CLng(strArrayAccount(2)) * 7 + _
CLng(strArrayAccount(3)) * 6 + _
CLng(strArrayAccount(4)) * 5 + _
CLng(strArrayAccount(5)) * 4 + _
CLng(strArrayAccount(6)) * 3 + _
CLng(strArrayAccount(7)) * 2 + _
CLng(strArrayAccount(8)) * 1
Select Case lngTotal Mod 11
Case 0, 2, 4
fValidateBankAccount = True
Case Else
fValidateBankAccount = False
End Select
Case 20
lngTotal = CLng(strArrayBranch(0)) * 9 + _
CLng(strArrayBranch(1)) * 8 + _
CLng(strArrayBranch(2)) * 7 + _
CLng(strArrayAccount(0)) * 6 + _
CLng(strArrayAccount(1)) * 5 + _
CLng(strArrayAccount(2)) * 4 + _
CLng(strArrayAccount(3)) * 3 + _
CLng(strArrayAccount(4)) * 2 + _
CLng(strArrayAccount(5)) * 1
Select Case lngTotal Mod 11
Case 0, 2, 4
fValidateBankAccount = True
End Select
Case 31, 52
lngTotal = CLng(strArrayAccount(0)) * 9 + _
CLng(strArrayAccount(1)) * 8 + _
CLng(strArrayAccount(2)) * 7 + _
CLng(strArrayAccount(3)) * 6 + _
CLng(strArrayAccount(4)) * 5 + _
CLng(strArrayAccount(5)) * 4 + _
CLng(strArrayAccount(6)) * 3 + _
CLng(strArrayAccount(7)) * 2 + _
CLng(strArrayAccount(8)) * 1
Select Case lngTotal Mod 11
Case 0, 6
fValidateBankAccount = True
Case Else
lngTotal = CLng(strArrayAccount(3)) * 6 + _
CLng(strArrayAccount(4)) * 5 + _
CLng(strArrayAccount(5)) * 4 + _
CLng(strArrayAccount(6)) * 3 + _
CLng(strArrayAccount(7)) * 2 + _
CLng(strArrayAccount(8)) * 1
If lngTotal Mod 11 = 0 Or lngTotal Mod 11 = 6 Then
fValidateBankAccount = True
End If
End Select
Case 9
lngTotal = CLng(strArrayAccount(0)) * 9 + _
CLng(strArrayAccount(1)) * 8 + _
CLng(strArrayAccount(2)) * 7 + _
CLng(strArrayAccount(3)) * 6 + _
CLng(strArrayAccount(4)) * 5 + _
CLng(strArrayAccount(5)) * 4 + _
CLng(strArrayAccount(6)) * 3 + _
CLng(strArrayAccount(7)) * 2 + _
CLng(strArrayAccount(8)) * 1
If lngTotal Mod 10 = 0 Then
fValidateBankAccount = True
End If
Case 22
lngTotal = CLng(strArrayAccount(0)) * 3 + _
CLng(strArrayAccount(1)) * 2 + _
CLng(strArrayAccount(2)) * 7 + _
CLng(strArrayAccount(3)) * 6 + _
CLng(strArrayAccount(4)) * 5 + _
CLng(strArrayAccount(5)) * 4 + _
CLng(strArrayAccount(6)) * 3 + _
CLng(strArrayAccount(7)) * 2
If 11 - (lngTotal Mod 11) = CLng(strArrayAccount(8)) Then
fValidateBankAccount = True
End If
Case 46
lngTotal = CLng(strArrayBranch(0)) * 9 + _
CLng(strArrayBranch(1)) * 8 + _
CLng(strArrayBranch(2)) * 7 + _
CLng(strArrayAccount(0)) * 6 + _
CLng(strArrayAccount(1)) * 5 + _
CLng(strArrayAccount(2)) * 4 + _
CLng(strArrayAccount(3)) * 3 + _
CLng(strArrayAccount(4)) * 2 + _
CLng(strArrayAccount(5)) * 1
Select Case lngTotal Mod 11
Case 0
fValidateBankAccount = True
Case 2
Select Case strBranch
Case 154, 166, 178, 181, 183, 191, 192, 503, 505, 507, 515, 516, 527, 539
fValidateBankAccount = True
End Select
End Select
If fValidateBankAccount = False Then
lngTotal = CLng(strArrayAccount(0)) * 9 + _
CLng(strArrayAccount(1)) * 8 + _
CLng(strArrayAccount(2)) * 7 + _
CLng(strArrayAccount(3)) * 6 + _
CLng(strArrayAccount(4)) * 5 + _
CLng(strArrayAccount(5)) * 4 + _
CLng(strArrayAccount(6)) * 3 + _
CLng(strArrayAccount(7)) * 2 + _
CLng(strArrayAccount(8)) * 1
If lngTotal Mod 11 = 0 Then
fValidateBankAccount = True
Else
lngTotal = CLng(strArrayAccount(3)) * 6 + _
CLng(strArrayAccount(4)) * 5 + _
CLng(strArrayAccount(5)) * 4 + _
CLng(strArrayAccount(6)) * 3 + _
CLng(strArrayAccount(7)) * 2 + _
CLng(strArrayAccount(8)) * 1
If lngTotal Mod 11 = 0 Then
fValidateBankAccount = True
End If
End If
End If
Case 14
lngTotal = CLng(strArrayBranch(0)) * 9 + _
CLng(strArrayBranch(1)) * 8 + _
CLng(strArrayBranch(2)) * 7 + _
CLng(strArrayAccount(0)) * 6 + _
CLng(strArrayAccount(1)) * 5 + _
CLng(strArrayAccount(2)) * 4 + _
CLng(strArrayAccount(3)) * 3 + _
CLng(strArrayAccount(4)) * 2 + _
CLng(strArrayAccount(5)) * 1
Select Case lngTotal Mod 11
Case 0
fValidateBankAccount = True
Case 2
Select Case strBranch
Case 347, 361, 362, 363, 365, 385, 384
fValidateBankAccount = True
End Select
Case 4
Select Case strBranch
Case 361, 362, 363
fValidateBankAccount = True
End Select
End Select
If fValidateBankAccount = False Then
lngTotal = CLng(strArrayAccount(0)) * 9 + _
CLng(strArrayAccount(1)) * 8 + _
CLng(strArrayAccount(2)) * 7 + _
CLng(strArrayAccount(3)) * 6 + _
CLng(strArrayAccount(4)) * 5 + _
CLng(strArrayAccount(5)) * 4 + _
CLng(strArrayAccount(6)) * 3 + _
CLng(strArrayAccount(7)) * 2 + _
CLng(strArrayAccount(8)) * 1
If lngTotal Mod 11 = 0 Then
fValidateBankAccount = True
Else
lngTotal = CLng(strArrayAccount(3)) * 6 + _
CLng(strArrayAccount(4)) * 5 + _
CLng(strArrayAccount(5)) * 4 + _
CLng(strArrayAccount(6)) * 3 + _
CLng(strArrayAccount(7)) * 2 + _
CLng(strArrayAccount(8)) * 1
If lngTotal Mod 11 = 0 Then
fValidateBankAccount = True
End If
End If
End If
End Select
End Function
'בדיקת מספר תעודת זהות
'Public Function fValidateTeudatZehut(lngNum As Long) As Boolean
' Dim ch As String, i As Integer, iSum As Integer
' Dim iTemp As Integer
'
' For i = 1 To 8
' ch = Mid(lngNum, i, 1)
' iTemp = Val(ch) * (((i - 1) Mod 2) + 1)
' If iTemp > 9 Then iTemp = (iTemp Mod 10) + (iTemp \ 10)
' iSum = iSum + iTemp
' Next i
'
' If ((10 - (iSum Mod 10)) Mod 10) = Val(Mid(lngNum, 9, 1)) Then
' fValidateTeudatZehut = True
' Else
' fValidateTeudatZehut = False
' End If
'End Function
Public Function fValidateTeudatZehut(ID As Variant) As Boolean
'
http://halemo.net/info/idcard/index.html
Dim i As Integer
Dim sum As Integer
Dim digit As Integer
ID = Val(ID)
While Len(ID) < 9
ID = "0" & ID
Wend
sum = 0
For i = 1 To 9
digit = Strings.Mid$(ID, i, 1)
If (i Mod 2) = 0 Then
If digit >= 5 Then
digit = 2 * digit - 9
Else
digit = digit * 2
End If
End If
sum = sum + digit
Next i
fValidateTeudatZehut = (sum Mod 10) = 0
End Function