Newsgroup: it.comp.appl.access
Titolo: Controllo Codice Fiscale

Sul sitocomune ho trovato una function che permette di verificare il codice
fiscale. Dovendo controllare l'esattezza di una serie di CF all'interno di
un database esistente non capisco come riuscire a utilizzare questa
funzione.
Sono bloccato al punto di incollare il listato all'interno di un modulo.
Ciao e grazie.

 wrote in message
gSdU8.25199$Jj7.6...@news1.tin.it...

Non so quale codice usi, ma se è quello giusto basta fare una query e agg.
un pampo calcolato riproponendo la funzione copiata... "Es.
CF:calcoloCodFis([Cognome];[Nome];CVDate([COMNASC]);[Sesso];Trim([COMNASC]))
"
--
Maurizio75


Mi riferivo a questo codice qui, e non capisco cosa devo fare dopo aver
creato il modulo.
Public Function CheckCodFiscale(CFis As String) As Boolean
    'Autore: Federico Luciani
    'Accetta: CFis = Codice fiscale da verificare
    'Restituisce: true se il Codice fiscale è corretto
    If Len(CFis) <> 16 Then
       CheckCodFiscale = False
       Exit Function
    End If
    Dim i As Integer, p As Integer, d As Integer
    Dim SumDisp As Integer, SumPari As Integer
    Dim SumTot As Integer, Check As String
    Dim Resto(1 To 26) As String
    Resto(1) = "A"
    Resto(2) = "B"
    Resto(3) = "C"
    Resto(4) = "D"
    Resto(5) = "E"
    Resto(6) = "F"
    Resto(7) = "G"
    Resto(8) = "H"
    Resto(9) = "I"
    Resto(10) = "J"
    Resto(11) = "K"
    Resto(12) = "L"
    Resto(13) = "M"
    Resto(14) = "N"
    Resto(15) = "O"
    Resto(16) = "P"
    Resto(17) = "Q"
    Resto(18) = "R"
    Resto(19) = "S"
    Resto(20) = "T"
    Resto(21) = "U"
    Resto(22) = "V"
    Resto(23) = "W"
    Resto(24) = "X"
    Resto(25) = "Y"
    Resto(26) = "Z"
    For i = 2 To 14 Step 2
        Select Case Mid$(CFis, i, 1)
            Case "0": p = 0
            Case "1": p = 1
            Case "2": p = 2
            Case "3": p = 3
            Case "4": p = 4
            Case "5": p = 5
            Case "6": p = 6
            Case "7": p = 7
            Case "8": p = 8
            Case "9": p = 9
            Case "A": p = 0
            Case "B": p = 1
            Case "C": p = 2
            Case "D": p = 3
            Case "E": p = 4
            Case "F": p = 5
            Case "G": p = 6
            Case "H": p = 7
            Case "I": p = 8
            Case "J": p = 9
            Case "K": p = 10
            Case "L": p = 11
            Case "M": p = 12
            Case "N": p = 13
            Case "O": p = 14
            Case "P": p = 15
            Case "Q": p = 16
            Case "R": p = 17
            Case "S": p = 18
            Case "T": p = 19
            Case "U": p = 20
            Case "V": p = 21
            Case "W": p = 22
            Case "X": p = 23
            Case "Y": p = 24
            Case "Z": p = 25
        End Select
        SumPari = SumPari + p
    Next i
    For i = 1 To 15 Step 2
        Select Case Mid$(CFis, i, 1)
            Case "0": d = 1
            Case "1": d = 0
            Case "2": d = 5
            Case "3": d = 7
            Case "4": d = 9
            Case "5": d = 13
            Case "6": d = 15
            Case "7": d = 17
            Case "8": d = 19
            Case "9": d = 21
            Case "A": d = 1
            Case "B": d = 0
            Case "C": d = 5
            Case "D": d = 7
            Case "E": d = 9
            Case "F": d = 13
            Case "G": d = 15
            Case "H": d = 17
            Case "I": d = 19
            Case "J": d = 21
            Case "K": d = 2
            Case "L": d = 4
            Case "M": d = 18
            Case "N": d = 20
            Case "O": d = 11
            Case "P": d = 3
            Case "Q": d = 6
            Case "R": d = 8
            Case "S": d = 12
            Case "T": d = 14
            Case "U": d = 16
            Case "V": d = 10
            Case "W": d = 22
            Case "X": d = 25
            Case "Y": d = 24
            Case "Z": d = 23
        End Select
        SumDisp = SumDisp + d
    Next i
    SumTot = SumPari + SumDisp
    Check = Resto((SumTot Mod 26) + 1)
    If Check = UCase$(Right(CFis, 1)) Then
       CheckCodFiscale = True
    Else
       CheckCodFiscale = False
    End If
End Function

 ha scritto nel messaggio
news:MjgU8.30738$vm5.1...@news2.tin.it...

Nel modulo crei un'altra routine che legge riga per riga la tabella e mandi alla
function CheckCodFiscale il codice fiscale letto. Se il codice è corretto ti
restituisce True.
La funzione non controlla gli altri dati che potrebbero essere nella tabella
(data nascita, comune nascita, ecc.).
Ciao