Brzi......Evo ti kod za proveru po modulu 11. Slicno moze da se ispta i validnost nekog drugog niza ili broja. U medjuvremenu sam prepravio jedan od ponudjenih modela za Input mask za kolonu tipa Text. Zanci ipak moze samo sto ja to do sad nisam znao. Dakle Input Mask Wizard, Edit List na jednu od ponudjenih varijanti, prepraviti je i primeniti to na kolonu tabele ili Text kontrolu.
Code:
Private Sub JMBG_Exit(Cancel As Integer) ' Kontrola po modulu 11
Dim A As Integer
Dim B As Integer
Dim C As Integer
Dim D As Integer
Dim E As Integer
Dim F As Integer
Dim G As Integer
Dim H As Integer
Dim I As Integer
Dim J As Integer
Dim K As Integer
Dim L As Integer
Dim M As Integer
Dim zzz As Integer
Dim ost As Integer
Dim celobroj As Integer
Dim raz As Integer
Dim niz As String
If IsNull([JMBG]) Then
Exit Sub
End If
If Len(CStr([JMBG])) <> 13 Then
MsgBox "Maticni broj mora imati 13 cifara"
Cancel = True
Me![JMBG].SetFocus
Exit Sub
End If
M = Right(JMBG, 1) ' zadnja cifra je kontrolni broj i sa njom se uporedjuje rezultat
A = Left(JMBG, 1)
B = Mid(JMBG, 2, 1)
C = Mid(JMBG, 3, 1)
D = Mid(JMBG, 4, 1)
E = Mid(JMBG, 5, 1)
F = Mid(JMBG, 6, 1)
G = Mid(JMBG, 7, 1)
H = Mid(JMBG, 8, 1)
I = Mid(JMBG, 9, 1)
J = Mid(JMBG, 10, 1)
K = Mid(JMBG, 11, 1)
L = Mid(JMBG, 12, 1)
zzz = (7 * A) + (6 * B) + (5 * C) + (4 * D) + (3 * E) + (2 * F) + (7 * G) + (6 * H) + (5 * I) + (4 * J) + (3 * K) + (2 * L)
niz = CStr(Round(zzz / 11, 2))
If Len(niz) = 2 Then ' Deljenje bez ostatka ili Ostatak je 0
ost = 0
MsgBox "Maticni broj je ispravan", vbInformation, "Obavestenje"
Exit Sub
Else
celobroj = Val(Left(niz, 2))
ost = zzz - (11 * celobroj)
End If
If ost = 1 Then
MsgBox "Ne valja JMBG", vbCritical, "Paznja"
Exit Sub
End If
raz = 11 - ost
If M = raz Then
MsgBox "Maticni broj je ispravan", vbInformation, "Obavestenje"
Else
MsgBox "Ne valja JMBG", vbCritical, "Paznja"
End If
End Sub