| 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 cane
Per 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 cane
Memorizzare 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 Function
quindi 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 |