Campi modificabili in subform con filtro su due valori

di il
12 risposte

Campi modificabili in subform con filtro su due valori

Buongiorno ragazzi e tanti auguri di buon natale.
Dovrei creare un database e vorrei, se possibile, uno start di impostazione. Relazionando le tabelle tra di loro mi ritrovo in un ciclo ridondante, chiuso, dove una necessita dell'altra. In parole povere, mi sono perso e non ne vado più a capo.

Il database ha come scopo quello di inserire dati in una tabella (tramite subform), cercando 2 valori (modello e versione).

Tblmodelli
IDmodello
nomemodello

Tblversioni
IDversione
nomeversione

Tbldettagli
IDdettaglio
IDmodello
IDversione
dettaglio1
dettaglio2
dettaglio3



Ogni modello può avere più versioni
di conseguenza...
Ogni versione può avere più modelli

ESEMPIO:

modello: FIAT500 Versione: 3PORTE
modello: FIAT500 Versione: 5PORTE
modello: PANDA Versione: 3PORTE
modello: PANDA Versione: 5PORTE
ecc ecc

Ho relazionato tra di loro le tabelle
tblmodelli(idmodello) 1->M tbldettagli(idmodello)
tblversioni(idversione) 1->M tbldettagli(idversione)
ma non funziona.

Dovrei creare una maschera che mi permettesse di inserire un nuovo modello e associargli più versioni tramite casella di riepilogo (scelta a più campi).
Logicamente la casella di riepilogo sarà stata popolata in precedenza tramite maschera apposita e valida per tutti i modelli.

Poi, scegliendo da una combo NOMEMODELLO e da un'altra combo NOMEVERSIONE, mi dovrebbe apparire la subform (tbldettagli) filtrata.

ESEMPIO:

SCELTA modello: FIAT500 SCELTA Versione: 3PORTE SUBFORM FILTRATA DOVE POTER INSERIRE [dett1]-[dett2]-[dett3]-[dett4]-ecc
SCELTA modello: FIAT500 SCELTA Versione: 5PORTE SUBFORM FILTRATA DOVE POTER INSERIRE [dett1]-[dett2]-[dett3]-[dett4]-ecc
SCELTA modello: PANDA SCELTA Versione: 3PORTE SUBFORM FILTRATA DOVE POTER INSERIRE [dett1]-[dett2]-[dett3]-[dett4]-ecc
SCELTA modello: PANDA SCELTA Versione: 5PORTE SUBFORM FILTRATA DOVE POTER INSERIRE [dett1]-[dett2]-[dett3]-[dett4]-ecc
ecc ecc

Come detto sopra, mi servirebbe uno start perchè rigiro sempre sullo stesso errore.
Se volete, vi posto il file zip con le tabelle, form e subform impostate errate.
Grazie mille per un eventuale aiuto

