You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何创建MS Access查询按ID汇总志愿者各项目工时?

解决Access志愿者工时合并报表问题

第一步:创建正确的交叉表查询(核心)

你之前的交叉表查询没达到效果,是因为字段设置不对,按下面步骤来:

  • 打开Access,新建查询设计,添加「联系人表」和「志愿统计表」,手动关联两个表的ID字段(即使没设参照完整性也能关联)。
  • 在顶部「设计」选项卡,点击「交叉表」,把查询类型切换为交叉表。
  • 添加以下字段并设置参数:
    1. 联系人表的ID:
      • 交叉表:行标题
      • 总计:Group By
    2. 联系人表的姓名:
      • 交叉表:行标题
      • 总计:Group By
      • 排序:升序(解决按姓名排序的问题)
    3. 志愿统计表的项目名称:
      • 交叉表:列标题
      • 总计:Group By
    4. 志愿统计表的工时:
      • 交叉表:值
      • 总计:Sum
      • 字段名可改为总工时,或直接用表达式 Sum(Nz([工时], 0))(把空值转成0,避免显示Null)
  • 点击运行按钮,就能得到每个志愿者一行、各项目工时单独列出来的结果。

第二步:基于交叉表查询制作报表

  • 新建报表,选择「报表向导」,数据源选刚才做好的交叉表查询,把所有字段都选进报表。
  • 向导里不需要设置分组(因为查询已经按ID/姓名分组好了),直接设置排序(选姓名升序),再选择报表样式。
  • 生成的报表里,每个志愿者的姓名只会显示一次,所有项目的工时都在同一行,完全符合需求。

额外注意事项

  • 如果项目名称有格式问题(比如空格、大小写不一致),会导致交叉表生成多余列,建议先整理志愿统计表的项目名称字段,或者在交叉表查询里用Trim([项目名称])作为列标题的字段,统一格式。
  • 如果后续新增项目,交叉表查询会自动把新项目作为新列,报表刷新后也会同步显示,不用手动调整。

内容的提问来源于stack exchange,提问作者Josh Bellingham

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.29 09:43:49