MS Access:使用其他表单中的命令按钮在表单中输入特定文本

时间:2016-08-13 17:53:41

标签: forms vba ms-access command record

我想就MS Access中的以下问题寻求帮助。

我创建了一个表单" CustomerListF",为每个客户端填充了命令按钮。对于每个按钮,我创建了以下代码:

Private Sub cmd_outlets_ABC_Click()
DoCmd.OpenForm "OrderFormF"
Forms!OrderFormF!Outlets = "ABC"
End Sub 

该按钮将打开另一个表单" OrderFormF"并输入" ABC"在名为" Outlets"的文本框中。但是,我意识到第二行代码(Forms!OrderFormF!Outlets =" ABC")总是会在我的子表单中创建一个幻像记录,该子表单位于" OrderFormF&#34 ;,这个记录将传递给其他客户'形式。通常在单击命令按钮两次(双击或后续单击)时创建此幻像记录。当记录开始转移时,这是一件令人头疼的事。

enter image description here

我想征求您对vba代码的建议,以编辑第二行代码。

谢谢。

1 个答案:

答案 0 :(得分:0)

这种以开放形式填充场地的方法并不好。 OrderFormF初始化和代码的第二行(为字段赋值)可能以不同的顺序执行,它们不同步。 为了避免这种情况,您应该通过另一种方式将参数传递给OrderFormF。我建议使用OpenArgs参数:

DoCmd.OpenForm "OrderFormF",,,,,,"ABC"

然后在OrderFormF的Load事件中将值分配给textbox:

Me.Outlets = Me.OpenArgs

在这种情况下," ABC"如果表单为空,则将值分配给表单中的第一行或新记录。在分配之前,如果需要将值分配给第一行,则可以选择该行。这种方式也可以防止双击按钮,在第一次打开表单时只执行一次加载事件