Καλημέρα ...
Δεν θυμάμαι απο που έχω τον παρακάτω κώδικα και ας με συγχωρέσει αυτός (-η) που είναι ο δημιουργός. Τον χρησιμοποιώ και δουλεύει !
ΒΗΜΑ (Ι)
Στο πεδίο [AFM] Πληκτρολογώ το ΑΦΜ και στο συμβάν After Update έχω :
Κώδικας:
Private Sub AFM_AfterUpdate()
If CheckAFM(AFM) Then
MsgBox "Δεκτό Α.Φ.Μ.", vbInformation, "ΕΛΕΓΧΟΣ"
Else
MsgBox "Λανθασμένο το ΑΦΜ", vbExclamation, "ΕΛΕΓΧΟΣ"
End If
End Sub
ΒΗΜΑ (ΙΙ) : Να και η συνάρτηση, που κάνει τον έλεγχο :
Public Function CheckAFM(sAFM As String) As Boolean
Dim ISun As Integer
Dim btRem As Byte
Dim I As Byte
If sAFM = "" Or Len(sAFM) <> 9 Then
CheckAFM = False
Exit Function
End If
iSum = 0
CheckAFM = False
For I = 1 To Len(sAFM) - 1
If Asc(Mid(sAFM, I, 1)) < 48 Or Asc(Mid(sAFM, I, 1)) > 57 Then
CheckAFM = False
Exit Function
End If
iSum = iSum + Val(Mid(sAFM, I, 1)) * (2 ^ (Len(sAFM) - I))
Next I
If iSum = 0 Then
CheckAFM = False
Else
btRem = iSum Mod 11
If Val(Right(sAFM, 1)) = btRem Or (btRem = 10 And _
Val(Right(sAFM, 1)) = 0) Then CheckAFM = True
End If
End Function
Τη συνάρτηση αυτή έχω μεταφέρει σε μια module.
A! Θυμήθηκα για τη συνάρτηση. Την πήρα απο μια εφαρμογή "ΕΦΟΡΙΑ" που χρησιμοποιεί η φίλη μου Χρύσα ... στα σχολεία της περιοχής όπου εργάζομαι.
Φιλικά / Νίκος