我在Access 2010数据库中的查询中得到以下结果:
Name Column1 Column2 Column3
-----------------------------------------------------------
Example1 52 447 52447
Example1 52 455 52455
Example1 52 454 52454
Example1 52 453 52453
Example2 100 000 100000
Example2 101 001 999999
我需要转换这些数据,将每列连接到一行,例如:
Name Column1 Column2 Column3
------------------------------------------------------------------
Example1 52 447,455,454,453 52447,52455,52454,52453
Example2 100,101 000,001 100000, 999999
由于我还是Access的新手,我为此搜索了一个VBA函数,但是我发现的每个函数都没有考虑到对我来说很重要的一点:
这些行中的一些列有超过255个字符(总和的字符数),所以我将无法使用我找到的函数;
这是一个处理类似案例的主题,但它仍然不适合我的解决方案:
Microsoft Access condense multiple lines in a table
这是由Allen Browne撰写的:http://allenbrowne.com/func-concat.html
有人可以帮忙吗?
此致
答案 0 :(得分:1)
我认为您找到的第二个解决方案是有效的:http://allenbrowne.com/func-concat.html 您需要更改条件,因为您的表具有双键(name,column1)
您的选择应该是这样的:
SELECT Name, Column1,
ConcatRelated("Column2", "MyTable", "Name = '" & [Name] & "' And Column1 = " & [Column1]) as C2,
ConcatRelated("Column3", "MyTable", "Name = '" & [Name] & "' And Column1 = " & [Column1]) as C3
FROM MyTable
请注意,此解决方案对于大型数据来说可能非常慢