1

*****已编辑

所以我有一个名为“NewInvoice”的表格。此表单编辑包含以下内容的“发票”表;发票号码、客户、订单日期。在这个表单中,我有一个按钮,可以打开一个名为“InvoiceItem”的子表单。这将编辑包含发票编号、项目代码、尺寸等的同名表。

现在,我的按钮有一个如下的事件过程。


私有子 CreateInvoiceItem_Click()

DoCmd.OpenForm "InvoiceItem", OpenArgs:="InvoiceNumber"

结束子


(我使用按钮并在单独的窗口中打开表单的原因是因为当我将子表单插入父表单时,子表单中的级联组合框会损坏)

现在我遇到问题的地方是设置表单加载命令。我想要发生的是,当单击按钮时,在父表单中填写的 InvoiceNumber 会自动填写子表单。


私有子 Form_Load()

**** 需要的代码****

结束子

4

2 回答 2

1

因此,请尝试按照问题评论中的说明修复组合框。此外,建议在 GotFocus 事件中重新查询依赖组合框的代码。请记住,具有查找别名的级联组合框在连续或数据表形式中效果不佳。

如果你真的想将值传递给独立的形式,OpenArgs 是一个很好的方法。

可能需要将表单打开到新的记录行。

DoCmd.OpenForm "InvoiceItem", , , , acFormAdd, acDialog, Me!InvoiceNumber

需要确保表单在新记录上的代码。

Private Sub Form_Load()
If Me.NewRecord Then Me!InvoiceNumber = Me.OpenArgs
End Sub
于 2017-04-25T07:09:34.863 回答
0

我发现最好的方法是在您打开的表单中添加一个 Public sub,然后在打开表单时将您需要的任何参数传递给此函数。因此,要执行您想要执行的操作,请在您打开的表单中添加这样的功能;

Public Sub SetUpForm(InvoiceNumber as Long)

    txtInvoiceNumber.Value = InvoiceNumber

End Sub

其中 txtInvoiceNumber 是表单上要将值放入的控件。

然后从你的按钮;

DoCmd.OpenForm "InvoiceItem"
Forms!InvoiceItem.SetUpForm InvoiceNumber

这会将发票编号的值传递给您正在打开的表单上的控件。这也为您提供了更大的灵活性来控制流程,因为您可以将多个参数传递给子程序,并且在子程序中您可以执行任意数量的任务。

于 2017-04-26T07:51:03.123 回答