Access / VBA-创建具有分组记录的新表

时间:2018-06-29 06:46:41

标签: sql vba ms-access access-vba

我一直在思考自己的问题,并在这里和互联网上进行了研究。我似乎没有更进一步...

我有一个包含不同表的数据库。其中之一就像一个客户表。每个客户每个月都必须发送表格(最多3张),这在第二张表中。

它看起来像这样:

**tblReportedFiles**
ID Month Form
1 201803 1
2 201803 1
1 201803 2
2 201804 2
3 201804 3
1 201804 1

我的目标是创建将使用以下数据集创建新表的代码:

    clientID - ReportingMonth - Form 1 - Form 2 - Form 3
        1         201803         true     true     false
        2         201803         true     false    false
        3         201803         false    false    false
        1         201804         true     false    false
        2         201804         false    true     false
        3         201804         false    false    true

我什么都做不了。我玩过SQL和VBA,但是没有正确的方向。

您有什么想法吗?

1 个答案:

答案 0 :(得分:2)

您可以使用交叉表(枢轴)查询来实现此目的。这比Jaime建议的解决方案更加灵活,因为当新表格添加到表中时,它将自动创建列。

TRANSFORM CBool(Count([Form]))
SELECT ID, [Month]
FROM tblReportedFiles
GROUP BY ID, [Month]
PIVOT "Form " & [Form]

我们都在将Form转换为转换为布尔值的计数,并以Form进行透视。这意味着,如果特定的Form值出现在分组变量中,则计数将为1,并将其强制转换为布尔值True,否则,计数将为0,强制转换到布尔False