MS Access报告字段值作为标题,其他字段值在表格下方

时间:2017-08-10 16:16:01

标签: ms-access report

在Microsoft Access报表中,如何将字段的每条记录显示为列标题,并在其下方的列记录中显示其他字段的记录。

我的查询以下列格式提供数据:

|        Heading        | Data True to All Records1 | More Data True to All Records2 |              |
|:---------------------:|:-------------------------:|:------------------------------:|:------------:|
|      ------------     |        ------------       |          ------------          | ------------ |
|          Item         |           Code 1          |             Code 2             |    Code 3    |
| Item Characteristic 1 |            Blue           |               Red              |     Green    |
| Item Characteristic 2 |             48            |               50               |      99      |
|      Other Fields     |             …             |                …               |       …      |
|      ------------     |        ------------       |          ------------          | ------------ |
|         Footer        | Data True to All Records3 | More Data True to All Records4 |              |

我希望我的报告看起来像这样:

| Heading |       |    |
|:-------:|:-----:|:--:|
|   ----  |       |    |
|  Code 1 |  Blue | 48 |
|         |       |    |
|  Code 2 |  Red  | 50 |
|         |       |    |
|  Code 3 | Green | 99 |
|   ---   |       |    |
|  Footer |       |    |

目前,我只能以以下格式获取数据:

{{1}}

每条记录都会产生一个新的'行'在报告中。

有人可以帮忙吗?

2 个答案:

答案 0 :(得分:0)

表需要一个唯一的记录标识符 - 应该提供自动编号类型字段,然后考虑以下内容。

查询1:

SELECT RecID, ID, "Item" AS Category, Item AS Data FROM Tablename
UNION SELECT RecID, ID, "ItemChar1", ItemChar1 FROM Tablename
UNION SELECT RecID, ID, "ItemChar2", ItemChar2 FROM Tablename;

QUERY2:

TRANSFORM First(Query1.Data) AS FirstOfData
SELECT Query1.ID, Query1.Category
FROM Query1
GROUP BY Query1.ID, Query1.Category
PIVOT Query1.RecID;

答案 1 :(得分:0)

对于后人,我通过设置一个未绑定标签表来解决这个问题。

我为这些标签中的每一个赋予了控制名称x-y,其中x是列号,y是行号。

然后我遍历每个列和行,并将标签的标题更改为我的RecordSet中的值。

(Form("FormName").Controls.Item(x & "-" & y)).Caption = .Fields("FieldName")