[MS Access] query da tabelle relazionate

keyboardistdenny

Utente Attivo
30 Ago 2013
40
0
6
roma
Salve ho realizzato
Codice:
SELECT [TESTI].[TESTO], AUTORI.[NOMINATIVO]
 FROM (Lookup_TESTI_AUTORI INNER JOIN TESTI ON [Lookup_TESTI_AUTORI].[TESTIID]=[TESTI].ID) INNER JOIN AUTORI ON [Lookup_TESTI_AUTORI].AUTHORID=AUTORI.ID
occorre stampare in output solo ed esclusivamente i TESTI scritti da due AUTORI insieme , infatti essendo relazione molti a molti capita di avere lo stesso testo scritto da due o più autori insieme
come posso fare?
grazie
 

CarlettoFed

Utente Attivo
17 Lug 2017
82
1
8
67
La query deve essere la seguente:
Codice:
SELECT TESTI.TESTO, RicercaAutori([ID]) AS AutoriTesto FROM TESTI;
e poi devi creare un Modulo vba ed inserire in esso la seguente funzione publica:
Codice:
Public Function RicercaAutori(lngIDTesto As Long) As String
Dim rs As DAO.Recordset
    Set rs = CurrentDb.OpenRecordset("SELECT AUTORI.AUTORE FROM AUTORI INNER JOIN Lookup_TESTI_AUTORI ON AUTORI.ID = Lookup_TESTI_AUTORI.AUTHORID WHERE Lookup_TESTI_AUTORI.TESTIID = " & lngIDTesto)
    Do While Not rs.EOF
        RicercaAutori = RicercaAutori & IIf(RicercaAutori = "", "", ", ") & rs!AUTORE
        rs.MoveNext
    Loop
End Function
quando lanci la query questa richiamerà per ogni record la funzione RicercaAutori passandogli l'ID relativo al testo e la funzione restituirà gli Autori che lo hanno scritto.
 

keyboardistdenny

Utente Attivo
30 Ago 2013
40
0
6
roma
grazie mille ma se volessi utilizzare esclusivamente SQL e i criteri di access?
io avevo pensato di realizzare altre due tabelle mettendo nei CRITERI nella prima autore 1, nella seconda autore 2
a questo punto sono arrivato..adesso dovrei collegare le due sottotabelle
 

CarlettoFed

Utente Attivo
17 Lug 2017
82
1
8
67
Il procedimento corretto sarebbe quello che ti ho suggerito.
Siccome non capisco quello che invece tu hai fatto forse se alleghi il file è più facile darti un consiglio
 

keyboardistdenny

Utente Attivo
30 Ago 2013
40
0
6
roma
Sto facendo le prove con access 2007
Dopo aver creato le tre tabelle relazionali, e aver scelto in VISUALIZZA STRUTTURA i due campi TESTO e AUTORE, ho semplicemente scritto alla voce CRITERI il nominativo di autore1 ,ed ho salvato la prima query

ho ripetuto l' operazione scrivendo sempre a CRITERI questa volta il nominativo di autore2 e ho salvato anche questa

ora vorrei semplicemente collegare le due query in modo tale da avere in tre colonne
-autore1
-autore2
-TESTO
Più chiaro di cosi non riesco a spiegarlo...
utilizzerò eventualmente VBA