将列连接到MS Access中的单个行

时间:2013-12-16 13:45:24

标签: ms-access

我在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

有人可以帮忙吗?

此致

1 个答案:

答案 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

请注意,此解决方案对于大型数据来说可能非常慢