Newsgroup: it.comp.appl.access
Titolo: Problema con tabelle in relazione "Molti a molti"...

Salve,
sono un novizio sia con i database in generale che con access in 
particolare, quindi vi prego di perdonarmi se dico qualche castroneria...
Io ho due tabelle, diciamo (per rendere l'idea e per usare un esempio che ho 
trovato in diversi tutorial) una tabella "Corsi universitari" e una tabella 
"Studenti universitari". Le due tabelle saranno legate da una relazione 
"molti a molti", dato che ogni studente pu� essere iscritto a pi� di un 
corso, e ad ogni corso vi sono iscritti pi� di uno studente.
Per gestire la relazione creo quindi una terza tabella "iscrizioni", che 
contiene solo i campi "ID Studente" e "ID corso".
A questo punto, io voglio stampare la lista di tutti gli studenti iscritti 
ad un certo corso. Cio� ho bisogno di cercare nella tabella "iscrizioni" 
tutti i record che hanno un valore che seleziono io di "ID corso", quindi 
prendere i corrispettivi valori di "ID studente", e crearmi la maschera 
elencando tutti i record della tabella "Studenti universitari" che abbiano 
il record "ID studente" corrispondente.... ma in pratica, come devo fare?!
Non sono riuscito a realizzare questa cosa, sono sicuro che � una fesseria, 
ma non ci sono riuscito.
Mi dareste una mano?
Grazie. 

MonsterMash ha scritto:

Select corsi.IdCorso, studenti.IdStudente
from corsi, iscrizioni, studenti
where corsi.idcorso = iscrizioni.Idcorso and iscrizioni.IdStudente = 
studenti.IdStudente and corsi.idCorso = [Inserire IdCorso]
--
ac

 studenti.IdStudente and corsi.idCorso = [Inserire IdCorso]
Perfetto, grazie!
Tra l'altro questo mi da' uno spunto per fare qualche esperimento 
direttamente con i comandi sql, invece di usare sempre l'interfaccia grafica 
di access...
Una cosa: � possibile passare un parametro ad una query? Per esempio, 
quell'idCorso da inserire dovrebbe essere un valore scelto attraverso una 
maschera. Ma non so come si fa a far passare un valore ad una query!
Grazie mille.
Ciao. 

 maschera. Ma non so come si fa a far passare un valore ad una query!
Ho provato a scrivere:
SELECT ID_Utente, Nome, Cognome, ID_Corso, Nome_Corso
FROM TUtenti, TCorsi
WHERE TUtenti.ID_Utente=MUtenti.ID_Utente.Value And TCorsi.ID_Corso IN 
(SELECT TCorsi.ID_Corso
FROM TCorsi, TIscrizioneUtenti, TUtenti
WHERE TCorsi.ID_Corso=TIscrizioneUtenti.ID_Corso And 
TIscrizioneUtenti.ID_Utente=TUtenti.ID_Utente And 
TUtenti.ID_Utente=MUtenti.ID_Utente.Value);
Dove MUtenti � la maschera in cui visualizzo i dettagli anagrafici di 
ciascun utente. L'idea �: quando sono nel record corrispondente all'utente 
di interesse, premo un tasto: "Visualizza corsi frequentati", che mi apre la 
query scritta qui su, e mi fa quindi l'elenco dei corsi frequentati 
dall'utente. Ma cos� non funziona, access mi chiede sempre di inserire 
manualmente il valore "MUtenti.ID_Utente.Value", che evidentemente non 
riconosce e considera una variabile vuota...
Come faccio per fargli leggere il valore della casella di testo della 
maschera?
Grazie, ciao. 

MonsterMash ha scritto:

In questi casi la cosa migliore e' una sottomaschera (tipo fogliodati o 
maschera continua) con origine dati la join fra tabella corsi e 
iscrizioni e come campo di link l'IDStudente.
In questo modo ad ogni spostamento di record di studenti automaticamente 
  sono resi visibili i corsi di appartenenza.
E' possible fare una query con parametro ma mi sono dimenticato come si 
fa poiche' non la uso, cmq nel tuo caso MUtenti.ID_Utente.Value diventa
Forms!MUtenti!ID_Utente
--
ac

>> una maschera. Ma non so come si fa a far passare un valore ad una query!
P.S.  Problema diverso = Nuovo Post. Normalmente si usa cosi'.
--
ac