Prove sui controlli sincronizzati in cascata

di il
16 risposte

Prove sui controlli sincronizzati in cascata

Ciao a tutti

Sto facendo un pò di prove sui controlli sincronizzati in cascata per vedere se riesco a capirci qualcosa.
Sto facendo riferimento a questo esempio di cui ho trovato il link qui sul forum
http://forum.masterdrive.it/access-79/controlli-bound-sincronizzati-in-cascata-45725/

E' il classico esempio Regione-->provincia-->comune quando si clicca sul comune compare anche il CAP

Ho provato ad aggiungere un altro paio di campi oltre al CAP che dovrebbero apparire quando si clicca sul "comune"
Ho inserito i campi nella query e modificato la "routine evento"

Le caselle sembrano funzionare perchè se inserisco Column (2) nella routine evento, per entrambe le caselle compare il valore del CAP,
se invece inserisco rispettivamente Column (4) e Column (5) che sono le loro posizioni, non compare nulla.

Dove sto sbagliando?
grazie
Luca

16 Risposte

  • Re: Prove sui controlli sincronizzati in cascata

    Parli di Column(4) e Column(5) senza farci capire cosa contengono, cosa ci vuoi fare, come li hai implementati.
    Prova a leggere anche questo
  • Re: Prove sui controlli sincronizzati in cascata

    Ciao Osvaldo
    grazie per la risposta, non volevo scrivere tutto per evitare di richiedere la "pappa pronta" come indicato nel regolamento, però in effetti sono stato un po troppo generico e così non mi potete aiutare.
    Purtroppo non riesco vedere il link che mi hai indicato, forse è un blocco qui al lavoro, proverò dal pc di casa.

    Nell'unica tabella sono presenti i campi: Comune, CAP, Provincia e Regione.
    Ho aggiunto 3 campi chiamandoli X, Y e Z ed inserito dei valori numerici a caso.

    Nella maschera sono presenti 3 caselle di riepilogo a cascata rispettivamente per Regione, Provincia e Comune
    Ci sono poi 3 caselle di testo: Comune, Cap, Provincia e Regione che vengono compilate tramite le 3 caselle a cascata, con l'ultima, quella del Comune viene compilato anche il CAP

    Sto provando a fare in modo che con l'ultimo comando oltre al CAP compaiano in altrettante caselle di testo anche i valori di X, Y e Z.

    Ho creato le caselle di testo nella maschera e inseriti i nomi nelle proprietà.
    Nella query, in "origine riga" delle "proprietà" della casella di riepilogo Comuni ho aggiunto i campi X,Y e Z

    Nella routine evento in aggiunta a quanto era gia presente e che ho lasciato
    ho inserito sotto Private Sub lstRegioni_AfterUpdate ()
    Me.X = vbNullString
    Me.Y = vbNullString
    Me.Z = vbNullString

    e ho inserito sotto Private Sub lstComuni_AfterUpdate ()
    Me.X = Me.lstComuni.Column (3)
    Me.Y = Me.lstComuni.Column (4)
    Me.Z = Me.lstComuni.Column (5)

    dove 3, 4 e 5 corrispondono alle rispettive posizioni dei campi nella query (non contando l'ID)

    I valori di x,y e z non compaiono però nelle caselle quando do il comando.
    Se invece inserisco tra parentesi il valore 2, corrispondente al CAP, nelle caselle dedicate a x, y e z compare il valore del CAP.

    L'impressione è che le caselle quindi funzionino, ovviamente mi sto dimenticando però qualcosa da qualche parte
  • Re: Prove sui controlli sincronizzati in cascata

    Non sono sicuro di aver compreso bene la situazione, ma quando leggo

    luczana ha scritto:


    con l'ultimo comando oltre al CAP compaiano in altrettante caselle di testo anche i valori di X, Y e Z.
    vuoi dire che hai già la soluzione in mano, ma non riesci a vedere X, Y, Z: giusto?
    Per me questo significa che X, Y, Z non concorrono a una "ulteriore cascata", ma vuoi vederli e basta. Non ti serve questo
    Private Sub lstComuni_AfterUpdate ()
    Me.X = Me.lstComuni.Column (3)
    Me.Y = Me.lstComuni.Column (4)
    Me.Z = Me.lstComuni.Column (5)
    Devi solo creare 3 caselle di testo "non associate" ad alcun campo, dove alla proprietà "Origine controllo", scrivi rispettivamente:
    =[lstComuni].Column(3)
    =[lstComuni].Column(4)
    =[lstComuni].Column(5)
    e io dò per scontato che [lstComuni] è l'ultimo controllo casella di riepilogo dove scegli il CAP.
  • Re: Prove sui controlli sincronizzati in cascata

    Ciao Osvaldo

    E' proprio così, sono già in possesso dei dati, che sono fissi e inseriti in tabella come il CAP.
    [lstComuni] è l'ultimo controllo che mi assegna il CAP e dovrebbe associarmi anche x, y e z.

    Ho provato a scrivere come mi dici, ma le caselle rimangono vuote, se invece in tutte le caselle ad esempio scrivo:
    =[lstComuni].Column(2)
    dove (2) è la posizione del campo relativo al CAP, in tutte le caselle compare il valore del CAP.
    Eppure la posizione dei campi x, y e z nella query è corretta e cioè 3, 4 e 5, non contando l'ID.
  • Re: Prove sui controlli sincronizzati in cascata

    luczana ha scritto:


    Ciao Osvaldo

    E' proprio così, sono già in possesso dei dati, che sono fissi e inseriti in tabella come il CAP.
    [lstComuni] è l'ultimo controllo che mi assegna il CAP e dovrebbe associarmi anche x, y e z.

    Ho provato a scrivere come mi dici, ma le caselle rimangono vuote, se invece in tutte le caselle ad esempio scrivo:
    =[lstComuni].Column(2)
    dove (2) è la posizione del campo relativo al CAP, in tutte le caselle compare il valore del CAP.
    Eppure la posizione dei campi x, y e z nella query è corretta e cioè 3, 4 e 5, non contando l'ID.
    Sei sicura di aver correttamente implementato la Query con i 5 Campi ed aver modificato la proprietà delle ListBox che definisce il NUMERO DI COLONNE...?
  • Re: Prove sui controlli sincronizzati in cascata

    Ciao Alex

    Hai ragione, avevo implementato la query ma non avevo modificato il numero di colonne. Ora le caselle funzionano perfettamente.

    Come vedete ho delle grosse lacune perchè in realtà non si è trattato di una dimenticanza, ma di mancanza di conoscenza.

    Quale buon testo per access potrei usare per coprire questa lacune senza necessariamente ripartire da zero e tenendo conto che non sono un programmatore? forse dovrei comunque ripartire da zero ? ma i testi spiegano tutto o tante cose si imparano con l'esperienza?

    grazie
    Luca
  • Re: Prove sui controlli sincronizzati in cascata

    Questo caso specifico che hai proposto, non credo lo troverai sui manuali. Generalmente non si tratta di una operazione comune/base, ma di una necessità "personalizzata"...almeno credo, io non l'ho mai trovato.
    Per quanto mi riguarda ho personalmente imparato qui sul forum (proprio da @Alex) sia l'argomento delle "caselle combinate a cascata", sia le textbox con la sintassi =[NomeCasellaCombinata].Column(x).
  • Re: Prove sui controlli sincronizzati in cascata

    OsvaldoLaviosa ha scritto:


    Questo caso specifico che hai proposto, non credo lo troverai sui manuali. Generalmente non si tratta di una operazione comune/base, ma di una necessità "personalizzata"...almeno credo, io non l'ho mai trovato.
    Per quanto mi riguarda ho personalmente imparato qui sul forum (proprio da @Alex) sia l'argomento delle "caselle combinate a cascata", sia le textbox con la sintassi =[NomeCasellaCombinata].Column(x).
    Ok grazie a tutti per le informazioni e per l'aiuto,
    allora proseguo così cercando di migliorare con l'esperienza, nel frattempo sto cercando di leggere quello che trovo disponibile in rete riguardo il codice VBA e le macro, magari riuscirò anche a capirci qualcosa
  • Re: Prove sui controlli sincronizzati in cascata

    Ciao

    Le caselle funzionano, sto però riscontrando un nuovo problema probabilmente dovuto a qualche proprietà che non riesco a trovare, l'ultima colonna dell'ultima casella di controllo mi viene suddivisa in sezioni verticali, ho messo "larghezza colonne =0" e provato altre soluzioni ma non riesco ad uscirne, le colonne aumentano ma non riesco a selezionare solo quella che mi interesse.

    Ho notato anche che ogni tanto nella tabella da cui pesco i dati (manovrando sulle caselle a cascata) mi viene inserito un valore numerico, sempre nel campo "comune" del 1° record, praticamente la tabella si corregge da sola, ho settato le proprietà in "consenti modifica a elenco no" ma continuano le correzioni

    Luca
  • Re: Prove sui controlli sincronizzati in cascata

    luczana ha scritto:


    l'ultima colonna dell'ultima casella di controllo mi viene suddivisa in sezioni verticali
    Aiuto! Che significa?
    "ultima colonna": quale?
    "ultima casella di controllo": sai cos'è una "casella di controllo"? Finora non ne hai mai parlato.
    "sezioni verticali": non capisco nulla

    luczana ha scritto:


    ho messo "larghezza colonne =0"
    In larghezza colonne si scrivono tanti valori espressi (generalmente) in cm, separati da punto-virgola, quante sono le colonne. Non puoi scrivere solo 0 cm.

    luczana ha scritto:


    le colonne aumentano ma non riesco a selezionare solo quella che mi interesse.
    Arabo!

    Rispiega tutto usando sempre i nomi propri.
  • Re: Prove sui controlli sincronizzati in cascata

    Scusa Osvaldo,
    come al solito sono stato un po confusionario, ero convinto dopo la precedente spiegazione di aver capito e poter maneggiare le caselle di riepilogo a cascata con una certa sicurezza, oggi invece dopo averle riprese in mano mi sono reso conto che non è proprio così, dopo un paio d'ore di tentativi, preso un pò dalla delusione, ho scritto di getto senza pensarci. Provo a essere più preciso:

    Mi riferivo all'ultima casella di riepilogo della cascata, non mostra solamente i valori del campo di riferimento ma al suo interno sono presenti anche i valori di altri campi (distribuiti su più colonne interne alla casella).

    Inoltre mentre cercavo di fare svariati tentativi per risolvere la questione, pur senza che fossi io a modificare direttamente i valori della tabella da cui vengono pescati i dati, ho notato che il campo (di questa tabella) collegato all'ultima casella di riepilogo della cascata, in corrispondenza del primo record, modificava il proprio valore inserendo un valore numerico.
  • Re: Prove sui controlli sincronizzati in cascata

    Forse un esempio sarebbe più chiarificatore della confusione che forse esite all'interno del database
  • Re: Prove sui controlli sincronizzati in cascata

    Provo a descrivere meglio

    L'esempio sul quale stavo provando è quello di 3 caselle di riepilogo a cascata e che si selezionano in successione: la prima Regione, la seconda Provincia, la terza Comune.
    Ogni scelta che viene fatta contribuisce a compilare una rispettiva casella di testo nella parte inferiore della maschera (una per regione una per provincia e una per comune). Nel momento in cui si sceglie il comune viene compilata anche un ulteriore casella di testo col CAP. Ho aggiunto altre 3 caselle di testo che vengono compilate con altri dati che ho aggiunto in ulteriori campi nell'unica tabella esistente, anche queste 3 caselle di testo vengono compilate nel momento in cui si sceglie il comune.
    Ho implementato la query e modificato la proprietà delle ListBox che definisce il numero di colonne.

    Le caselle di testo vengono compilate correttamente, il problema è che nel momento in cui seleziono la provincia (nella 2° casella di riepilogo a cascata) nella 3° casella( quella del comune) non compare solo il comune ma compaiono anche i dati degli ulteriori campi che ho aggiunto alla tabella.

    Il valore del primo record (campo del comune) si modifica modifica inoltre da solo
  • Re: Prove sui controlli sincronizzati in cascata

    luczana ha scritto:


    Le caselle di testo vengono compilate correttamente, il problema è che nel momento in cui seleziono la provincia (nella 2° casella di riepilogo a cascata) nella 3° casella( quella del comune) non compare solo il comune ma compaiono anche i dati degli ulteriori campi che ho aggiunto alla tabella.
    A me sembra tutto nella norma...proprio perché per te il discorso non finisce su Comune. E ogni Comune ha sempre e comunque una terna di valori X, Y, Z "di coda". Tra l'altro non hai mai un Comune con X=Null, Y=Null, Z=Null.

    Per me ti sta funzionando tutto per bene e non vuoi accorgertene da solo.
Devi accedere o registrarti per scrivere nel forum
16 risposte