首页 文章

访问交叉表报告

提问于
浏览
0

我是一个相当新的访问和数据库报告问题,我似乎无法搞清楚(即使有关于该主题的几个帖子:/)

该数据库包含来自200家商店的审计信息 . 审核答案是文本,而不是数字,审核日期可以是任何一天 . 我想创建一个报告,将审核问题列为行 Headers ,将最近的三个审核日期列为列 Headers ,将审核答案列为数据 .

我有一个表单,允许用户选择商店,并提供交叉表查询 . 它有效,但不限于最近三个日期 . 提供查询的表格也列出了访问次数,所以我认为我可以用最大访问次数做一些事但无济于事 .

现在的主要问题是我无法获得交叉表报告来生成任何数据 . 我已经在我尝试过的那天发现了几个示例代码片段,但每个代码都尝试生成一行和一个总计 . 由于这些是文本数据字段,总计将无法工作,虽然我尝试删除我认为合适的代码片段,但它仍然无法生成正确的报告 .

我想尝试的第二个选项是将交叉表查询导出到excel但我也被卡在那里 .

任何帮助都将非常感激 . 谢谢!

1 回答

  • 0

    根据您的技能水平,这可能很难 . 我的方法是一堆子查询,但它不会很漂亮 . 假设您的商店由StoreID唯一标识,您的审核日期为审核日期,您的审核结果位于单个文本字段AuditResults中 . 你需要弄清楚细节,但这是一个粗略的概述:

    将所有数据放入一个表中,每个StoreID 1-3行(每个审核日期1个):

    • 创建一个按StoreID分组并返回max(AuditDate)的简单查询 . 叫它 Qry1a .

    • 将Qry1a加入审计表以返回最近审计的结果 . 包含硬编码为1的 daterank 列 . 将其命名为 Qry1b .

    • 重复a和b两次以获得最近第二次和第三次审核的结果(您可以将连接加入Qry1和Qry2以删除这些结果) . 称那些 Qry2bQry3b .

    • 对源表和 Qry1bQry2bQry3b 使用内部联接,进行每个StoreID最多返回3行的查询 .

    使用此新表,按StoreID创建一个新查询和分组:

    • 对于第一列,您将使用类似 LastAudit: max(iif(DateRank=1,AuditResults,"")) 的内容

    • 重复上一步以获得接下来的2次审核,分别将daterank更改为2和3 .

    这种方法的优点是它可以处理少于3次审计的商店,或者如果你有不断变化的商店列表(因为storeIDs在任何地方都没有硬编码) .

相关问题