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表单的设计视图,创建新宏:
- 添加
OpenForm操作,表单名称选择Bill_Entry,确保表单能正常打开 - 添加
SetValue操作:- 对象类型:表单
- 对象名称:Bill_Entry
- 项目:Party_Code
- 表达式:
[Forms]![Party_Detail]![Party_Code]
- 添加
- 保存宏后,给Party_Detail的按钮绑定这个宏即可。
内容的提问来源于stack exchange,提问作者Hiren
相关产品推荐
相关产品推荐

