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

MS Access数据库表单值传递问题:从Party_Detail传值至Bill_Entry

在MS Access中实现Party_Detail表单值传递到Bill_Entry的Party_Code文本框

以下是几种实用的实现方法,按需选择:

方法一:通过按钮触发VBA传递(最常用)

  • 在Party_Detail表单中添加一个按钮(比如命名为“选择客户并返回”)
  • 右键按钮选择“事件生成器”,写入以下VBA代码:
Private Sub cmdSelectParty_Click()
    ' 检查Bill_Entry表单是否已打开
    If CurrentProject.AllForms("Bill_Entry").IsLoaded Then
        ' 将当前Party_Detail的Party_Code值赋值给Bill_Entry的文本框
        Forms("Bill_Entry").Party_Code.Value = Me.Party_Code.Value
        ' 可选:关闭Party_Detail表单
        DoCmd.Close acForm, "Party_Detail"
    Else
        ' 若Bill_Entry未打开,先打开再赋值
        DoCmd.OpenForm "Bill_Entry", , , , acFormEdit
        Forms("Bill_Entry").Party_Code.Value = Me.Party_Code.Value
    End If
End Sub
  • 注意:如果Party_Detail中存储Party_Code的控件名称不是Party_Code,替换Me.Party_Code.Value为对应控件名即可。

方法二:打开Bill_Entry时通过OpenArgs传递值

  • 在Party_Detail的按钮中写入打开表单并传值的代码:
Private Sub cmdOpenBillEntry_Click()
    DoCmd.OpenForm "Bill_Entry", OpenArgs:=Me.Party_Code.Value
End Sub
  • 打开Bill_Entry表单的设计视图,在Form_Load事件中添加接收值的代码:
Private Sub Form_Load()
    If Not IsNull(Me.OpenArgs) Then
        Me.Party_Code.Value = Me.OpenArgs
    End If
End Sub

方法三:用宏实现(无需编写代码)

  • 打开Party_Detail表单的设计视图,创建新宏:
    1. 添加OpenForm操作,表单名称选择Bill_Entry,确保表单能正常打开
    2. 添加SetValue操作:
      • 对象类型:表单
      • 对象名称:Bill_Entry
      • 项目:Party_Code
      • 表达式:[Forms]![Party_Detail]![Party_Code]
  • 保存宏后,给Party_Detail的按钮绑定这个宏即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 16:04:58