Newsgroup: it.comp.appl.access
Titolo: codice fiscale automatico

ho una maschera e una tabella in cui vi sono il codice fiscale e tutti i
dati necessari per calcolarlo, ma devo inserirlo manualmente.
ho provato a incorporarvi degli esempi del sito comune ma senza successo.
Insomma vorrei calcolarlo automaticamente con i dati esistenti nel MIO
archivio, ma come posso fare?
campi: cognome, nome, data di nascita, sesso, luogo di nascita,
provincia,codice citta
luigi
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 --
Quì trovi un Demo di A.C.
http://www.alessandrobaraldi.it/DettaglioFaq.asp?IdFAQ=266
Ovviamente tu hai già i dati inseriti, quindi dovrai sfruttare la
Funzione che nel DEMO calcola il CF e richiamarla(dopo averla
strutturata in un Modulo Public) all'interno di una Query UPDATE, o di
un ciclo che scorre tutti i Records della tabella.
Ho accennato alla 2° possibilità in quanto la funzione in ingresso
ovviamente richiederà tutti i parametri per il calcolo quindi, essendo
nel tuo caso un'esecuzione ONE_SHOT non ha una grossa importanza la
velocità... e forse risulta più comoda.
Chiaramente tutto il lavoro di riadattamento devi farlo da te, in
tutti i demo che trovi non potrai mai avere una cosa così dedicata
alla tua esigenza.
@Alex

 wrote in
news:1187086008.5...@b79g2000hse.googlegroups.com
: 

ricordo a entrambi che il codice fiscale CALCOLATO NON è sicuro al 100% in 
quanto l'unico valido è quello ASSEGNATO.
Infatti nel caso di OMOCODIA, due persone con stesso nome e cognome, 
stesso sesso, nate nello stesso giorno nella stessa città avranno codici 
fiscali DIVERSI: uno dei due avrà alcune lettere cambiate d'ufficio 
dall'ente preposto
Ho detto stesso sesso in quanto potrebbero esserci p.e. due Andrea (maschio 
e femmina) ;)
-- 
/-\ /\/\ /\/\ /-\ /\/\ /\/\ /-\ T /-\

 /-\ /\/\ /\/\ /-\ /\/\ /\/\ /-\ T /-\-
Si quanto dici è stato ribadito 100 volte, e non mi sono sentito di
ridirlo nuovamente, il fatto che il CF calcolato sia solo a verifica
parziale ormai lo DEVONO sapere anche i muri...
@Alex

 d'ufficio dall'ente preposto
Solo una precisazione: in caso di omocodia l'Agenzia delle Entrate provvede 
alla sostituzione del codice fiscale a tutti i casi di omocodia interessati, 
non solo ad uno.
(come si può leggere al seguente indirizzo: 
http://www.agenziaentrate.it/ilwwcm/connect/Nsi/Documentazione/Pubblicazioni/Guide+Fiscali/Guide+anni+precedenti/2004/Annuario+del+contribuente+2004/Codice+fiscale+partita+Iva+rendite+catastali/Il+codice+fiscale
)
--
PBsoft di Gabriele Bertolucci
www.pbsoft.it
skype:pbsoftsolution

 @Alex
si ma in questi casi, e nel demo da te citato o meglio, nel mio caso,
posso modificare a mano il CF calcolato?
Inoltre provo a guardare il demo che hai citato, e se ho difficoltà ad
adattarlo al mio db, posso contare sul tuo aiuto nel NG?, naturalmente
senza impegno ma tanta pazienza!


 luigi
vedi anche qui:
http://groups.google.it/group/microsoft.public.it.office.access/browse_thread/thread/6fbee7885e6d5062/57fe89ff7b9d4594?lnk=gst&q=Codice+fiscale&rnum=2&hl=it#57fe89ff7b9d4594
-- 
Ciao
Access 


Più che del mio aiuto di quello dell'autore Alessandro Cara che
sicuramente ci legge e se avrai bisogno saprà darti il supporto che
serve.
@Alex

 luigi
