如何在Access中根据txtEID的唯一ID自动填充txtFullName文本框
Access窗体自动填充员工姓名的解决方法
方法一:直接设置txtFullName的控件源
你不需要给txtFullName绑定表字段,直接把它的Control Source属性设置为以下表达式即可实现自动填充:
=DLookup("EmployeeName", "tblEmployees", "EID = [txtEID]")
这个表达式会从tblEmployees表中,找到EID字段值等于当前窗体txtEID文本框值的记录,并返回对应的EmployeeName内容。只要txtEID的值发生变化,txtFullName会自动更新显示匹配的姓名。
如果需要处理txtEID为空或无匹配结果的情况,可以用Nz函数添加默认提示:
=Nz(DLookup("EmployeeName", "tblEmployees", "EID = [txtEID]"), "未找到对应员工")
方法二:用VBA事件触发更新(适合复杂逻辑场景)
如果需要更灵活的控制(比如额外的校验逻辑),可以在txtEID的AfterUpdate事件中编写VBA代码:
- 打开窗体设计视图,右键点击
txtEID文本框,选择「事件生成器」 - 选择「代码生成器」,输入以下代码:
Private Sub txtEID_AfterUpdate() ' 若EID是文本类型,需要加单引号;数字类型则去掉单引号 Me.txtFullName = DLookup("EmployeeName", "tblEmployees", "EID = '" & Me.txtEID & "'") ' 处理无匹配的情况 If IsNull(Me.txtFullName) Then Me.txtFullName = "未找到对应员工" End If End Sub
注意事项
- 确保
txtEID的数据类型和tblEmployees表中EID字段的类型完全一致(比如都是文本或数字),否则会出现匹配失败的情况 - 如果
EID是数字类型,上述代码中的单引号需要去掉,改为:"EID = " & Me.txtEID
内容的提问来源于stack exchange,提问作者Shiela
相关产品推荐
相关产品推荐

