Estrazione dati da codice fiscale su access 2007

martedì 23 novembre 2010 - 18.33

matia Profilo | Newbie

Buongiorno a tutti!
Chiedo nuovamente il vostro aiuto per un database access.

Ho una maschera nella quale viene inserito il codice fiscale di un nominativo. Avrei necessità che in un altro box della stessa maschera mi venisse stampato il comune di nascita. Questa informazione è contenuta nel CF dal carattere 12 al carattere 15 e rappresenta il codice catastale del comune di nascita.
Ovviamente ci sarà una tabella contenente tutti i comuni e i codici catastali.

Per capirci: la tabella sarà così composta

A001 ABANO TERME
A004 ABBADIA CERRETO
A005 ABBADIA LARIANA
etc etc

quindi all'inserimento del codice fiscale CCCNNN 00X00 A005 X vorrei che nel box venisse stampato ABBADIA LARIANA.

Grazie intanto a chi avrà letto la mia richiesta d'aiuto!

ugk111 Profilo | Junior Member

Nel caso sia a disposizione la tabella dei codici catastali dovresti creare una query del tipo
'SELECT [Codici Comuni ISTAT].Id_Comuni, [Codici Comuni ISTAT].codice, [Codici Comuni ISTAT].comune
'FROM [Codici Comuni ISTAT]
'WHERE ((([Codici Comuni ISTAT].codice)=[Forms]![Maschera1]![Testo1]));

poi ,probabilmete dopo la scrittura del codice fiscale quindi dopo l'evento "Dopo aggiornamneto" del campo potresti inserire il seguente codice
Dim TrovaCodice, RisultatoTrovaComune As String
TrovaCodice = Mid(Codicefiscale, 12, 4) 'estrae le 4 cifre istat dal codice fiscale
Testo1 = TrovaCodice 'Testo1 assume il valore in precedenza estratto e lo passa alla query
DoCmd.OpenQuery "Codici Comuni ISTAT Query" 'Apre la query precedentemete creata
RisultatoTrovaComune = DLookup("[Comune]", "Codici Comuni ISTAT query") ' la funzione Dlookup restituisce il nome comune corrispondente al codice
DoCmd.Close acQuery, "Codici Comuni ISTAT Query" 'Chiude la query precedentemete creata
Testo3 = RisultatoTrovaComune 'testo3 contiene il valore finale sulla maschera
Ho provato ad utilizzare la funzione dlookup direttamete

Dim TrovaCodice, RisultatoTrovaComune As String
TrovaCodice = "A005"
RisultatoTrovaComune = DLookup("[Comune]", "Codici Comuni ISTAT query", "codice= " & TrovaCodice)
Testo3 = RisultatoTrovaComune

ma restituisce ERRORE DI RUN-TIME 2001 ---- OPERAZIONE PRECEDENTE ANNULLATA
onestamente non so il perchè anzi se qualcuno potesse spiegare la causa di questo errore ne sarei grato .comunque fammi sapere se con 2007 funziona (con 2003 è ok)

matia Profilo | Newbie

Intanto grazie per la risposta ma perdona la mia profonda ignoranza in materia.
Ho provato ad implementare il codice che mi hai scritto seguendo anche le informazioni che ho trovato alla pagina http://office.microsoft.com/it-it/access-help/istruzione-select-HA001231497.aspx ma non ci sono riuscito.

Ho allegato a questo messaggio il database dove ho fatto le prove... non è che riesci ad inserirlo tu? :)

Matia


aggiornamenti delle 20.53:
in una query del database che ho allegato sono riuscito ad inserire il seguente codice (è già un progresso per me :))
CATASTO: Mid([ISCRITTI]![COD_FISC];12;4)
che intanto mi estrae il codice del catasto dal codice fiscale.
Ora basterebbe trovare il modo di fargli confrontare questo valore con quelli contenuti nella tabella dei codici per poi stampare il comune di nascita corrispondente!

ugk111 Profilo | Junior Member

TI INVIO IL TUO FILE CON LE DOVUTE IMPLEMENTAZIONI.SPERO SODDISFI LE TUE ESIGENZE.NEL CASO IN CUI NON FUNZIONASSE CON 2007, PROBABILMENTE SARA' CESERRARIO SETTARE SETTARE I "RIFERIMENTI" DAL MENU "STRUMENTI" IN VB. TI DICO QUESTO PERCHE' CON OFFICE 2003 FUNZIONA. MANTIENIMI INFORMATO SUGLI SVILUPPI
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5