访问交叉表多行作为列标题?

问题描述

我正在尝试使用交叉表查询来模拟MS Access中的电子表格布局(图1)。使用查询构建器设置多个行标题是很琐碎的,但是我似乎找不到一种仅通过交换X和Y轴来获得相同信息的方法

我是sql的新手,因此,如果我指出正确的方向,则也许可以找出一些新的查询技术。

enter image description here

enter image description here

enter image description here

解决方法

最简单的答案是,除非您知道数据中有多少个Prekit,否则您将无法执行此操作。我的官方回答是,通常在构建数据库时,您想向任何利益相关者展示该数据库可以复制其文书工作。但是,尽管访问可以执行交叉表查询,但是访问报告功能不适用于交叉表查询。您的交叉表确实包含所有信息,因此我建议您查找Access的导出功能。 Access可以重新创建原始Excel文件,并将数据插入该文件,尽管您可能必须编写一些VBA代码以获取详细信息。 现在,要回答您的实际问题,Excel文件具有清晰的标题和数据部分,并且我们在交叉表中具有所有数据,问题是格式化,这是Access Reports的工作。但是访问报告是自以为是的。预期访问报告将在设计时绑定,这使得绑定到交叉表查询变得困难。这是指向更详细的说明的链接,以及针对一种类型的数据的变通方法。
https://www.microsoft.com/en-us/microsoft-365/blog/2012/05/23/using-crosstab-queries-in-reports/ 但是对于我的样本数据,我知道列数,所以:

enter image description here

enter image description here

enter image description here

Query1对数据进行分组,因此报表的标题部分具有正确的编号。 Query2完成交叉表。报告标题部分中的文本框通过dlookup函数绑定到Query1。 enter image description here

enter image description here

Query2以query1开头:

enter image description here

enter image description here

查询2是报表的数据源,我们从query1中查找标头值。以下是该报告:

enter image description here

'control source for kitting vendor textbox 1:
=DLookUp("VENDOR_NAME","Query1","ROW_ID = 1")

'control source for # of stores textbox 7:
=DLookUp("NO_OF_STORES","ROW_ID = 7")

同样,除非您知道交叉表产生了多少列,否则您将无法制作此报告。每次有人制作新工具包时,报告都需要更新。