Buongiorno,
sto portando avanti un database di giochi, a tempo perso e per impratichirmi un poco con Access
Il database è formato da 3 tabelle principali più alcune secondarie
Le 3 principali sono
tblGiochi, nella quale ho un campo chiave IDNomeLocale
tblRelazioniLocali, nella quale ho 3 campi chiave IDNomeLocale, TAGOrigine, IDOrigine
tblOrigini, nella quale ho 2 campi chiave TAGOrigine, IDOrigine
La tblGiochi contiene i titoli dei giochi, con il nome locale che gli attribuisco
questi titoli sono referenziati con le Origini (i siti dai quali recupero i titoli), tramite la relazione di tblRelazioniLocali
Posso avere più origini (cioè siti differenti) relazionate con lo stesso record di tblGiochi
La maschera principale di fatto riprende quelle che sono le relazioni tra le tabelle
Il form principale frmGIOCHI riprende i dati da tblGiochi, poi c'è una sottomaschera frmRelazioniLocali, che contiene una sottomaschera frmOrigini
Fintanto che devo applicare dei filtri ai dati principali (che provengono da tblGiochi), non ho problemi (o utilizzo il pulsante filtro in base a maschera o mi creo dei pulsanti con codice VBA)
Ora però vorrei filtrare tutti i giochi di tblGiochi che hanno un particolare TAGOrigine (passando perciò dalla tblRelazioniLocali)
Di solito mi creo una query e poi copio il codice sql, ma questa volta non funziona ed ottengo l'errore
"È stata scritta una sottoquery che può restituire più campi senza la parola riservata EXISTS nella clausola FROM della query principale. Modificare l'istruzione SELECT della sottoquery per richiedere soltanto un campo."
Questo è il codice che ho ottenuto tramite la creazione della query
SELECT tblGiochi.*
FROM tblGiochi INNER JOIN tblRelazioniLocali ON tblGiochi.IDNomeLocale = tblRelazioniLocali.IDNomeLocale
WHERE (((tblRelazioniLocali.TAGOrigine)="ITCH"));
Ho provato a controllare in internet su come adoperare EXISTS, e fatto poi diversi tentativi, ma nessuno che mi abbia dato il risultato sperato
Tramite ciò che ho letto su
https://www.w3schools.com/sql/sql_exists.as
ho riscritto il codice del filtro come segue
((tblGiochi.*)
WHERE EXISTS
(
SELECT *
FROM tblGiochi
INNER JOIN tblRelazioniLocali ON tblGiochi.IDNomeLocale = tblRelazioniLocali.IDNomeLocale
WHERE (((tblRelazioniLocali.TAGOrigine)="itch"));
)
)
Ma in questo modo non ottengo nemmeno un messaggio di errore
Potreste dirmi dove sto sbagliando?
Grazie
Pierpaolo