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

Access:如何将搜索窗体列表框值填充到另一窗体的ComboBox

Access窗体组合框赋值问题解决办法

错误原因

你原代码的问题出在窗体引用方式错误:Me.Form!formAcademyRegister!EmployeeCode这种写法是错误的,Me代表当前的formsEmployeeSearch窗体,无法通过当前窗体的Form属性去引用另一个独立打开的窗体。正确的引用方式是使用Access全局的Forms集合来定位目标窗体。

正确代码实现

基础版代码

直接修正窗体引用,确保formAcademyRegister处于打开状态,然后给组合框赋值:

Private Sub butUpdateEmployeeID_Click()
    ' 将列表框选中的EmployeeID赋值给目标窗体的组合框
    Forms!formAcademyRegister!EmployeeCode = Me!lstEmpSearchResult.Value
    ' 关闭当前搜索窗体
    DoCmd.Close acForm, Me.Name
End Sub

更稳妥的写法(指定列索引)

如果担心列表框的绑定列设置变化,可以直接指定EmployeeID所在的列(列表框列索引从0开始,假设EmployeeID是列表框的第一列,对应索引0):

Private Sub butUpdateEmployeeID_Click()
    Forms!formAcademyRegister!EmployeeCode = Me!lstEmpSearchResult.Column(0)
    DoCmd.Close acForm, Me.Name
End Sub

带错误检查的版本

如果需要避免因目标窗体未打开导致的报错,可以增加窗体加载状态检查:

Private Sub butUpdateEmployeeID_Click()
    ' 检查目标窗体是否已打开
    If SysCmd(acSysCmdGetObjectState, acForm, "formAcademyRegister") <> 0 Then
        Forms!formAcademyRegister!EmployeeCode = Me!lstEmpSearchResult.Column(0)
    End If
    DoCmd.Close acForm, Me.Name
End Sub

关键注意事项

  • 确保formAcademyRegister在点击按钮时处于打开状态,否则代码会报错。
  • 组合框EmployeeCode的绑定列必须对应EmployeeID(即组合框的"绑定列"属性设置为对应EmployeeID的列索引),否则赋值后可能显示异常。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 09:05:15