En este
post iislas publicó una solución con SQL Server 2000. Basicamente se trata de crear una función que concatene la columna que te interesa de todas las filas en una sola cadena, y llamar a dicha función en el juego de resultados. SQL Server 2005 tiene facilidades para realizar esto sin crear la función.
En access se tiene que usar el mismo enfoque que con SQL server 2000. Primero hay que crear la función:
Código:
Public Function ConcatRows(Query As String, Optional Separador As String = ",") As String
Dim rs As DAO.Recordset
Dim result As String
Set rs = CurrentDb().OpenRecordset(Query, dbOpenForwardOnly)
Do While Not rs.EOF
result = result & rs.Fields(0).Value & Separador
rs.MoveNext
Loop
result = Left(result, Len(result) - Len(Separador))
ConcatRows = result
End Function
Y ahora puedes llamar a la función de esta manera:
Código:
SELECT NombreP,
ConcatRows("SELECT NombreH FROM TablaHijo WHERE Id_Padre = " & Id_Padre) AS NombresH
FROM TablaPadre;