查询将多个行值合并到MS-Access 2003中的一个字段中?
问题描述:
可能重复:
Combine rows in Access 2007查询将多个行值合并到MS-Access 2003中的一个字段中?
如果我有两个表:让我们说OrderStatus和评论,我该怎么总结这是由相关的一个订单的所有意见,让我可以把他们放到一个领域?
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不能自动列出逗号分隔的多个值。
感谢您的帮助!
答
VBA是要走的路。但是,我不会从查询生成器中调用它。我将在您的原始表中添加一个“注释”字段,并使用Recordset对象创建一个独立的VBA函数来遍历第二个表中的记录,并将数据粘贴到注释字段中。像这样的功能只需要30,000条记录就可以很快运行。
请参阅:http://stackoverflow.com/questions/92698/combine-rows-in-access-2007/93863#93863 – Fionnuala
就像我说过的,我已经用VBA以类似于您所建议的线程的方式进行了管理。然而,VBA比SQL慢得多。 – johnnyciao