基于MS Access中的2个相邻值连接值

时间:2015-02-27 21:20:55

标签: ms-access concatenation

我有一张excel表,其中500,000行已导入MS Access。它有以下格式的3列

 Staff    Locations     Roles
   1      Location1     Role1
   1      Location2     Role1
   2      Location2     Role2
   3      Location3     Role3
   3      Location3     Role4

我试图以下面的格式获得输出

 Staff      Locations                 Roles
   1        Location1, Location2      Role1
   2        Location2                 Role2
   3        Location3                 Role3
   3        Location3                 Role4

有关如何在MS Access中完成相同操作的任何建议?

提前致谢

1 个答案:

答案 0 :(得分:2)

我不确定@Bill提供的代码是如何工作的,因为我没有使用它或测试它,尽管我已经使用了一个已经证明对需求更灵活的代码。该函数由Allen Browne编写,名为ConcatRelated

该函数接受三个主要参数,类似于域函数。

  1. 您尝试合并/连接的字段是您的第一个参数。
  2. 您正在关注的,是您的第二个参数。
  3. 应分组的条件
  4. 还有另外两个可选参数,你可以告诉你如何命令结果(第四个参数)和你想要的分隔符(第五个参数),默认是逗号

    然后该函数可以在Query中使用,例如。

    SELECT
        Staff,      
        ConcatRelated("Locations", "yourTableName", "Staff = " & yourTableName.Staff & " AND Roles = '" yourTableName.Roles "'") As NewLocation              
        Roles
    FROM
        yourTableName
    GROUP BY 
        Staff,
        Roles;
    

    那应该给你正确的信息。