Controle op ISBN met VB(A)

Een ISBN nummer ofte International Standard Book Number bevat net zoals een bankrekening, btw nummer, barcode,… een welomschreven structuur.

De juistheid van het nummer kan men met onderstaande functie controleren.

Function test_isbn(isbn) as boolean
Dim vl_isbn1 As Integer
Dim vl_isbn2 As Integer
Dim vl_isbn3 As Integer
Dim vl_pos As Integer

test_isbn = 0

If IsNull(isbn) Then
Exit Function
End If

If Len(isbn) = 13 Then
If Not IsNumeric(Left$(isbn, 12)) Then
Exit Function
End If
vl_isbn2 = Val(Right(isbn, 1)) ' controlegetal = laaste getal van de isbn

vl_isbn1 = 0
For vl_pos = 1 To 12
If vl_pos Mod 2 = 0 Then
' indien de modulus van de positie 0 is (dus even is, het getal op die positie maal 3)
vl_isbn1 = vl_isbn1 + Mid(isbn, vl_pos, 1) * 3
Else
' is de positie oneven, nemen we de waarde van het getal op die positie
vl_isbn1 = vl_isbn1 + Mid(isbn, vl_pos, 1)
End If

Next vl_pos
' 10 verminderen met de restwaarde van het bekomen getal gedeeld door 10
vl_isbn3 = 10 - (vl_isbn1 Mod 10)

If vl_isbn3 = vl_isbn2 Then
test_isbn = True
End If

End If
End Function

Leave a Reply

Your email address will not be published.