Newsgroup: it.comp.appl.access
Titolo: combo in relazione

Vi chiedo cortesemente come si puň , in una maschera per introduzione libri,
scegliendo dalla combo Materia Avere nella combo Argomento L'elenco degli
argomenti in base alla materia digitata. Ogni materia (11) ha circa 10
Sottomaterie o Argomenti per cui con 10 tabelle argomento, una per ogni
materia dovrei risolvere qualcosa. Ma il grande problema, per me, č:cosa
devo fare affinchč, una volta scelta la materia, nel combo Argomenti
compaiano solo quelli relativi a quella materia?
                                In attesa di qualche buon anima, io sono sempre qui. Ciao
--------------------------------
Inviato via 
http://usenet.libero.it

 ha scritto nel messaggio
news:217Z59Z199Z101Y...@usenet.libero.it...

Mi ha spaventato la tua affermazione che riporto:
"Ogni materia (11) ha circa 10 Sottomaterie o Argomenti per cui con 10
tabelle argomento, una per ogni
 materia dovrei risolvere qualcosa."
Ora se per ogni argomento hai una tabella credo non sia chiaro l'utilizzo di
Database Relazionali.
Per risponderti, cosě come ho concepito la struttura del tuo DB non si puň e
non conviene farlo.
Credo ti convenga cercare di ottimizzare il numero delle tabelle partendo
dalla NORMALIZZAZIONE
dei dati.
@Alex.

 Cercherň di essere piů chiaro , se ci riesco. Nella combo Materia io ho
una tendina dalla quale posso scegliere Letteratura, storia, filosofia etc.
Se per esempio scelgo Letteratura questa ha 10 argomenti tipo lett.italiana,
lett.inglese.lett.latina etc. quindi ogni materia ha i suoi corrispondenti
argomenti (o sottomaterie).Quando io scelgo Letteratura come faccio ad avere
nella combo successiva(di Argomenti) gli argomenti di Letteratura e non
quelli per esempio delle altre materie (Filosofia storia Geografia etc. Che
a loro volta hanno le loro Sottomaterie (Argomenti)? Spero di aver
migliorato e ti mando un saluto.


 ha scritto nel messaggio
news:192Z92Z126Z137Y...@usenet.libero.it...

Cercherň di essere io + chiaro.
Hai 10 Tabelle per gli argomenti o no....???
Se č cosě ti ho spiegato che hai SBAGLIATO completamente l'impostazione del
Database....!
Le tabelle dvono essere nel tuo caso 2.
Una tabella Materie e una Argomenti, queste tabelle andranno relazionate
1--Molti.
Il tuo DB č cosě o no...???
Superato questo č possibile fare quello che chiedi, altrimenti non c'č
verso.............!!!
CHIARO.
@Alex.

 compaiano solo quelli relativi a quella materia?
    Per esempio...
        Tabella: Argomenti
        IDArgomento (Numerico, Intero lungo, Primario, Univoco);
        Nome        (Testo, Univoco).
            Dati:
            IDArgomento Nome
            1           Argomento1
            2           Argomento2
            3           Argomento3
            4           Argomento4
        Tabella: Materie
        IDMateria (Numerico, Intero lungo, Primario, Univoco);
        Nome      (Testo, Univoco).
            Dati:
            IDMateria Nome
            1         Materia1
            2         Materia2
            3         Materia3
        Tabella: ArgomentiDiMaterie
        IDArgomentoDiMateria (Numerico, Intero lungo, Primario, Univoco);
        IDMateria            (Numerico, Intero lungo);
        IDArgomento          (Numerico, Intero lungo);
                             Chiave univoca: IDMateria, IDArgomento.
            Dati:
            IDArgomentoDiMateria IDMateria IDArgomento
            1                    1         1
            2                    1         2
            3                    2         3
            4                    3         1
            5                    3         3
            6                    3         4
        Query: Maschera1_ccMaterie
        SELECT TMa.Nome, TMa.IDMateria
        FROM [Materie] AS TMa
        ORDER BY TMa.Nome;
        Query: Maschera1_ccArgomentiDiMateria
        PARAMETERS [ccArgomentiDiMateria] Value;
        SELECT TAr.Nome, TAM.IDArgomentoDiMateria
        FROM
            [Argomenti] AS TAr
            INNER JOIN [ArgomentiDiMaterie] AS TAM
            ON TAr.IDArgomento=TAM.IDArgomento
        WHERE TAM.IDMateria=[ccMaterie]
        ORDER BY TAr.Nome;
        Maschera: Maschera1
        Casella combinata: ccMaterie
            Tipo origine riga: Tabella/query
            Origine riga: Maschera1_ccMaterie
            Numero colonne: 2
            Larghezza colonne: ;0
            Colonna associata: 2
            Dopo aggiornamento: =[ccArgomentiDiMateria].Requery
        Casella combinata: ccArgomentiDiMateria
            Tipo origine riga: Tabella/query
            Origine riga: Maschera1_ccArgomentiDiMateria
            Numero colonne: 2
            Larghezza colonne: ;0
            Colonna associata: 2
--
Ciao :-)
Maurizio
--------
?SPQR(C)
 X
--------


ha scritto:

--------------------------------
Inviato via 
http://usenet.libero.it

 mi scuso vivamente con te Alex perchè non sono stato capace di essere
chiaro abbastanza.
La soluzione è stata scritta da Maurizio (il fatto delle 10 tabelle era solo
la mia idea(errata) di risolvere questo problema) infatti la soluzione era
quella che tu avevi intuito ma non eri sicuro. Grazie ad entrambi perchè vi
siete interessati alla questione, non ti arrabbiare e ciao da Brindisi alla
prossima. Mino


 prossima. Mino
--



--------------------------------
Inviato via 
http://usenet.libero.it

 
Noto con piacere di non aver toppato....!!!
;-)
@Alex.
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

         ORDER BY TAr.Nome;
        Query: Maschera1_ccArgomentiDiMateria
        PARAMETERS [ccMaterie] Value;
        SELECT TAr.Nome, TAM.IDArgomentoDiMateria
        FROM
            [Argomenti] AS TAr
            INNER JOIN [ArgomentiDiMaterie] AS TAM
            ON TAr.IDArgomento=TAM.IDArgomento
        WHERE TAM.IDMateria=[ccMaterie]
        ORDER BY TAr.Nome;
--
