Newsgroup: it.comp.appl.access
Titolo: Problemi con verifica codice fiscale

Ciao a tutti sono Dino Vorrei sottoporvi questa problematica.In un mio
DB (realizzato con Access 2000) e' stato inserito un codice fiscale
numerico (codice fiscale aziendale) errato.Il mio DB non mi ha
rilevato l'errore.Premetto che per il controllo ho usato la routine
trovata sul sito comune sotto modules 5.20.E' possibile creare una
routine che mi controlli anche i CF solo numerici???
Grazie Dino

 ha scritto nel messaggio 
news:6d1311c5-fec8-484d...@8g2000hsu.googlegroups.com...

ma non è un codice fiscale se è solo numerico
spiegaci meglio cosa  intendi 

 ha scritto nel messaggio 
news:6d1311c5-fec8-484d...@8g2000hsu.googlegroups.com...

Per un'azienda il codice fiscale da indicare segue queste regole:
Con le attuali normative, tutte le società italiane (SRL, SPA, SNC, SAS, 
SCARL) hanno il codice fiscale uguale alla partita IVA, composta sempre da 
11 numeri.
Fanno eccezione a tale regola:
le società che prima della decadenza della territorialità ai fini IVA hanno 
cambiato la sede passando ad altra provincia: in tal caso le società 
mantenevano il codice fiscale originario, ma cambiavano la partita IVA;
gli enti non commerciali che sono nati con il solo codice fiscale e che 
hanno chiesto solo successivamente l'attribuzione della partita iva (es 
associazioni sportive, enti culturali, ecc)
le ditte individuali hanno sempre il c.f. composto da caratteri alfanumerici 
che rappresentano i dati anagrafici del soggetto e la P.I: composta da 11 
cifre (naturalmente mai uguale al c.f.).
Da ciò detto e per il tuo caso un codice di controllo deve riguardare la 
corretta Partita IVA.
Questo un esempio tratto dal sitocomune (AntolGal):
Public Function CheckPartitaIva(PIVA As String) As Boolean
   'Autore: AntoGal
   'Accetta: Piva = la Partita IVA da verificare
   'Restituisce: true se la Partita IVA è corretta
   If Not PIVA Like "###########" Then 'controlla che siano 11 cifre
      CheckPartitaIva = False
      Exit Function
   End If
   'verifica ultima cifra
   Dim i As Integer, SumDisp As Integer, SumPari As Integer, _
   Radd As Integer, SumTot As Integer, Check As Integer
   '1. si sommano le cifre di ordine dispari (in posizione 1,3,5,7,9)
   For i = 1 To 9 Step 2
      SumDisp = SumDisp + Val(Mid(PIVA, i, 1))
   Next i
   '2. Si raddoppiano le cifre di ordine pari (in posizione 2,4,6,8,10)
   'Se il risultato è un numero di due cifre, si riduce ad una sola cifra
   'sommando le due che lo compongono (es: 15 diventa 6: 1+5)
   For i = 2 To 10 Step 2
      Radd = 2 * Val(Mid(PIVA, i, 1))
      If Radd > 9 Then
         Radd = Val(Left(CStr(Radd), 1)) + Val(Right(CStr(Radd), 1))
      End If
      SumPari = SumPari + Radd
   Next i
   '3. Si sommano tutti i precedenti risultati (delle cifre dispari e di
   'quelle pari raddoppiate come spiegato)
   '4. Si determina il totale delle due somme (delle pari e delle dispari).
   SumTot = SumPari + SumDisp
   '5. Del risultato, si prende solo la cifra delle unità
   '(es: se il risultato è 36, la cifra che ci interessa è 6)
   SumTot = SumTot Mod 10
   '6. Questa cifra si sottrae dal numero 10 (lo stabilisce l'art. 9 del
   'DM. del 23.12.1976 che regola l'attribuzione dei codici fiscali).
   Check = (10 - SumTot) Mod 10  'se viene 10 il check è 0
   'Il risultato è la cifra di controllo
   If Check = Val(Right(PIVA, 1)) Then
      CheckPartitaIva = True
   Else
      CheckPartitaIva = False
   End If
End Function
Ciao, Carlo 

 ha scritto nel messaggionews:6d1311c5-fec8-484d...@8g2000hsu.googlegroups.com...

Carlo Ciao sono Dino.
Grazie per la spiegazione tecnica e legislativa.Complimenti per la
professionalita'.
Provo la routine e poi ti faccio sapere.
NB:Questa routine e' corretto impostarla sull'evento "dopo
aggiornamento" del campo "Partita IVA".Scusa la domanda banale ma mi
e' venuto un dubbio.
Ciao Dino

 ha scritto nel messaggio 
news:80ab57c0-79e9-432d...@k37g2000hsf.googlegroups.com...
cut
Carlo Ciao sono Dino.
Grazie per la spiegazione tecnica e legislativa.Complimenti per la
professionalita'.
Provo la routine e poi ti faccio sapere.
NB:Questa routine e' corretto impostarla sull'evento "dopo
aggiornamento" del campo "Partita IVA".Scusa la domanda banale ma mi
e' venuto un dubbio.
Ciao Dino
Sě potrebbe andare bene...meglio su prima di aggiornare.
Ciao, Carlo