[MS Access] query da tabelle relazionate

keyboardistdenny

Utente Attivo
30 Ago 2013
41
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
 
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.
 
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
 
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
 
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
 

Discussioni simili