La tabla podría tener una columna de secuencia, lo que le da una clave primaria única de ColumnA-secuencia:
table: t1
ColumnA sequence ColumnB
1 1 abc
1 2 pqr
1 3 xyz
2 1 efg
2 2 hij
3 1 asd
Y una tabla cruzada podría ser creado:
query: x1
TRANSFORM Min([columnB] & ", ") AS Expr1
SELECT t1.columnA
FROM t1
GROUP BY t1.columnA
PIVOT t1.sequence;
columnA 1 2 3
1 abc, pqr, xyz,
2 efg, hij,
3 asd,
a continuación, una consulta final puede combinar las columnas y retire la última coma:
SELECT x1.columnA, Left([1] & [2] & [3],Len([1] & [2] & [3])-2) AS columnB FROM x1;
columnA columnB
1 abc, pqr, xyz
2 efg, hij
3 asd
para automatizar el llenado de la secuencia, el siguiente código de VBA se puede utilizar:
Sub fill_sequence_t1()
Dim i: i = 1
Do While DCount("*", "t1", "sequence IS NULL") > 0
DoCmd.RunSQL "SELECT t1.columnA, Min(t1.columnB) AS columnB_min INTO t2" & _
" FROM t1 WHERE t1.sequence IS NULL GROUP BY t1.columnA;"
DoCmd.RunSQL "UPDATE t1 INNER JOIN t2 ON (t1.columnA = t2.columnA)" & _
" AND (t1.columnB = t2.columnB_min) SET t1.sequence=" & i
CurrentDb.TableDefs.Delete "t2"
i = i + 1
Loop
End Sub
1) Standard SQL no tiene 'Concat' función de conjunto: ¿cuál sería el tipo de datos resultante ser? ¿Violaría 1NF? sería un set? ¿cómo se podrían consultar esos datos? etc .; 2) Access2007 introdujo tipos de múltiples valores (http://www.theregister.co.uk/2006/07/18/multivalued_datatypes_access/print.html); 3) ¿Has considerado un informe? El que se envía con Access es bastante agradable. – onedaywhen