Visualizzazione contenuto caselle combinate in maschere continue

di il
10 risposte

Visualizzazione contenuto caselle combinate in maschere continue

Buonasera,
la maschera frmControparti è basata sulla tabella tblControparti e contiene le seguenti 2 caselle combinate:
- cboLocalitàPrimariaControparte associata al campo LocalitàPrimariaControparte della tabella;
- cboLocalitàSecondariaControparte associata al campo LocalitàSecondariaControparte della tabella.

LocalitàPrimaria = Comune
LocalitàSecondaria = Frazione, Quartiere, Centro Commerciale, etc

L'origine dati della casella cboLocalitàSecondariaControparte è collegata alla casella cboLocalitàPrimariaControparte 

tramite una query di selezione che impone che la LocalitàPrimariaLocalitàSecondaria sia uguale alla IdLocalitàPrimaria del record corrente.

Alla casella combinata cboLocalitàPrimariaControparte è associato l'evento Dopo aggiornamento:

me.cboLocalitàSecondariaControparte.Requery

Mentre tutto funziona correttamente in fase inserimento e di registrazione dei dati, in fase di visualizzazione le caselle  cboLocalitàSecondariaControparte risultano vuoti (tranne il primo).
Questo anche se nella tabella associata tblControparti sono presenti i valori inseriti:

Ho cercato di approfondire l'argomento della maschere continue, ma non ho trovato soluzioni.

Ringrazio anticipatamente tutti coloro che vorranno aiutarmi a capire la natura del problema e a trovare la relativa soluzione.

