Buonasera a tutti,
ho un database Access con cui gestisco parte del mio lavoro. All'interno c'è una maschera per la tabella Anagrafica attraverso la quale inserisco i vari dati dei miei utenti (nome e cognome, codice fiscale, residenza, ecc.).
Per quanto riguarda la residenza, ho un campo "Indirizzo", un campo "Comune" e un campo "CAP".
Il primo è di testo (serve per via/piazza e numero civico), mentre gli altri due sono numerici e sono gestiti attraverso due combobox la cui origine riga sono rispettivamente una tabella "Comuni" e una query "Q_CAP_Comune_Res" in cui Comuni e CAP sono associati
(ID_CAP, ID_Comune, Cod_CAP).
Il fatto di aver messo separatamente Comune e CAP mi è necessario perché non solo molti comuni hanno lo stesso CAP, ma soprattutto perché alcune città (ad esempio Milano o Roma) hanno più CAP associati e devo essere preciso.
All'inizio avevo fatto un'unica tabella Comuni_CAP e un unico valore in Anagrafica, ma il risultato era che i vari utenti ad es. di Milano si trovavano tutti divisi tra i vari CAP e in altre maschere questo mi dava problemi.
Per poter far sì che inserendo il comune nella prima ComboBox (CboResidenza) mi compaiano nella CboCAP come possibilità soltanto il (o i) CAP associati, ho inserito nella query Q_CAP_Comune_Res il criterio "[Forms]![Maschera Utenti]![CboResidenza]" sotto
ID_Comune e, nell'evento "su uscita" di CboResidenza il codice
Private Sub CboResidenza_Exit(Cancel As Integer)
Me!CboCAP.Requery
End Sub
In questo modo non appena inserito il comune e spostandomi con tab su CAP, posso già trovarmi i CAP appropriati.
Tutto apparentemente funziona, tanto che se guardo la tabella Anagrafica in Foglio Dati vedo che il valore del CAP viene correttamente registrato, così come lo vedo se stampo il report sull'utente.
Il problema è che invece se comincio a scorrere tra gli utenti nella maschera, a schermo mi compaiono
soltantoi CAP uguali all'ultimo modificato, mentre quelli di altri comuni appaiono vuoti e, se ci clicco, il CAP che compare tra le possibilità è sempre l'ultimo modificato. Faccio un esempio:
Inserisco un utente di Vobarno (25079, BS), vado su CAP e come elemento da inserire ho giustamente 25079, lo seleziono e salvo. Se però ora scorro i vecchi utenti, soltanto le CboCAP degli utenti di Vobarno mostreranno il CAP; quelle degli altri compaiono
vuote e, cliccandole, mi danno come unica possibilità ancora 25079. Questo nonostante, come dicevo prima, il loro valore nella tabella è correttamente registrato. Soltanto non compare più nella combobox.
A livello logico mi sembra di capire a grandi linee l'errore, ma non riesco a trovare una soluzione. Qualcuno sa darmi una mano?
Mi rendo conto di aver posto una domanda piuttosto complessa e spero di aver spiegato al meglio. Intanto vi ringrazio e resto a disposizione.
Paolo