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

Access查询需求:在表单展示员工最后一次晋升日期与职级

Access表单显示员工最后一次晋升信息方案

核心思路

通过分组查询获取每个员工的最新晋升日期,再关联原表匹配对应职级,最终将这个查询作为表单的数据源。

分步实现

1. 编写SQL查询获取完整信息

如果直接用SQL视图,复制以下代码(注意替换字段名为你实际表中的字段名,比如EMP_ID是员工唯一标识,PROMO_DATE是晋升日期,POSITION是职级,NAME是员工姓名):

SELECT 
    em.EMP_ID,
    em.NAME,
    em.DOH,
    ep.PROMO_DATE AS LAST_PROMO_DATE,
    ep.POSITION AS LAST_POSITION
FROM 
    emplmain em
LEFT JOIN (
    -- 子查询:获取每个员工的最后晋升日期
    SELECT EMP_ID, MAX(PROMO_DATE) AS LAST_PROMO_DATE
    FROM emplpromotd
    GROUP BY EMP_ID
) lp ON em.EMP_ID = lp.EMP_ID
LEFT JOIN emplpromotd ep ON lp.EMP_ID = ep.EMP_ID AND lp.LAST_PROMO_DATE = ep.PROMO_DATE

2. 用设计视图操作(适合SQL经验不足的情况)

  • 新建查询,添加emplmain和emplpromotd两张表;
  • 添加emplmain中的EMP_ID、NAME、DOH字段到查询网格;
  • 添加emplpromotd中的EMP_ID和PROMO_DATE字段,点击【总计】按钮,将EMP_ID的总计设为【分组】,PROMO_DATE的总计设为【最大值】;
  • 再次添加emplpromotd中的POSITION字段,设置其关联条件:与已有的EMP_ID和最大值的PROMO_DATE匹配;
  • 保存这个查询,命名为qry_EmployeeLastPromotion。

3. 绑定表单数据源

打开你的员工查询表单,在【属性表】中找到【数据源】,选择刚才创建的查询qry_EmployeeLastPromotion,然后添加对应的文本框控件绑定LAST_PROMO_DATE和LAST_POSITION字段即可。

注意事项

  • 确保两张表的员工标识字段(比如EMP_ID)是一致的,这样关联才会正确;
  • 如果有员工无晋升记录,LAST_PROMO_DATE和LAST_POSITION会显示为空,若要显示默认文本,可修改SQL中的字段为:
    IIf(IsNull(ep.PROMO_DATE), "", ep.PROMO_DATE) AS LAST_PROMO_DATE,
    IIf(IsNull(ep.POSITION), "无晋升记录", ep.POSITION) AS LAST_POSITION
    

内容的提问来源于stack exchange,提问作者Bob Mantifel

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.18 18:30:00