MS Access 考勤录入窗体下拉列表显示Employee ID而非员工姓名问题排查
解决MS Access下拉列表显示ID而非姓名的方案
这个问题本质是组合框的多列显示与绑定逻辑设置问题,不需要修改表结构或查询逻辑,仅调整表单控件属性即可实现需求,操作步骤如下:
1. 确认组合框数据绑定属性
打开Attendance Form的设计视图,找到Employee字段对应的下拉组合框控件,右键打开「属性表」,切换到数据选项卡:
- 确认「行来源类型」为
表/查询 - 确认「行来源」绑定的是已构建的Employee Query,对应SQL逻辑如下即可:
SELECT [Employee ID], [Employee Name] FROM Employees WHERE Status = "Active"; - 确认「绑定列」属性值为
1:该数值对应行来源查询的字段顺序,设置为1代表提交时取第一列的Employee ID存入Attendance表,保证后续关联查询、报表的正常使用。
2. 调整列宽隐藏ID列
切换到属性表的格式选项卡:
- 「列数」属性设置为
2,对应行来源返回的2个字段 - 「列宽」属性设置为
0cm;2cm:第一个宽度设为0,直接隐藏第一列的Employee ID;第二个宽度为员工姓名的显示宽度,可根据实际展示效果调整数值 - 可选调整「列表宽度」属性,设置为和姓名列宽度匹配,避免下拉框出现多余空白。
3. 效果验证
保存表单修改后切换到窗体视图测试:
- 下拉列表仅展示Active状态的员工姓名,无ID信息
- 选中员工提交后,Attendance表的Employee字段仍存储对应Employee ID
- 表单非编辑状态下也仅展示员工姓名,符合界面显示要求。
注意:如果你的Employee Query返回字段顺序为Employee Name在前、Employee ID在后,只需对应调整「绑定列」为
2,「列宽」设置为2cm;0cm即可,核心逻辑为保证绑定的取值列是ID列、隐藏的列也是ID列。
内容的提问来源于stack exchange,提问作者jbarr
相关产品推荐
相关产品推荐