10 Risposte

  • Re: Visualizzazione contenuto caselle combinate in maschere continue

    14/12/2023 - RayBan64 ha scritto:


    L'origine dati della casella cboLocalitàSecondariaControparte è collegata alla casella cboLocalitàPrimariaControparte 

    tramite una query di selezione che impone che la LocalitàPrimariaLocalitàSecondaria sia uguale alla IdLocalitàPrimaria del record corrente.

    Non credo che sia questo che farà la differenza ma tra queste due righe hai pubblicato un'immagine che però non è visibile. Prova a ricaricarla.

  • Re: Visualizzazione contenuto caselle combinate in maschere continue

    Si tratta della relazione tra le tabelle:

  • Re: Visualizzazione contenuto caselle combinate in maschere continue

    Ho buttato l'occhio in giro e alcuni danno spiegazioni / soluzioni ben chiare che però non mi sento di riportare se prima non le provo in prima persona. Siccome non riesco a ricostruire il tuo problema potresti mettere a disposizione un file con dati fittizi in cui è già presente il problema che hai illustrato con le immagini, così posso (possiamo, non solo io) fare qualche prova?

    Devi usare un servizio di host esterno (tipo OneDrive, GDrive, Dropbox), non puoi caricare il file direttamente qui. Ogni volta io preciso che per quanto mi riguarda deve essere accessibile senza alcuna forma di registrazione/autenticazione.

    Vedi cosa puoi/riesci a fare.

  • Re: Visualizzazione contenuto caselle combinate in maschere continue

    A mio avviso il funzionamento delle combo e' corretto, non c'e' nulla di anomalo. Si vede valorizzato il primo record perche' e' quello che ha lo stato attivo e su cui viene eseguito il requery della combo secondaria. Gli altri records, pur essendo visibili, non hanno lo stato attivo per cui la query sotto alla combo non e' valorizzata e quindi non ti mostra nulla.

    Per ovviare al problema, io farei un workaround, ovvero posizionerei una controllo casella di testo con stesse dimensioni della cboLocalitàSecondariaControparte sopra questa e come origine controllo la valorizzi con una Dlookup andandoti a prendere il valore che ti serve …

    Rendi visibile questa e non visibile la cbo. In questo modo vedrai tutti i records valorizzati con il dato inserito.

    Se devi inserire/modificare il valore, sull'evento double click della casella di testo, rendi visibile la cbo e non visibile la casella di testo, fai l'inserimento poi su uscita dal controllo o su salva record, rendi di nuovo visibile la casella di testo e non visibile la cbo

  • Re: Visualizzazione contenuto caselle combinate in maschere continue

    Vedi se questi articoli espongono la medesima tua problematica:

    https://www.access-programmers.co.uk/forums/threads/how-to-solve-the-cascaded-combo-boxes-issue-in-continuous-form.313264/

    https://www.experts-exchange.com/articles/5950/Cascading-Combos-on-Continuous-Forms-and-Datasheets.html

  • Re: Visualizzazione contenuto caselle combinate in maschere continue

    Grazie a Mailman per la risposta.

    Come richiesto da Philcattivocarattere, allego il collegamento a OneDrive:
    https://1drv.ms/u/s!AoZeq5Mx4xjbgrklINuz1wnXXpflyg?e=cqPb40

    A seguito di alcuni tentativi, ho notato che la tabella tblControparti non viene aggiornata correttamente alla chiusura della relativa maschera frmControparti; il che fa supporre che ci sia qualche errore nella progettazione/costruzione della maschera.

  • Re: Visualizzazione contenuto caselle combinate in maschere continue

    Grazie @Alex, studierò il materiale che hai indicato.
    Vi aggiornerò sugli sviluppi!

  • Re: Visualizzazione contenuto caselle combinate in maschere continue

    15/12/2023 - Mailman ha scritto:

    posizionerei una controllo casella di testo con stesse dimensioni della cboLocalitàSecondariaControparte sopra questa

    Ecco, questo è uno dei suggerimenti che avevo trovato internavigando ma non provato.

    15/12/2023 - RayBan64 ha scritto:

    …allego il collegamento … ho notato che la tabella tblControparti non viene aggiornata correttamente alla chiusura della relativa maschera frmControparti;

    e non solo, non si vede nemmeno il problema di cui parlavi. Come faccio a vedere e risolvere quello che non c'è? Farò qualche prova di mia iniziativa.

  • Re: Visualizzazione contenuto caselle combinate in maschere continue

    Secondo me, quello che stai cercando di fare non ha senso oltre che impossibile.

    nelle relazioni hai una tabella tblControparti  (master) collegata 1 a m con la rispettiva tblLocalitàPrimaria (detail) tramite query, che, a sua volta, tblLocalitàPrimaria e' master della tblLocalitàdecondaria.

    il risultato, anche senza combo e':

    controparti                            località primaria                 località secondaria

    a                                                        1                                                 xyz

    b                                                        2                                                 ---

    c                                                         3                                                 ---

    14/12/2023 - RayBan64 ha scritto:


    tramite una query di selezione che impone che la LocalitàPrimariaLocalitàSecondaria sia uguale alla IdLocalitàPrimaria del record corrente.

    questa potrebbe essere la risposta al tuo quesito. stai imponendo che LocalitàPrimariaLocalitàSecondaria sia uguale alla IdLocalitàPrimaria

    in altri termini vuoi che IdLocalitàPrimaria del record xyz pari a 1 sia uguale anche a 2

    prova a modificare “genova” con “torino”, dovresti avere qualcosa del genere:

    controparti                            località primaria                 località secondaria

    a                                                        1                                                 xyz

    b                                                        2                                                 ---

    c                                                         1                                                 abc

    quando usi le query non puoi pretendere che siano sempre editabili. Per renderle editabili devi:

    aprire la tabella master; 

    metterla in edit; 

    inserire il valore che hai modificato; 

    aggiornare il dato (post) 

    ripetere tutto per le altre eventuali tabelle. 

    Alla fine fai il requery o refresh della query. Un lavoraccio se ti perdi in una maschera continua... Logica sarebbe avere un form in visualizzazione ed uno per inserimento o modifica (anche per non alterare per errore i dati).

  • Re: Visualizzazione contenuto caselle combinate in maschere continue

    Ciao a tutti,

    Ho risolto il problema trasformando la visualizzazione di frmControparti da Maschere Continue a Maschera Singola e creando l'evento “Su corrente”:

    
    me.cboLocalitàSecondariaControparte.Requery

    Comunque, analizzando le risposte ho avuto modo di chiarire alcuni concetti che mi sfuggivano.

    Grazie quindi a tutti per la disponibilità

Devi accedere o registrarti per scrivere nel forum
10 risposte