Ok fatto... ho coinvolto solo 3 tabelle, questo il codice:
SELECT TrackID, Title FROM trackHeader WHERE TrackID IN (
SELECT DISTINCT TrackContribute.TrackID
FROM (TrackContribute INNER JOIN TrackContribute AS TrackContribute_1 ON TrackContribute.TrackID = TrackContribute_1.TrackID) INNER JOIN TrackContribute AS TrackContribute_2 ON TrackContribute_1.TrackID = TrackContribute_2.TrackID
WHERE (((TrackContribute.nome)="simone") AND ((TrackContribute_1.nome)="luigi") AND ((TrackContribute_2.nome)="massimo")));
ora provo provo ad aggiungere le altre tabelle, genre e mood?? cosi':
SELECT trackHeader.TrackID, trackHeader.Title
FROM trackHeader
WHERE (((trackHeader.[TrackID]) In (SELECT DISTINCT TrackContribute.TrackID
FROM (((((((TrackContribute INNER JOIN TrackContribute AS TrackContribute_1 ON TrackContribute.TrackID = TrackContribute_1.TrackID) INNER JOIN TrackContribute AS TrackContribute_2 ON TrackContribute_1.TrackID = TrackContribute_2.TrackID) INNER JOIN trackGenre ON TrackContribute_2.TrackID = trackGenre.trackID) INNER JOIN trackGenre AS trackGenre_1 ON trackGenre.trackID = trackGenre_1.trackID) INNER JOIN trackGenre AS trackGenre_2 ON trackGenre_1.trackID = trackGenre_2.trackID) INNER JOIN trackMood ON trackGenre_2.trackID = trackMood.TrackID) INNER JOIN trackMood AS trackMood_1 ON trackMood.TrackID = trackMood_1.TrackID) INNER JOIN trackMood AS trackMood_2 ON trackMood_1.TrackID = trackMood_2.TrackID
WHERE (((TrackContribute.nome)="simone") AND ((TrackContribute_1.nome)="luigi") AND ((TrackContribute_2.nome)="massimo") AND ((trackGenre.genre)="pop") AND ((trackGenre_1.genre)="indie") AND ((trackGenre_2.genre)="rock") AND ((trackMood.mood)="Bitter") AND ((trackMood_1.mood)="Loving") AND ((trackMood_2.mood)="Passionate")))));
Cosi' la query funziona, ora non so bene come associarla ai campi.
non so se sia corretto quello che ho in testa o se ci sia un modo piu' semplice ed efficente...
pensavo di seguire l'esempio di prima, visto che a cambiare e' solo la where... tipo se ho tutti i campi vuoti uso la query senza il where; se ho qualche campo non nullo parto dal primo e controllo, se non e' nullo aggiunge TrackContribute.nome = """ & cboNome1 & """
poi controlla il secondo e se non e' nullo aggiunge un altro pezzo alla query....
credo sia fattibile anche se e' piuttosto incastrato come metodo...
Phil hai qualche altra dritta da spacciarmi??