comincia col creare il controllo dove inserire il CodFisc e legalo al campo 
cod fisc della tabella.
Ora scegli un  evento tipo "Su clic" o "Su doppio clic" o "Su attivato" e 
poi inserisci il codice VBA che andrò a inviarti a spezzoni.
In questo modo la casella di testo resta libera per essere digitata a mano e 
nel contempo il CodFis può essere calcolato automaticamente.
Inoltre nel tuo db deve essere presente una tabella con tutti i comuni e 
relativi codici.
Inizia a fare questo lavoro il resto viene man mano
Ciao. NSantini 

parziale ormai lo DEVONO sapere anche i muri...
Numquam satis ...
Vincenzo Turturro
Certificato Eucip Core Level
ITA 0000-002299 del 14/05/2007
---------------------------------------------
il sito comune di it.comp.appl.access:
http://www.sitocomune.com
---------------------------------------------
risorse Access:
http://www.accessgroup.it
---------------------------------------------
Il sito comune di it.comp.as400
http://www.faq400.com
---------------------------------------------

 Vincenzo Turturro
Hai risolto con EVAL...?
-- 
@Alex (Alessandro Baraldi)
---------------------------------------------------------------------------
http://www.sitocomune.com/
http://www.alessandrobaraldi.it
---------------------------------------------------------------------------

Hai risolto con EVAL...?
Work in progress ...


NSantini ha scritto:


