Interesuje me ako u bazi imam tabelu koja sadrzi neke brojeve koji predstvaljaju JMBG, kako mogu da ih sve proverim da li su ispravni...
Nasao sam nesto ovako ali ne znam kako bih to mogao da upotrebim?!
komplet funkcija u Visual Basicu (za Access) za testiranje
' i generiranje kontrolne znamenke za JMBG
' autor: Predrag Gjuro Kladaric, 1999
' zelite li koristiti ovaj kod, slobodni ste to uciniti
' pod uvjetom da mi o takvoj upotrebi posaljete obavijest
' na gjuro@kladaric.net
'**********************************************************
' inicijalni setup za testiranje ispravnosti JMBG-a
' za racunanje JMBG kontrolne znamenke potrebno je
' polje tezina pojedinih znamenki
'**********************************************************
Sub InitVerifyJMBG()
Tezine znamenkiZaJMBG(1) = 2
Tezine znamenkiZaJMBG(2) = 3
Tezine znamenkiZaJMBG(3) = 4
Tezine znamenkiZaJMBG(4) = 5
Tezine znamenkiZaJMBG(5) = 6
Tezine znamenkiZaJMBG(6) = 7
Tezine znamenkiZaJMBG(7) = 2
Tezine znamenkiZaJMBG(8) = 3
Tezine znamenkiZaJMBG(9) = 4
Tezine znamenkiZaJMBG(10) = 5
Tezine znamenkiZaJMBG(11) = 6
Tezine znamenkiZaJMBG(12) = 7
TezineInicijalizirane = 1
End Sub
'**********************************************************
' testira JMBG
' vraca rezultat testiranja u obliku True/False
' zove funkciju VerifyJMBG() za stvarno testiranje
'**********************************************************
Function jmbg_test(s As String) As Variant
Dim a
'MsgBox "jmbg_test " & s
a = VerifyJMBG(s)
If a <> 999 Then
'MsgBox "Loš JMBG, a = " & a
jmbg_test = False
Else
jmbg_test = True
'If Mid(s, 10, 1) > "4" Then
' [fldSpol] = 1
'Else
' [fldSpol] = 0
'End If
End If
End Function
'**********************************************************
' racuna iz JMBG starost u godinama na datum 1. travnja 1998.
' prilagodite konstante ili poopcite kod ako vam treba :-)))
'**********************************************************
Function starostJMBG(JMBG As String) As String
Dim godina As Integer
Dim mjesec As Integer
godina = Mid(JMBG, 5, 3)
mjesec = Mid(JMBG, 3, 2)
starost = 998 - godina - 1
If mjesec < 4 Then starost = starost + 1
starostJMBG = starost
End Function
'**********************************************************
' testira ispravnost JMBG
' ne vraca rezultat, nego korisniku ispisuje upozorenje
' zove funkciju VerifyJMBG() za stvarno testiranje
'**********************************************************
Function TestJMBG(JMBG) As Integer
Dim tmp As String
If Not IsNull(JMBG) Then
tmp = JMBG
If VerifyJMBG(tmp) <> 999 Then
MsgBox "JMBG nije dobar, popravite to"
End If
End If
End Function
'**********************************************************
' prava funkcija za racunanje kontrolne znamenke
' returns:
' 999 control digit is appropriate
' 0-9 should-be control digit (meaning that the given control digit is not appropriate)
' 10 icalculable control digit
' 11 illegal characters
' 12 not proper length
'
' If you would like VerifyJMBG() to calculate appropriate control digit, supply JMBG with non-digit
' on the last place, for example "123456789012." VerifyJMBG() will return 0-10 (10 means that
' control digit can not be calculated for the given number)
'**********************************************************
Function VerifyJMBG(JMBG As String) As Integer
Dim suma As Integer
Dim i As Integer
If TezineInicijalizirane = 0 Then InitVerifyJMBG
If Len(JMBG) <> 13 Then
VerifyJMBG = 12 ' JMBG not proper length
Else
For i = 1 To 12
znamenka$ = Mid$(JMBG, 13 - i, 1)
If znamenka$ > "9" Or znamenka$ < "0" Then
VerifyJMBG = 11 ' Illegal character in JMBG
GoTo exitFunction
Else
suma = suma + Val(znamenka$) * Tezine znamenkiZaJMBG(i)
End If
Next i
kontrolnaZnamenka = suma Mod 11
If kontrolnaZnamenka = 0 Then
If Right$(JMBG, 1) = "0" Then
VerifyJMBG = 999 ' OK
Else
VerifyJMBG = 0 ' should-be
End If
ElseIf kontrolnaZnamenka = 1 Then
VerifyJMBG = 10 ' bad number - icalculable control digit
ElseIf 11 - kontrolnaZnamenka = Val(Right$(JMBG, 1)) Then
VerifyJMBG = 999 ' OK
Else
VerifyJMBG = 11 - kontrolnaZnamenka ' should be
End If
End If
exitFunction:
End Function










Opet Provera JMBG