【发布时间】:2023-03-11 03:21:01
【问题描述】:
我遇到了生成复杂访问报告的问题(复杂是指数据处理、可变数量的字段等)。
让我更详细地解释一些我需要实现的东西:
- 某些字段不应根据查询中的某些值显示
- 如果某条记录不存在,则应显示一条漂亮的彩色(非常明显)消息,而不是那里的值(例如,假设存在日期字段中包含 03/04/2009 的记录,日期字段中 03/06/2009 的记录也存在,但不存在 03/05/2009 的记录。在显示与最后一条记录相关的数据之前,我应该打印类似“03/05 没有出现” /2009")
- 一个条形图,它的数据不是记录中的值,而是根据一组记录计算的其他数据(例如某个日期的所有成绩的平均值)。此图表中的系列数也根据记录中的值而有所不同,此图表不会位于详细信息部分,而是位于页面标题或某种组标题中。
还需要说明的是,该查询是一个TRANSFORM查询(更准确地说,是许多TRANSFORM查询的INNER JOIN),因此查询返回的列数会有所不同。虽然在过去我一直无法将此查询绑定为报告的记录源,但不知何故 Access 现在停止了抱怨(有人可以澄清一下吗?这是否正常,我应该不用担心并将其用作记录源或我应该避免吗?)
有两种选择可以实现我想要的(我现在可以看到):
- 创建一个没有记录源和大量未绑定字段的报表,并通过多个事件(Report_Open、Section_Format 等)并在 DAO 的帮助下手动设置这些字段的值。也可以通过 VBA 更改图表的数据系列。
- 将记录源设置为查询,并创建一些疯狂而令人困惑的 VBA 代码来处理数据并实现我需要的一切。
在我看来,选项 2 将是一个巨大的头痛和浪费时间,我认识到选项 1 非常类似于写入 Excel 文件(因为所有数据都是通过 DAO 获得的),这将是容易得多,因为我可以更好地控制那里的几乎所有内容(但出于许多其他原因,我们希望所有内容都包含在访问报告中)
虽然我有偏见并打算选择选项 1,但我发现此选项存在一些问题,例如:
- 我找不到使用 VBA 在报表中创建新页面的方法,因此我仅限于第一页。
- 缺乏关于 VBA 和访问报告的某种免费、在线、体面和完整的文档
另外,如果选项 2 更可行,我当然愿意接受,但我还需要一些建议,也许还有一些技巧来解决我在这个问题中提到的问题。
所以,问题是:
- 在哪里可以找到有关 Access Reports 和 VBA 的一些体面和完整的文档?
- 如何在访问报告中创建页面,并选择要写入的页面?
- 对于我手头的问题,我是否会遇到任何我应该知道的瓶颈?我是否应该已经在考虑 Access Reports 的替代方案(例如写入电子表格?)
【问题讨论】:
-
您是否考虑过在 Word(自动化)或 HTML 中创建报告?
-
我想尽可能坚持访问报告,仅在必要时切换