ok
tabella con Cognome, nome, datanascita,sesso, luogonascita, codicecomune,
cap , CF e altri
tabella comuni in cui vi sono tutti i campi per il calcolo dei CF e altri
(importata dall'esempio citato da baraldi.
maschera con tutti i controlli sopra mensionati con una casella combinata
CF per ricercare i CF e se mi aiuti anche per calcolarli.
(selezionando il Comune, nella mia maschera il CAP e PROV si inseriscono
automaticamente attingendo i dati dalla tabella.
mò che faccio?
luigi
grazie 
Mò che faccio?


 grazie
bene, allora io ho fatto in questo modo, in un modulo ho copiato:
Option Compare Database
'--------------------------------------------------------------------------­-------------
' Procedure   : CalcoloCodiceFiscale
' DateTime    : 28/03/2005 14.57
' Author      : Giorgio Brausi (
vbcor...@vbcorner.net
 -
http://www.vbcorner.net
)
' Purpose     : Crea il Codice Fiscale partendo dai dati
' Descritpion :
' Comments    :
'--------------------------------------------------------------------------­-------------
Function CalcolaCodiceFiscale(ByVal Cognome$, ByVal Nome$, ByVal DataNascita
As Date, ByVal Sesso$, ByVal Provincia$, Optional ByVal sCodiceFiscale As
String = "") As String
Rem Necessita della presenza di 7 textbox con i seguenti nomi:
Rem TxtCodFis, TxtCognome, TxtNome, TxtNatoAnno,
Rem TxtNatoMese, TxtNatoGiorno, TxtSesso.
Rem TxtSesso deve essere uguale a "F" oppure ad "M"
Dim Temp        As String
Dim Vocali      As String
Dim Consonanti  As String
Dim i           As Integer
Dim AppoNum     As Long
Dim TempNum     As Long
Dim txtCodFis   As String
  If Len(Trim(Cognome)) = 0 Or _
      Len(Trim(Nome)) = "" Or _
      Len(DataNascita) = 0 Or _
      Len(Trim(Sesso)) = 0 Or _
      Len(Trim(Provincia)) = 0 Then
    MsgBox "Mancano alcuni dati essenziali!" & vbCrLf & "Verificare tutti i
dati e riprovare."
    CalcolaCodiceFiscale = ""
  End If
  txtCodFis = ""
  '-------------------------- 
  ' RICAVO IL COGNOME (123)
  '-------------------------- 
  Cognome$ = StrConv(Cognome$, vbUpperCase)
  Vocali = ""
  Consonanti = ""
  For i = 1 To Len(Cognome$)
     If InStr("AEIOU", Mid(Cognome$, i, 1)) Then
        Vocali = Vocali + Mid(Cognome$, i, 1)
     ElseIf InStr("BCDFGHJKLMNPQRSTVWXYZ", Mid(Cognome$, i, 1)) Then
        Consonanti = Consonanti + Mid(Cognome$, i, 1)
     Else
        Rem E' uno spazio, un'apostrofo o altro carattere che non va
considerato
     End If
    If Len(Consonanti) = 3 Then Exit For
  Next
  If Len(Consonanti) < 3 Then Consonanti = Consonanti + Left(Vocali, 3 -
Len(Consonanti))
  If Len(Consonanti) < 3 Then Consonanti = Consonanti + String(3 -
Len(Consonanti), "X")
  txtCodFis = Consonanti
  '-------------------------- 
  ' RICAVO IL NOME (456)
  '-------------------------- 
  Nome$ = StrConv(Nome$, vbUpperCase)
  Vocali = ""
  Consonanti = ""
  For i = 1 To Len(Nome$)
    If InStr("AEIOU", Mid(Nome$, i, 1)) Then
       Vocali = Vocali + Mid(Nome$, i, 1)
    ElseIf InStr("BCDFGHJKLMNPQRSTVWXYZ", Mid(Nome$, i, 1)) Then
       Consonanti = Consonanti + Mid(Nome$, i, 1)
    Else
      ' E' uno spazio, un apostrofo o altro che non va considerato
    End If
  Next i
  If Len(Consonanti) >= 4 Then
    ' isolo la prima, terza e quarta consonante
    Consonanti = Left$(Consonanti, 1) & Mid$(Consonanti, 3, 2)
  ElseIf Len(Consonanti) = 3 Then
    ' Va bene cosi'
  Else
    ' Aggiungo le vocali
    Consonanti = Left$(Consonanti & Vocali, 3)
    ' se non basta, aggiungo le X
    If Len(Consonanti) < 3 Then Consonanti = Left$(Consonanti & "XXX", 3)
  End If
  txtCodFis = txtCodFis & Consonanti
  '-------------------------- 
  'Anno di nascita (78)
  '-------------------------- 
  txtCodFis = txtCodFis + Right(Format$(Year(DataNascita), "0000"), 2)
  '-------------------------- 
  'Mese di nascita(9)
  '-------------------------- 
  txtCodFis = txtCodFis & Mid$("ABCDEHLMPRST", Month(DataNascita), 1)
  '-------------------------- 
  'Giorno di nascita(0A)
  '-------------------------- 
  If UCase(Sesso$) = "F" Then
    txtCodFis = txtCodFis & Format$(Day(DataNascita) + 40, "00")
  Else
    txtCodFis = txtCodFis & Format$(Day(DataNascita), "00")
  End If
  '-------------------------- 
  'Località di nascita (BCDE)
  '-------------------------- 
  txtCodFis = txtCodFis & Provincia$
  '-------------------------- 
  'Ultima lettera (F)
  '-------------------------- 
  'Controllo caratteri pari
  TempNum = 0
  i = 1
  Do
    ' I DISPARI
    AppoNum = InStr("B1A0KKPPLLC2QQD3RRE4VVOOSSF5TTG6UUH7MMI8NNJ9WWZZYYXX",
Mid(txtCodFis, i, 1))
    TempNum = TempNum + ((AppoNum - 1) And &H7FFE) / 2
    i = i + 1
    If i > 15 Then Exit Do
    ' I PARI
    AppoNum = InStr("A0B1C2D3E4F5G6H7I8J9KKLLMMNNOOPPQQRRSSTTUUVVWWXXYYZZ",
Mid(txtCodFis, i, 1))
    TempNum = TempNum + ((AppoNum - 1) And &H7FFE) / 2
    i = i + 1
  Loop
  TempNum = TempNum Mod 26
  txtCodFis = txtCodFis & Mid$("ABCDEFGHIJKLMNOPQRSTUVWXYZ", TempNum + 1, 1)
  Rem Ecco qui il codice bello finito
  CalcolaCodiceFiscale = txtCodFis
  Rem MsgBox txtCodFis
'  Rem Se richiesto faccio il confronto
'  If sCodiceFiscale <> "" Then
'    If txtCodFis <> sCodiceFiscale Then
'      MsgBox "Codice Fiscale non corretto!" & vbCr & "Dovrebbe essere: " &
txtCodFis
'    End If
'  End If
End Function
Ora sotto l'evento Exit del controllo textbox contenente la data di nascita
inserisci:
NomeTextboxCodicefiscale = CalcolaCodiceFiscale(Cognome, Nome, 
CVDate(datanascita),
sesso, codicecomune)
-- 
Ciao
Access 

 mò che faccio?
ora seleziona il controllo ed entra in Proprietà, scheda eventi e scegli Su 
clic.
Cioè il codice fiscale viene calcolato solo se fai clic dentro il controllo 
altrimenti il controllo resta vuoto e con il cursore lampeggiante in attesa 
che tu digiti qualc... il codice fiscale a mano.
Bene, poiché lo scopo di questo NG è quello di far accrescere la conoscenza 
di Access fra gli appassionati, non ti darò la tavola già imbandita, 
altrimenti mi sgridano, quindi ti darò man mano gli input per far fare a te 
il lavoro e vedrai che alla fine avrai imparato qualcosa.
Nella Sub appena creata assegna le variabili. Per brevità di codice scegli 
variabili corte, tipo co per il cognome no per il nome ecc. e poi a ciascuna 
di queste variabili assegna il contenuto dei vari controlli necessari al 
calcolo del CF. Uno per tutti: co=Me.cognome e così con le altre variabili. 
Fai questo e ci risentiamo
Ciao
NSantini
infsant  chiocciola libero punto it

 variabili corte, tipo co per il cognome no per il nome ecc. e poi a ciascuna 
disapprovo questo suggerimento. Se qualcuno dovesse mettere le mani su 
quel codice, anche tu stesso a distanza di tempo, auguri!
E questa e' solo la piu' "banale" di molteplici ragioni
-- 
ac
y-1=x

 ha scritto nel messaggio 
news:Bxgxi.347$fb....@tornado.fastwebnet.it...

Sono d'accordo con te, ma nulla vieta di infarcire il codice con commenti 
che a distanza di tempo ti possono aiutare a capire  e se il nostro amico 
entrerà nel meccanismo e vuole - a distanza di tempo - ricordare i passaggi 
può inserire tutti i commenti a suo piacere.
Ciao
NSantini


OK. Mandami un po' di codice che hai scritto ;<))))))
-- 
ac
y-1=x

 ha scritto nel messaggio
news:fa47ms$gn1$1...@registered.motzarella.org...

Il codice deve, dovrebbe, essere scritto con 3 ottiche(non quelle
fotografiche)...!
1. Che funzioni
2. Che sia il più possibile RIUTILIZZABILE(e già quì....)
3. Che anche a distanza di anni sia comprensibile
Per la 1° diciamo che sono capaci in molti, per le altre 2 invece solo
l'esperienza la fà da padrone.
Ascolta il suggerimento di A.C.


 ha scritto nel messaggio 
news:fa4oic$cen$1...@aioe.org...

Bene, non mi sono mai vantato, e credo che non accadrà in futuro, di essere 
un programmatore provetto. Né ho interesse a diventarlo: ho 52 anni e il mio 
lavoro è fare l'infermiere. Ho imparato il BASIC col Commodore 64 e mi sono 
sempre considerato un programmatore casalingo e sono un modesto autodidatta. 
Tutto ciò che ho realizzato con Access è solo funzionale a me stesso e 
nell'ambito del mio lavoro (registrazione ricette ambulatoriali, gestione 
scadenzario per le visite di medicina preventiva e per gli esami clinici 
relativi alla sorveglianza del rischio radiologico e altre cosucce... giusto 
per automatizzare un po' di procedure e per *divertirmi* a programmare e, lo 
ammetto senza vergogna, molto di quello che so su Access lo devo anche a 
questo NG. Grazie anche a voi!
Quindi non ti invierò il mio codice perché so già che visto con occhi da 
professionisti, quale voi sicuramente siete, ha mille e una lacuna, ma per 
quello che ci faccio io mi basta la prima regola: che funzioni... e 
funziona.
Tornando al nostro amico luigionofrio, mi pare che lui, come me, sia un 
appassionato autodidatta e desideravo dargli il mio più che modesto apporto 
se lui lo gradisce; se desidera programmare da professionista allora che 
faccia dei corsi e si metta a studiare e che apprenda i suggerimenti degli 
esperti.
Cordiali saluti
NSantini