List menu condizionato

di il
23 risposte

List menu condizionato

Ciao a tutti, chiedo l'ennesimo aiuto e vi ringrazio già in anticipi per i tantissimi aiuti che mi state dando con questo programma che mai ho avuto l'occasione di usare e mi sono ritrovato all'improvviso ad averci a che fare.
Anticipo già che ho visto già alcuni topic su questo tipo di problema, ma non sono riuscito a risolvere per il mio caso. Provo ad essere il più chiaro possibile, ho la mia maschera nel quale riporto il recordo con tutti i dati necessari, ed ho come intestazione della maschera dei filtri di ricerca combinati, dove si possono selezionare i campi di ricerca tramite dei menu a tendina, e la lista è costituita da degli elementi presi dalla tabella.
list.JPG
list.JPG

Queste due liste sono prese in toto dalle tabelle relative:
proveni.JPG
proveni.JPG


citta.JPG
citta.JPG

Ciò che vorrei ottenere è il seguente:
A seconda di ciò che si seleziona nel primo filtro: Provenienza. Vorrei che nel secondo filtro città compaiano solo le città relative al NORD, al SUD oppure al CENTRO.
Se necessario potrei anche realizzare delle sole tabelle relative al NORD, al CENTRO, oppure al SUD, se potesse servire per facilitarmi le cose. Quel che ho pensato io è di dire ad Access che quando nel filtro Provenienza viene selezionato NORD, allora nel filtro città prendi la lista da una tabella realizzata ad hoc con le sole città del NORD. Solo che non saprei scriverlo tramite codice.
Come potrei fare?

