使用命令按钮在另一个表单上预填充字段

时间:2013-07-11 16:37:18

标签: ms-access access-vba ms-access-2003

我有一个Access 2003数据库,它将处理RMA(退回材料验证)信息(日期,RMA Nbr,评估,发货日期,RMA上的项目等)。在这个Access数据库中,我有三种形式:

  • 添加RMA(将新的RMA添加到没有项目的数据库中。此表单(将有)上面的子表单列出了目前为止添加的RMA上的所有项目。)
  • 查看RMA(查看有关数据库中现有RMA的信息,以及子表单中每个RMA上的所有项目)
  • 将项目添加到RMA(因为每个RMA可以返回多个不同类型的项目,我有一个专门用于向RMA添加新项目的表单。在每个条目之后,表单自行清除并允许更多条目)< / LI>

向RMA表单中添加“添加RMA”和“添加项目”包含所有未绑定字段(它们旨在接受新输入,并且仅在按下按钮时插入数据库。

“将项目添加到RMA”表单有五个字段,全部未绑定。实际表单根本没有引用数据库中的信息。五个领域之一是RMA号码。

“新RMA”和“查看RMA”表单有一个按钮,可以打开“将项目添加到RMA”表单。我想按一下按钮打开“添加项目到RMA”表格,其中RMA编号字段预填充了上一屏幕中的RMA编号。每个表单上的每个字段都具有名称“RMANbr”。

在“查看RMA”表单中的命令按钮上,我在“On Click”事件中有以下代码,但它似乎不起作用。 “将RMA添加到项目”字段显示空白:

Private Sub AddItemtoRMA_Click()
  DoCmd.OpenForm "Add Item to RMA", , , "RMANbr = " & Me!RMANbr
End Sub

请记住字段未绑定。

因此,我需要使用“添加RMA”和“查看RMA”表单中的RMANbr字段自动填写“将项目添加到RMA”表单中的未绑定RMANbr字段的代码。

我还希望在“添加RMA”和“查看RMA”中列出子表单,列出通过“将项目添加到RMA”表单(按下按钮时)添加每个项目后的所有项目刷新/重新查询。我试过了

RMA Inforation.Requery
Add RMA.Requery

没有成功。没有刷新,没有错误,没有。

可以用代码完成吗?

1 个答案:

答案 0 :(得分:2)

我不确定我对说明的效果如何,但您似乎可以利用OpenArgs参数和OpenForm。 (您现有的代码使用WhereCondition参数,但对于未绑定的表单,这是没有意义的。)

OpenArgsOpenForm的第七个参数。如果我正确计算逗号,这可能有效:

DoCmd.OpenForm "Add Item to RMA", , , , , , Me!RMANbr

但是,我会使用选项的名称来避免使用逗号。

DoCmd.OpenForm "Add Item to RMA", OpenArgs:=Me!RMANbr

然后在目标表单的加载事件中,您可以移动到新记录并在包含OpenArgs的文本框中使用RMANbr值(我猜到文本框名称是 txtRMANbr )。

Private Sub Form_Load()
    DoCmd.GoToRecord acDataForm, , acNewRec
    If Not IsNull(Me.OpenArgs) Then
        Me.txtRMANbr = Me.OpenArgs
    End If
End Sub