Queries |
2.30 Unire in una query i valori dello stesso campo di record diversi |
Roberto |
Ipotizziamo di avere una tabella chiamata Tabella1 che abbia la seguente struttura: ID Contatore e chiave primaria Numeratore Numerico Descrizione Testoe che abbia il seguente contenuto: ID Numeratore Descrizione -------------------------------------------- 1 100 Pippo 2 110 Pluto 3 110 è un 4 110 canePer raggruppare in un unico campo le descrizioni di ogni Numeratore e quindi visualizzare in una query quanto segue: Numeratore Descrizione --------------------------------- 100 Pippo 110 Pluto è un caneMemorizzare in un modulo del daqtabase la seguente funzione: Public Function UnisciValori(MioCampo As Long) As String Dim rst As DAO.Recordset Dim strSQL As String UnisciValori = "" strSQL = "SELECT * FROM Tabella1 WHERE Numeratore =" & MioCampo & " ORDER BY ID;" Set rst = CurrentDb().OpenRecordset(strSQL) rst.MoveFirst Do Until rst.EOF UnisciValori = UnisciValori & rst!Descrizione & " " rst.MoveNext Loop UnisciValori = Left(UnisciValori, Len(UnisciValori) - 1) Set rst = Nothing End Functionquindi creare una query che abbia il seguente codice SQL: SELECT DISTINCT Tabella1.Numeratore, UnisciValori([Numeratore]) AS Descrizione FROM Tabella1; NOTA La funzione UnisciValori fa riferimento alla libreria Microsoft DAO quindi, se si usa una versione di Access successiva ad Access 97, aggiungera al database i riferimenti a Microsoft DAO 3.6 Object Library |