23 Risposte

  • Re: List menu condizionato

    Quelle 2 Tabelle, [Provenienza] e [Citta] non hanno nulla in comune che consenta di Capire quale associazione possa esserci tra le 2...
    Solo la TUA testa realizza una associazione Geografica, ma non è così che funziona nei Dati di un Database... se non hai riferimenti aggregativi, il Database NON SA NULLA e non può creare associazioni non esistenti.

    Innanzitutto le Tabelle non possono avere NOMI con caratteri speciali, l'Accento è uno di questi, seconda cosa per poter capire guardando gli esempi che hai trovato devi avere qualche base di Teoria, che non capisco se dobbiamo dare per scontato tu abbia o meno...!
    Se non l'hai il fatto tu non comprenda gli esempi è comprensibile... prova ad acquisirla cercando di leggere o studiare le prime 3 regole di come si strutturano i Database... perchè la Logica è propio tutta li.
  • Re: List menu condizionato

    @Alex ha scritto:


    Solo la TUA testa realizza una associazione Geografica, ma non è così che funziona nei Dati di un Database... se non hai riferimenti aggregativi, il Database NON SA NULLA e non può creare associazioni non esistenti.
    Per quello dico se fosse il caso di realizzare delle table a parte, una per il nord, una per il sud ed una per il centro, perche ovviamente ACCESS non sa la locazione geografica delle città. Ho letto il manuale e da quello che ho capito secondo me questa è la soluzione migliore però non capisco come possa far si che in base alla provenienza scelta nel secondo menu a tendina vada a prendermi solo i dati della specifica table
  • Re: List menu condizionato

    Ricky994 ha scritto:


    ...Per quello dico se fosse il caso di realizzare delle table a parte, una per il nord, una per il sud ed una per il centro...
    No.

    Ricky994 ha scritto:


    Ho letto il manuale e da quello che ho capito secondo me questa è la soluzione migliore
    Alla luce di quello che ho scritto prima è evidente che non sono d'accordo, quindi o il manuale non vale una cicca o tu hai capito male il suo contenuto. In ogni caso segui il suggerimento di @Alex, poi quello che ne seguirà prende il nome di "caselle combinate a cascata", (che meriterebbe un ulteriore approfondimento specifico per la gestione della gerarchia)
    OT

    Ricky994 ha scritto:


    locazione geografica
    Prendiamo in "affitto" interi territori? (è una mia crociata contro la traduzione impropria di "location" con "locazione" e passatemi l'uso di affitto come sinonimo di locazione, cosa che non è in termini strettamente contrattualistici).
    Fine OT
  • Re: List menu condizionato

    Philcattivocarattere ha scritto:


    OT

    Ricky994 ha scritto:


    locazione geografica
    Prendiamo in "affitto" interi territori? (è una mia crociata contro la traduzione impropria di "location" con "locazione" e passatemi l'uso di affitto come sinonimo di locazione, cosa che non è in termini strettamente contrattualistici).
    Fine OT
    Sono d'accordo hai ragione!!!
  • Re: List menu condizionato

    Ricky994 ha scritto:


    Per quello dico se fosse il caso di realizzare delle table a parte una per il nord, una per il sud ed una per il centro, perche ovviamente ACCESS non sa la locazione geografica delle città.
    Non se ne parla.

    Ricky994 ha scritto:


    Ho letto il manuale e da quello che ho capito secondo me questa è la soluzione migliore però non capisco come possa far si che in base alla provenienza scelta nel secondo menu a tendina vada a prendermi solo i dati della specifica table
    Il tuo manuale credo dicesse ALTRO... che non hai colto...!
    I dati delle 2 Tabelle, che vanno bene, non sono sufficienti... il tuo manuale deve sicuramente aver fatto riferimento alla RELAZIONE dei dati della Tabella [Provenienza] con i dati della Tabella [Citta]... altrimenti non sta in piedi, ti ripeto che devi acquisire la logica...!

    Riassumendo nella Tabella [Citta] manca 1 Campo CHIAVE ESTERNA che consenta di Relazionare ogni Record della Tabella [Provenienza] con i Records della tabella [Citta]
    Le Tabelle DEVONO avere Campi Chiave di tipo Primario ed Esterno che consenta di costruire nel DIAGRAMMA RELAZIONALE accessibile in Access..

    Di queste cose che ho detto il tuo manuale ne parla...?
    Sono la BASE.
  • Re: List menu condizionato

    @Alex ha scritto:


    Ricky994 ha scritto:


    Per quello dico se fosse il caso di realizzare delle table a parte una per il nord, una per il sud ed una per il centro, perche ovviamente ACCESS non sa la locazione geografica delle città.
    Non se ne parla.

    Ricky994 ha scritto:


    Ho letto il manuale e da quello che ho capito secondo me questa è la soluzione migliore però non capisco come possa far si che in base alla provenienza scelta nel secondo menu a tendina vada a prendermi solo i dati della specifica table
    Il tuo manuale credo dicesse ALTRO... che non hai colto...!
    I dati delle 2 Tabelle, che vanno bene, non sono sufficienti... il tuo manuale deve sicuramente aver fatto riferimento alla RELAZIONE dei dati della Tabella [Provenienza] con i dati della Tabella [Citta]... altrimenti non sta in piedi, ti ripeto che devi acquisire la logica...!

    Riassumendo nella Tabella [Citta] manca 1 Campo CHIAVE ESTERNA che consenta di Relazionare ogni Record della Tabella [Provenienza] con i Records della tabella [Citta]
    Le Tabelle DEVONO avere Campi Chiave di tipo Primario ed Esterno che consenta di costruire nel DIAGRAMMA RELAZIONALE accessibile in Access..

    Di queste cose che ho detto il tuo manuale ne parla...?
    Sono la BASE.
    Probabilmente essendo entrato da poco nella logica di Access, non ho colto ancora. Dunque da una singola tabella dovrei associare ad ogni singola città la provenienza, tipo:
    snipp.PNG
    snipp.PNG

  • Re: List menu condizionato

    Non hai assolutamente compreso... non si fa cosi.
    Ti ho detto che servono gi INDICI non i nomi... leggi quel manuale cosa dice... non fare cose a caso.
  • Re: List menu condizionato

    @Alex ha scritto:


    Non hai assolutamente compreso... non si fa cosi.
    Ti ho detto che servono gi INDICI non i nomi... leggi quel manuale cosa dice... non fare cose a caso.
    Ok credo di aver compreso, dunque realizzo sempre la prima combobox, che sarebbe quella principale dove si andrà a scegliere NORD, SUD, CENTRO
    probve.PNG
    probve.PNG

    Dopodiché realizzo la seconda table delle città con una chiave esterna che mi relazione la città in base all'ID della provenienza, così da poter realizzare una relazione tra "ID" e "CHIAVE ESTERNA". Giusto?
  • Re: List menu condizionato

    Si ora è corretto, ma devi aver RELAZIONATO le 2 Tabelle sel Modello ER... dal Menù [Strumenti Database]--->[Relazioni]... prova a leggere in merito.
  • Re: List menu condizionato

    Si ho realizzato anche la relazione tra le due tabelle, ho collegato i campi in comune. Solo che non saprei ora realizzare nella maschera la combobox che una volta selezionato NORD, mi faccia vedere tutte le città ad esso collegate
    relaz.PNG
    relaz.PNG

    Ho trovato però un codice che dovrebbe permettermi l'aggiornamento automatico:
    Private Sub cboProvince_AfterUpdate()
    Me.cboComuni = "
    Me.cboComuni.Requery
    End Sub
  • Re: List menu condizionato

    Quella Relazione non è corretta... quando l'hai creata si è aperta una Mascherina di configurazione... hai letto e capito e selezionato correttamente i FLAG...?
    Le relazioni di tipo 1-M graficamente mostrano i simboli 1 e oo... e tu non li hai...!
    Ti sei posto il problema...?

    Poi il codice che hai buttato li serve ad aggiornare... AGGIORNARE COSA...?
    T perdi il pezzo fondamentale... che la 2° Combo... quella relativa alle Città deve avere nel Criterio il Vincolo alla Combo [Provenienza] in modo da filtare i dati...!

    Personalmente non condivido il metodo di avanzamento per approssimazioni successive... e non mi pare tu sia spinto dalla voglia di capire.
  • Re: List menu condizionato

    Mi sono ritrovato dal nulla ad usare ACCESS e VBA, senza esserne interessato o affascinato, ma per motivi lavorativi ora sono costretto. Non ne ho mai avuto a che fare in precedenza e per questo sto provando a leggere manuali e vedere tutorial.

    Il codice che ho messo era solo per il fatto di aggiornare di volta in volta la lista in base alla Provenienza, ma sono consapevole del fatto che sarebbe l'ultima cosa da fare.

    @Alex ha scritto:


    Le relazioni di tipo 1-M graficamente mostrano i simboli 1 e oo... e tu non li hai...!
    Ti sei posto il problema...?
    Onestamente, l'avevo notato ma non ci avevo fatto tanto caso, però ora ricontrollando il tipo di relazione dovrebbe essere fatta in questo modo.
    relaz.PNG
    relaz.PNG

  • Re: List menu condizionato

    Ricky994 ha scritto:


    Mi sono ritrovato dal nulla ad usare ACCESS e VBA, senza esserne interessato o affascinato, ma per motivi lavorativi ora sono costretto. Non ne ho mai avuto a che fare in precedenza e per questo sto provando a leggere manuali e vedere tutorial.
    Lascia stare i TUTORIAL, s eci devi lavorare credo che l'approccio migliore sia di prendere dei Manuali seri e studiarci... se invece uno lo fa per Hobby può anche andare a "perdita di tempo".

    Ricky994 ha scritto:


    Il codice che ho messo era solo per il fatto di aggiornare di volta in volta la lista in base alla Provenienza, ma sono consapevole del fatto che sarebbe l'ultima cosa da fare.
    Togli l'ultima, quello che hai fatto ora è corretto, l'ultima spunta è PERICOLOSA per una cancellazione magari non voluta.
    Si il Requery è il metodo che si usa per RIESEGUIRE UNA QUERY in particolare per quegli oggetti come la Combo che sono DataBound.
    Il problema è che prima di eseguire il requery devi capire cosa stai facendo e come hai relazionato le 2 Combo in modo da rispettare il vincolo relazionale esposto in Tabella...!
    In sostanza devono esprimere i dati come una Relazione 1-Molti, ovvero quando selezioni NORD dalla 1° i dati della 2° devono essere filtrati e mostrare solo quelli che appartengono all'insieme NORD ovvero quelli il cui campo chiave è uguale al valore selezionato dalla Combo1.
    Le 2 combo pertanto dovranno avere 2 Colonne, ID e Provenienza, ma dovrai impostare le larghezze delle Colonne in modo da visualizzare solo Provenienza...!

    Quindi secondo me devi fare un pezzetto per volta, prima imparare le regole di Normalizzazione, poi capire cosa è Access e come funziona... per riuscire a capirci bene quando ci si rapporta.
  • Re: List menu condizionato

    Pensavo che questo esempio PROVENIENZA-CITTA fosse il più semplice possibile per descrivervi il mio problema. Ma forse penso sia il caso descrivere il mio problema nella sua completezza, anche perchè mi sono accorto che è un tantino diverso da quello che ho esposto. Dunque io ho dei codici in una tabella con la loro rispettiva chiave primaria (Z11):
    z11.PNG
    z11.PNG

    Inoltre ho una seconda tabella (Z12):
    z12.PNG
    z12.PNG

    Queste due costituiscono dei campi di ricerca, tramite menu a tendina in una maschera.
    Ciò che vorrei io è lo stesso funzionamento di ciò che cercavo di ottenere con la città e la provenienza, ovvero in base allo "Z11" deve darmi solo gli Z12 ammissibili. Ho realizzato una table nella stessa logica delle chiavi primarie ed esterne come mi hai detto tu:
    relaz.PNG
    relaz.PNG

    ovvero lo Z12 "AT" deve comparire solo se viene selezionato lo Z11 corrispondente all'ID=5.
    Onestamente pensavo fosse una cosa abbastanza semplice.
Devi accedere o registrarti per scrivere nel forum
23 risposte