Access 2016 - problema con ComboBox Comuni e CAP

Anonimo
2020-10-26T20:32:27+00:00

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

Microsoft 365 e Office | Access | Per la casa | Windows

Domanda bloccata. Questa domanda è stata eseguita dalla community del supporto tecnico Microsoft. È possibile votare se è utile, ma non è possibile aggiungere commenti o risposte o seguire la domanda.

0 commenti Nessun commento

4 risposte

Ordina per: Più utili
  1. Anonimo
    2020-10-27T14:32:24+00:00

    Ciao Sandro,

    sì, la visualizzazione predefinita è "maschera singola" (posso spostarmi tra i record o con i pulsanti di spostamento o con dei pulsanti che ho creato apposta) e non ho controlli non associati, quelli interessati sono tutti associati a un campo della tabella Anagrafica.

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Anonimo
    2020-10-27T13:55:45+00:00

    ciao Paolo,

    sei certo di lavorare con una maschera singola e non continua? il problema che poni pare essere maggiormente legato alla maschera continua e al fatto di gestire controlli non associati.

    Facci sapere.

    Ciao, Sandro.

    La risposta è stata utile?

    0 commenti Nessun commento
  3. Anonimo
    2020-10-27T12:22:04+00:00

    Ciao Sandro e grazie!

    ho provato il tuo metodo e anche questo funziona a prima vista (anche molto più veloce, peraltro!), nel senso che mi mostra i CAP possibili una volta selezionato il Comune. Purtroppo però, spostandomi di record in record, accade sempre la stessa cosa: i CAP diversi dall'ultimo che ho salvato non compaiono nella combobox a schermo e, se provo a cliccarci sopra, mi dà come possibilità sempre l'ultimo salvato. La mia è una maschera singola, ma ci si può spostare tra i record con i pulsanti di spostamento.

    Mostro alcune immagini per capire.

    Qui ho appena modificato il Comune e nel CAP ho scelto l'unica possibilità che ho, cioè 25064:

    Ora passo ad esempio al record precedente e mi compare questo:

    Il CAP di Calvagese (25080), nonostante correttamente registrato nella tabella Anagrafica su cui si basa la maschera, non compare nella sua casella. E se provo a cliccarci, compare ancora il CAP di Gussago, come si vede qui sotto: 

    Navigando tra i record vedo quindi valorizzati solo i CAP dei residenti a Gussago, gli altri risultano tutti vuoti. 

    Io ho bisogno da una parte di avere la lista dei cap corretti da inserire, dall'altra però che i cap inseriti rimangano visibili nella casella CAP. Sospetto che il problema sia legato al fatto che la casella mantiene il risultato dell'ultimo evento "AfterUpdate" effettuato, ma non so proprio come risolvere la cosa.

    Grazie di nuovo!

    La risposta è stata utile?

    0 commenti Nessun commento
  4. Anonimo
    2020-10-27T07:49:46+00:00

    ciao Paolo,

    se capisco bene, il problema che poni e' il classico cascading combo boxes.

    Vedi se questo esempio    ti e' di aiuto.

    Ciao, Sandro

    La risposta è stata utile?

    0 commenti Nessun commento