我遇到了生成复杂访问报表的问题(所谓复杂是指数据处理、字段数量可变等)。
让我更详细地解释一些我需要实现的东西:
- 某些字段根据查询中的某些值不应显示。 - 如果某个记录不存在,则应该出现一个漂亮的彩色(非常引人注目的)消息,而不是那里本来应该有的值(例如,假设日期字段中存在日期为03/04/2009和03/06/2009的记录,但没有日期为03/05/2009的记录。在显示与最后一个记录相关的数据之前,我应该打印类似于“未在03/05/2009上出现”的内容)。 - 条形图将作为数据而不是记录中的值,以计算一组记录中的其他内容(例如某个日期的所有成绩的平均值)。此图表的系列数也会根据记录中的值而变化,此图表不会出现在详细信息部分,而是出现在页面标题或某种组标题中。
还应该提到,查询是一个转换查询(更准确地说,是许多转换查询的内部联接),因此由查询返回的列数是可变的。虽然过去我无法将此查询绑定为报表的记录源,但现在 Access 停止抱怨了(请问有人可以澄清这一点吗?这是正常的吗?我不用担心它并将其用作记录源,还是应该避免使用它?)
实现我想要的有两个选项(目前我能看到的):
- 创建一个没有记录源但有很多未绑定字段的报表,并通过几个事件(Report_Open、Section_Format 等)和 DAO 的帮助手动设置这些字段的值。通过 VBA 也可以更改图表的数据系列。 - 将记录源设置为查询,并创建一些疯狂而令人困惑的 VBA 代码来处理数据并实现我需要的所有内容。
对我来说,选项 2 看起来会非常头痛和浪费时间,而我认为选项 1 几乎就像写入 Excel 文件一样(因为所有数据都是通过 DAO 获取的),这将更容易,因为我在那里几乎可以控制所有东西(但出于许多其他原因,我们希望所有东西都在访问报表中)。
虽然我有偏见并打算选择选项 1,但我发现这个选项存在几个问题,例如:
- 我找不到用 VBA 创建新页面的方法,因此我只能限制在第一页。 - 缺乏某种免费、在线、体面且完整的 VBA 和 Access 报表文档。
此外,如果方案二更可行,我当然愿意采取该方案,但我也需要一些建议,并且可能需要一些解决我在此问题中提到的问题的提示。
所以,问题是:
1.在哪里可以找到有关Access报告和VBA的合适和完整的文档?
2.如何在Access报告中创建页面,并选择要写入哪个页面?
3. 针对我手头的问题,是否会遇到任何瓶颈? 我是否应该考虑使用其他替代方案来解决 Access Reports 的问题(例如写入电子表格)?
让我更详细地解释一些我需要实现的东西:
- 某些字段根据查询中的某些值不应显示。 - 如果某个记录不存在,则应该出现一个漂亮的彩色(非常引人注目的)消息,而不是那里本来应该有的值(例如,假设日期字段中存在日期为03/04/2009和03/06/2009的记录,但没有日期为03/05/2009的记录。在显示与最后一个记录相关的数据之前,我应该打印类似于“未在03/05/2009上出现”的内容)。 - 条形图将作为数据而不是记录中的值,以计算一组记录中的其他内容(例如某个日期的所有成绩的平均值)。此图表的系列数也会根据记录中的值而变化,此图表不会出现在详细信息部分,而是出现在页面标题或某种组标题中。
还应该提到,查询是一个转换查询(更准确地说,是许多转换查询的内部联接),因此由查询返回的列数是可变的。虽然过去我无法将此查询绑定为报表的记录源,但现在 Access 停止抱怨了(请问有人可以澄清这一点吗?这是正常的吗?我不用担心它并将其用作记录源,还是应该避免使用它?)
实现我想要的有两个选项(目前我能看到的):
- 创建一个没有记录源但有很多未绑定字段的报表,并通过几个事件(Report_Open、Section_Format 等)和 DAO 的帮助手动设置这些字段的值。通过 VBA 也可以更改图表的数据系列。 - 将记录源设置为查询,并创建一些疯狂而令人困惑的 VBA 代码来处理数据并实现我需要的所有内容。
对我来说,选项 2 看起来会非常头痛和浪费时间,而我认为选项 1 几乎就像写入 Excel 文件一样(因为所有数据都是通过 DAO 获取的),这将更容易,因为我在那里几乎可以控制所有东西(但出于许多其他原因,我们希望所有东西都在访问报表中)。
虽然我有偏见并打算选择选项 1,但我发现这个选项存在几个问题,例如:
- 我找不到用 VBA 创建新页面的方法,因此我只能限制在第一页。 - 缺乏某种免费、在线、体面且完整的 VBA 和 Access 报表文档。
此外,如果方案二更可行,我当然愿意采取该方案,但我也需要一些建议,并且可能需要一些解决我在此问题中提到的问题的提示。
所以,问题是:
1.在哪里可以找到有关Access报告和VBA的合适和完整的文档?
2.如何在Access报告中创建页面,并选择要写入哪个页面?
3. 针对我手头的问题,是否会遇到任何瓶颈? 我是否应该考虑使用其他替代方案来解决 Access Reports 的问题(例如写入电子表格)?