
05-10-11, 18:00
|
 | Διαχειριστής Όνομα: Τάσος Φιλοξενιδης Έκδοση λογισμικού Office: Ms-Office 365 Γλώσσα λογισμικού Office: Ελληνική, Αγγλική, Γερμανική | | Εγγραφή: 21-10-2009
Μηνύματα: 2.035
| |
Έλεγχος Εγκυρότητας ΑΜΚΑ
Μετά από τη μέθοδο Αναζήτησης ΑΜΚΑ, συνέχισα τις δοκιμές μoυ, "ανακάλυψα" τον αλγόριθμο
και σας παρουσιάζω τη μέθοδο επικύρωσης ΑΜΚΑ σε VB και στην Excel σαν συνάρτηση. Συνάρτηση στην Excel:
Στο κελί A2 βρίσκεται ο αριθμός ΑΜΚΑ
Ο τύπος είναι: Παράθεση: |
=IF(LEN(A2)=11;NOT(MOD(MID(A2;1;1)+(MID(A2;2;1)*2)-(9*(MID(A2;2;1)*2>9))+MID(A2;3;1)+(MID(A2;4;1)*2)-(9*(MID(A2;4;1)*2>9))+MID(A2;5;1)+(MID(A2;6;1)*2)-(9*(MID(A2;6;1)*2>9))+MID(A2;7;1)+(MID(A2;8;1)*2)-(9*(MID(A2;8;1)*2>9))+MID(A2;9;1)+(MID(A2;10;1)*2)-(9*(MID(A2;10;1)*2>9))+MID(A2;11;1);10)))
|
Ο κώδικας VB: Option Explicit
Public Sub CheckMyAMKA()
Debug.Print IsValidAMKA("1005690xxxx")
End Sub
Public Function IsValidAMKA(AMKANumber) As Boolean
Dim IsEven As Boolean, i%, iDigit%, iSum%, sTMP$, sChr$
For i = 1 To Len(AMKANumber)
sChr = Mid(AMKANumber, i, 1)
If IsNumeric(sChr) Then sTMP = sTMP & sChr
Next
If Len(sTMP) <> 11 Then Exit Function
For i = 1 To Len(sTMP)
iDigit = Mid(sTMP, i, 1)
If IsEven Then
iDigit = iDigit * 2
If iDigit > 9 Then iDigit = iDigit - 9
End If
iSum = iSum + iDigit
IsEven = Not IsEven
Next
IsValidAMKA = iSum Mod 10 = 0
End Function
__________________ Ms-Office Development Team Ανάπτυξη επαγγελματικών εφαρμογών
Τελευταία επεξεργασία από το χρήστη Tasos : 06-10-11 στις 22:46.
|