在MS-Access 2003中将多个行值组合到一个字段中的查询?

时间:2011-09-04 11:27:56

标签: ms-access csv

  

可能重复:
  Combine rows in Access 2007

如果我有两个表:让我们说OrderStatus和Comments,我怎样才能总结出与一个订单相关的所有评论,以便我可以把它们放到一个字段中?

Tabel OrderStatus:

OrderID      OrderStatus       OrderDate
64           OK                13.08.2011
77           Deleted           21.06.2011
99           OK                18.04.2011

表评论:

CommID       CommOrder         CommText
1            64                "EAN 304"
2            64                "resent"
3            64                "no. 499"
4            99                "in stock"
5            99                "EAN 111"

我想要的是什么:

OrderID    OrderStatus         Comments
64         OK                  "EAN 304, resent, no. 499"
99         OK                  "in stock, EAN 111"

与订单状态相关的评论总数未知。

我正在尝试使用Access SQL子查询来实现此目的。我已经使用从查询构建器调用的自己的VBA例程进行管理,但OrderStatus表有超过30,000条记录,而VBA太慢(生成报告需要10分钟以上)。在Microsoft Access中,SQL比VBA快得多,但可能很复杂。 从Access 2007开始,Microsoft已包含multivalued fields,但我使用的Access 2003无法自动列出以逗号分隔的多个值。

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

VBA是要走的路。但是,我不会从查询构建器中调用它。我会在原始表中添加一个“Comments”字段,并使用Recordset对象创建一个独立的VBA函数来遍历第二个表中的记录,并将数据粘贴到Comments字段中。只有30,000条记录这样的功能应该可以非常快速地运行。