12 Risposte

  • Re: Campi modificabili in subform con filtro su due valori

    dark ha scritto:


    Tblmodelli
    IDmodello
    nomemodello

    Tblversioni
    IDversione
    nomeversione

    Tbldettagli
    IDdettaglio
    IDmodello
    IDversione
    dettaglio1
    dettaglio2
    dettaglio3

    dark ha scritto:


    Ogni modello può avere più versioni
    di conseguenza...
    Ogni versione può avere più modelli

    ESEMPIO:

    modello: FIAT500 Versione: 3PORTE
    modello: FIAT500 Versione: 5PORTE
    modello: PANDA Versione: 3PORTE
    modello: PANDA Versione: 5PORTE
    ecc ecc

    Ho relazionato tra di loro le tabelle
    tblmodelli(idmodello) 1->M tbldettagli(idmodello)
    tblversioni(idversione) 1->M tbldettagli(idversione)
    ma non funziona.
    Devi relazionare:
    Modelli uno-a-molti Versioni
    Versioni uno-a-molti Dettagli
  • Re: Campi modificabili in subform con filtro su due valori

    Ciao Osvaldo, grazie per la risposta. Nel frattempo, prima che tu rispondessi, avevo creato un'altra tabella

    tblModelliversioni
    IDmodelloversione
    IDmodello
    IDversione

    ho relazionato uno-a-molti Idmodello e idversione
    poi...

    nella tabella tblDettagli ho aggiunto il campo numerico IDmodelloversione è ho relazionato uno-a-molti

    Avevo pensato di rendere univoco il modello associato alla versione (IDmodelloversione) e far apparire una subform nel quale inserire i dettagli legato allo stesso ID.
    Secondo te è percorribile questa strada o continuo in base al tuo suggerimento?
  • Re: Campi modificabili in subform con filtro su due valori

    È tutto corretto.
    Tu consideri FIAT500 un tutt'uno. Va bene...io avrei separato Marca=FIAT, Modello=500. Quindi farei anche una tabella Marche (FIAT, Ford, Lancia...) uno-a-molti Modelli.
  • Re: Campi modificabili in subform con filtro su due valori

    OsvaldoLaviosa ha scritto:


    È tutto corretto.
    Tu consideri FIAT500 un tutt'uno. Va bene...io avrei separato Marca=FIAT, Modello=500. Quindi farei anche una tabella Marche (FIAT, Ford, Lancia...) uno-a-molti Modelli.
    Se lui vende solo FIAT... potrebbe pure andare... nel concetto della teoria è ovviamente errato e quanto hai suggerito corretto.
    Sapendo che il mondo Fiat ha pure Lancia ed altri marchi... e spando che il Modello non si chiama FIAT500... i oavrei optato per 500 e non FIAT500... daltro canto la Panda non la chiama FiatPanda...
  • Re: Campi modificabili in subform con filtro su due valori

    Fiat500 e 3porte è solo indicativo.

    In realtà si parla di salotti.

    Possiamo prendere come esempio quanto segue:

    Modelli: (nomi di pianeti)
    Versioni: (colori)

    Marte-rosso -> dettagli
    Marte-giallo -> dettagli
    Giove-verde -> dettagli
    Giove-rosso -> dettagli
    Saturno-blu -> dettagli

    Scusate ma sono dal cell
  • Re: Campi modificabili in subform con filtro su due valori

    Secondo me non hai valutato bene la gestione degli attributi.
  • Re: Campi modificabili in subform con filtro su due valori

    @Alex ha scritto:


    Secondo me non hai valutato bene la gestione degli attributi.
    Sono qui proprio per questo. Mi sono talmente imbrogliato che non riesco più a venirne a capo. La logica mi riports sempre allo stesso punto.
    In che senso non ho valutato bene la gestione degli attributi?
  • Re: Campi modificabili in subform con filtro su due valori

    Se interpreto bene il pensiero di @Alex...ma (credo) in altre parole, quando ti accorgi che un VALORE tende a ripetersi, è lì che devi prevedere una tabella apposita che "riassuma" in modo univoco tale valore. In pratica, per le automobili le Marche possono essere univocamente rappresentate. Per i Pianeti, puoi avere una tabella Pianeti. Una tabella Colori, quindi, siccome vi è una relazione molti-a-molti, una tabella di congiunzione PianetiColori.
    L'analisi va fatta "caso per caso"...e non sono sicuro se paragonare automobili a pianeti ecc...sia per forza congruente.

    P.S.: Ho la sensazione che la discussione si sia orientata su un fronte (la NORMALIZZAZIONE) che più nulla ha a che vedere con il titolo proposto.
  • Re: Campi modificabili in subform con filtro su due valori

    NOn è corretto avere Dettaglio1 Dettaglio2 Dettaglio3 nella tabella Dettagli...
    Ipotizzo
    TblMarche
    TblModelli
    TblVersioni
    TblAttributi

    Ma queste sono le basi, perchè devi sviluppare molte Relazioni M-M che richiedono la Tabella intermedia
    TblMarche(1)<---->(M)TblMarcheModelli(M)<---->(1)TblModelli(1)<---->(M)TblDettaglioVersioni(M)<---->(1)TblVersioni

    TblVersioni(1)<---->(M)TblAttributiVersione(M)<---->(M)TblAttributi

    Gli attributi sono di varie tipologie quindi va considerato se ci sono famiglie di attributi... come il Colore o N°Posti ecc...

    Ecc... strutturare in modo funzionale un Database non è come farlo su un foglio di EXCEL.... è complesso e serve avere una visione fuunzionale del processo... ed anche dell'interfaccia.
    Ovviamente l'ipotesi strutturata che ho fatto non andrà benissimo, anzi, deve essere calata nella tua realtà precisa, ma quanto ti ho esposto è pura teoria di base, con la quale poi si fanno le personalizzazioni.

    Penso tu abbia da fare una riflessione ed uno sviluppo di dettaglio, ma prima tu debba consolidare qualche argomento di base.

    Poi comprendo tu dica che sei quì per questo... ma è assai complesso darti indicazioni mirate quando è evidente manchino basi ti teoria strutturale...
    Ad esempio ti avrei suggerito di rifarti alle prime 3FN della teoria relazionale... con le quali avresti assolutamente raggiunto lo schema che ti ho abozzato sopra come punto di partenza e non come sconvoglimento del progetto...!
  • Re: Campi modificabili in subform con filtro su due valori

    @Alex ha scritto:


    Penso tu abbia da fare una riflessione ed uno sviluppo di dettaglio, ma prima tu debba consolidare qualche argomento di base.

    Poi comprendo tu dica che sei quì per questo... ma è assai complesso darti indicazioni mirate quando è evidente manchino basi ti teoria strutturale...
    Ad esempio ti avrei suggerito di rifarti alle prime 3FN della teoria relazionale... con le quali avresti assolutamente raggiunto lo schema che ti ho abozzato sopra come punto di partenza e non come sconvoglimento del progetto...!
    Prima forma normale
    La prima forma normale specifica che a ogni intersezione di riga e colonna nella tabelle è presente un singolo valore e mai un elenco di valori. Ad esempio non è possibile avere un campo denominato Prezzo con cui siano presenti più prezzi. Se si considera ogni intersezione di riga e colonna come una cella, ogni cella può contenere un solo valore.

    Seconda forma normale
    La seconda forma normale richiede che ogni colonna non chiave sia completamente dipendente dall'intera chiave primaria e non solo da una parte di tale chiave. Questa regola viene applicata in presenza di una chiave primaria composta da più colonne. Si supponga ad esempio di avere una tabella contenente le colonne seguenti, dove ID ordine o ID prodotto costituisce la chiave primaria:

    ID ordine (chiave primaria)

    ID prodotto (chiave primaria)

    Nome prodotto

    Questa progettazione viola la seconda forma normale, perché il nome del prodotto dipende dall'ID prodotto, ma non dall'ID ordine, quindi non dipende dall'intera chiave primaria. È necessario rimuovere il nome del prodotto dalla tabella. Appartiene a una tabella diversa (prodotti).

    Terza forma normale
    La terza forma normale richiede non solo che ogni colonna non chiave sia dipendente dall'intera chiave primaria, ma che le colonne non chiave siano indipendenti le une dalle altre.

    In altre parole, ogni colonna non chiave deve essere dipendente dalla chiave primaria ed esclusivamente dalla chiave primaria. Si supponga ad esempio di avere una tabella che contiene le colonne seguenti:

    ID prodotto (chiave primaria)

    Nome

    PDC

    Sconto

    Si supponga che la colonna Sconto dipenda dal prezzo al dettaglio consigliato (PDC). Questa tabella viola la terza forma normale perché una colonna non chiave, Sconto, dipende da un'altra colonna non chiave, PDC. Indipendenza delle colonne significa che deve essere possibile modificare qualsiasi colonna non chiave senza influire su qualsiasi altra colonna. Se si modifica un valore nel campo PDC, il valore di Sconto verrebbe modificato di conseguenza, violando in tal modo la regola. In questo caso è necessario spostare la colonna Sconto in un'altra tabella la cui chiave primaria è basata sulla colonna PDC.

    Trovate su https://support.microsoft.com/it-it/office/nozioni-fondamentali-sulla-progettazione-di-database-eb2159cf-1e30-401a-8084-bd4f9c9ca1f5/
  • Re: Campi modificabili in subform con filtro su due valori

    Penso che le prime due non le abbia violate ma la terza, come anche tu hai affermato, sia pienamente violata
  • Re: Campi modificabili in subform con filtro su due valori

    Purtroppo, molti partono dal disegnino delle tabelle non avendo dietro una teoria relazionale consolidata... ed il risultato è appunto commettere errori di "ingnenuità".
    Buon lavoro.
Devi accedere o registrarti per scrivere nel forum
12 risposte