Filtri a cascata tra sottomaschere

di il
27 risposte

Filtri a cascata tra sottomaschere

Buongiorno a tutti,

in una maschera (mAnVigneti) ho tre sotto-maschere tutte e 3 in visione maschere continue (smProduttori, smVigneti, smSpecie)
Le tre dovrebbero tuttavia essere filtrate a cascata, mi spiego:

Un produttore può avere più vigneti, e ogni vigneto può avere più specie. Di conseguenza vorrei che la selezione del produttore mi filtri i vigneti che a loro volta mi filtrino le specie.

Le relazioni utili in questo caso sono:
Produttori.IDProduttore 1-m Vigneti.IDProduttore
Vigneti.IDVigneto 1-m Specie.IDVigneto

27 Risposte

  • Re: Filtri a cascata tra sottomaschere

    GabryBarbe ha scritto:


    Buongiorno a tutti,

    in una maschera (mAnVigneti) ho tre sotto-maschere tutte e 3 in visione maschere continue (smProduttori, smVigneti, smSpecie)
    Le tre dovrebbero tuttavia essere filtrate a cascata, mi spiego:

    Un produttore può avere più vigneti, e ogni vigneto può avere più specie. Di conseguenza vorrei che la selezione del produttore mi filtri i vigneti che a loro volta mi filtrino le specie.

    Le relazioni utili in questo caso sono:
    Produttori.IDProduttore 1-m Vigneti.IDProduttore
    Vigneti.IDVigneto 1-m Specie.IDVigneto
    Buona sera,
    Qual'è la domanda?
    presumo quelle relazioni ,premetto che io non le ho mai usate nel senso che non le metto mai nella finestra delle relazioni, per me
    la struttura di quelle tabelle dovrebbe essere questa:
    TbProduttori
    IdProduttore ...altri campi

    TbVigneti
    IdVigneto...altri campi
    IdProduttore Fk

    TbSpecie
    IdSpecie...Altri campi
    IdProduttore Fk questa manca
    IdVigneto Fk

    E' chiaro che le chiavi primarie portano il medesimo nome della tab preceduto dal suffisso Id
    La specie cosiccome è legata al "Vigneto" deve esserlo anche al produttore (a cascata)

    Spero esserti stato utile
    Saluti Gianni
  • Re: Filtri a cascata tra sottomaschere

    Non sono sicuro di aver capito, ma forse vuoi le "caselle combinate a cascata". Ci sono moltissimi thread che ne parlano. Prova a leggere qui
  • Re: Filtri a cascata tra sottomaschere

    Ciao gianni
    La domanda è: come faccio a filtrare due sottomaschere a cascata in base al record selezionato nella smProduttori?

    Gianni55 ha scritto:


    IdSpecie...Altri campi
    IdProduttore Fk questa manca
    IdVigneto Fk
    Questa relazione è presente, tuttavia l'ho omessa perchè pensavo fosse poco importante per i filtri della maschera. Tuttavia è presente!

    Osvaldo, no, le cbo a cascata so gestirle. Io volevo intendere filtrare le maschere in base alla selezione del record!

    Faccio un esempio pratico così forse è più chiaro: Seleziono il produttore "GabryBarbe". Nella sm dei vigneti voglio solo i vigneti di GabryBarbe (es. vigneto a, vigneto b e vigneto c). Ora, nelle specie voglio solo quelle del vigneto selezionato!
    Come ben sapete appena si apre una maschera viene selezionato un record (il primo), e quando si filtra una maschera a sua volta viene selezionato il primo record. Questo per dire che vorrei che tutto venga filtrato in automatico, anche quando il record non lo scelgo io ma viene selezionato di default.
  • Re: Filtri a cascata tra sottomaschere

    Questo per dire che vorrei che tutto venga filtrato in automatico, anche quando il record non lo scelgo io ma viene selezionato di default.
    Salve, buttata lì alle quattro del mattino...

    Maschera produttori > principale

    SottoMaschera VIGNETI :
    Collega campiMaster > idProduttore
    CampiSecondari > idProduttore
    Crei un controllo nella maschera principale >MyIdVigneti
    su clic di un record della sottomaschera vigneti scrivi
    forms!MascheraProduttori!MyIdVigneti =me.IdVigneto

    Sottomaschera SPECIE
    Collega campiMaster > idProduttore,myIdVigneto
    CampiSecondari > idProduttore,idVigneto

    Prova ci sentiamo,saluti
  • Re: Filtri a cascata tra sottomaschere

    Gianni55 ha scritto:


    Per me
    la struttura di quelle tabelle dovrebbe essere questa:
    TbProduttori
    IdProduttore ...altri campi

    TbVigneti
    IdVigneto...altri campi
    IdProduttore Fk

    TbSpecie
    IdSpecie...Altri campi
    IdProduttore Fk questa manca
    IdVigneto Fk
    A me non tornano queste relazioni. TbProduttori è uno-a-molti Vigneti e basta. Il campo TbSpecie.IDProduttore è errato messo lì.

    Per GabryBarbe:
    1. I campi di TbSpecie. Ci stai dicendo che una Specie è sempre e soltanto strettamente legata a un Vigneto. Per me no.
    2.

    GabryBarbe ha scritto:


    in una maschera (mAnVigneti) ho tre sotto-maschere tutte e 3 in visione maschere continue (smProduttori, smVigneti, smSpecie)
    Non riesco a capire il senso di questa scelta operativa.

    Per l'intera struttura tabelle, dare un'occhiata a questa discussione
    https://www.iprogrammatori.it/forum-programmazione/access/gestione-database-t41820.html#p8642793
  • Re: Filtri a cascata tra sottomaschere

    OsvaldoLaviosa ha scritto:


    1. I campi di TbSpecie. Ci stai dicendo che una Specie è sempre e soltanto strettamente legata a un Vigneto. Per me no.
    Una specie è sempre legata al singolo vigneto!

    Gianni55 ha scritto:


    Questo per dire che vorrei che tutto venga filtrato in automatico, anche quando il record non lo scelgo io ma viene selezionato di default.
    Salve, buttata lì alle quattro del mattino...
    [...]
    Testato con la disposizione corrente ma mi esce il popup di errore "impossibile creare un collegamento tra maschere non associate". Usando la mProduttori come principale mi si sballa un po' l'idea. Mi è venuto in mente di usare la proprietà filter, ma non saprei come gestirla a cascata...
  • Re: Filtri a cascata tra sottomaschere

    GabryBarbe ha scritto:


    Una specie è sempre legata al singolo vigneto!
    La Specie A1 nella tblSpecie compare una sola volta perché tblSpecie elenca tutte le Specie SOLO UNA VOLTA.
    Nella tblSpecieVigneti A1 compare molte volte associato a MOLTI Vigneti.
  • Re: Filtri a cascata tra sottomaschere

    Uhm... no

    Nella tblSpecieVigneti la specie con ID 1 (la A1) compare una sola volta. Pittosto per vigneto sono associate più specie, ma non il contrario.
  • Re: Filtri a cascata tra sottomaschere

    GabryBarbe ha scritto:


    Uhm... no
    Nella tblSpecieVigneti la specie con ID 1 (la A1) compare una sola volta. Pittosto per vigneto sono associate più specie, ma non il contrario.
    Allora riepiloghiamo:
    tbProduttori : 1 produttore > Molti vigneti

    TbProduttori:
    idProduttore...altri campi

    tbVigneti:
    idvigneto...altri campi
    NomeVigneto (credo distinto per contrada o altro)
    idproduttore
    idSpecie
    Punto... abbiamo finito con le relazioni.
    La tbSpecie NON è in relazione con NESSUNA Tabella (le testate sono per me che non capisco che dopo una certa si va a letto)
    è semplicemente un "deposito" delle specie al quale si attinge quando si carica un Vigneto.

    Quindi non avremo 3 sottomaschere ma 1 Maschera con origine dati la TbProduttori ed 1 sottomaschera con l'elenco dei vigneti (1aM)
    Produttore : Manzoni Alessandro... via, Numero, contatto etc

    stmVigneti :
    Vigneto Alfa Specie a1
    Vigneto Beta Specie a1
    Vigneto Pippo Specie b2
    Vigneto Mario Specie c4

    Qualora non bastasse per intenderci la specie è come la categoria catastale nei fabbricati ...giusto?

    Saluti Gianni
  • Re: Filtri a cascata tra sottomaschere

    GabryBarbe ha scritto:


    Pittosto per vigneto sono associate più specie, ma non il contrario.
    Azz...mi sono perso
    Un vigneto con più specie?

    Tipi di vigneto
    ad alberello.
    Cordone speronato.
    Guyot semplice.
    Doppio Guyot.
    Pergola.
    Tendone.
    A mio parere vi siete persi con le relazioni!
    leggi il mio post precedente e se non è quello l'esempio facci un esempio di come lo vuoi vedere tu altrimenti... nin so!
    Gianni
  • Re: Filtri a cascata tra sottomaschere

    Ciao, mi sono accorto solo ora di non aver postato un esempio con dati del database... così non si capisce nulla, hai ragione.

    L'ho pubblicato nell'altra discussione ma non in questa. Perdonami, eccolo:

    Ad ogni modo, la struttura tabelle è giusta, se hai voglia e tempo (ma credo che con l'esempio che ti ho mandato sopra si capisca abbastanza) leggiti questa discussione dove si è parlato a lungo della struttura di quest database ahah!
    https://www.iprogrammatori.it/forum-programmazione/progettazione-database/database-per-laboratorio-chimica-t41783.html
  • Re: Filtri a cascata tra sottomaschere

    GabryBarbe ha scritto:


    Nella tblSpecieVigneti la specie con ID 1 (la A1) compare una sola volta. Pittosto per vigneto sono associate più specie, ma non il contrario.
    GabryBarbe lo schema relazioni dell'ultimo database scaricato riporta un tblSpecie uno-a-molti tblVignetiSpecie. Ciò a seguito di attenta analisi fatta in privato. Ora si cambia di nuovo. Io non ci capisco più niente.
  • Re: Filtri a cascata tra sottomaschere

    La struttura tabelle da te consigliata è giusta, almeno mi pare. Ci ho giocato un po' sopra prima e il funzionamento è perfetto...
  • Re: Filtri a cascata tra sottomaschere

    Gianni55 ha scritto:


    Sottomaschera SPECIE
    Collega campiMaster > idProduttore,myIdVigneto
    CampiSecondari > idProduttore,idVigneto
    Pensandola così come posso collegare una casella di testo come campo master??
Devi accedere o registrarti per scrivere nel forum
27 risposte