MS Access工时跟踪求助:实现考勤报表带条件的累计求和功能
最简实现方案(无需写代码/写查询,用Access自带报表功能即可完成)
前置准备
先确认你已经建好了基础查询,包含所需的「员工姓名」「打卡地点」「班次总工时」字段,同时在查询中提前设置好记录排序规则(比如按打卡时间升序),累计求和的顺序会和查询的排序完全匹配。
1. 按打卡地点分组的报表累计设置
- 新建/打开对应报表的「设计视图」,点击顶部菜单栏「设计」→「分组和排序」,添加分组字段为「打卡地点」,按需开启组页眉/组页脚
- 在「详细信息」栏添加常规显示字段后,新增一个文本框控件用于展示累计工时
- 右键该文本框打开「属性表」,按以下参数设置:
- 控件来源:
=[班次总工时] - 运行总和:选择「工作组之上」,该设置会在同一个打卡地点分组内累加工时,切换到下一个地点时自动清零重新计算
- 格式:按需设置为数字格式,匹配你们的工时统计精度要求
- 控件来源:
2. 按员工分组的报表累计设置
操作逻辑和上述完全一致,仅修改2处配置即可:
- 分组和排序中把分组字段修改为「员工姓名」
- 累计工时文本框的「运行总和」仍保留「工作组之上」设置,即可实现同一员工所有打卡记录的工时累计,切换下一位员工时自动清零
如果后续需要统计全表所有记录的总累计,只要把「运行总和」改为「全部之上」即可。
如果需要带条件累计(比如排除异常打卡记录),只要把文本框的控件来源改为条件表达式即可,比如只统计正常出勤的工时可以写为=IIf([出勤状态]="正常",[班次总工时],0),运行总和设置无需调整。
内容的提问来源于stack exchange,提问作者Dexter
相关产品推荐
相关产品推荐

