1

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

  • 添加 RMA(将新的 RMA 添加到没有项目的数据库中。此表单(将有)一个子表单列出迄今为止添加的 RMA 上的所有项目)
  • 查看 RMA(查看数据库中现有 RMA 的信息,每个 RMA 上的所有项目都在子表单中)
  • 将项目添加到 RMA(由于每个 RMA 可以返回多个不同类型的项目,我有一个专门用于向 RMA 添加新项目的表单。每次输入后,表单会自行清除并允许更多输入)

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

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

“新 RMA”和“查看 RMA”表单有一个按钮,用于打开“将项目添加到 RMA”表单。我希望该按钮打开“将项目添加到 RMA”表单,其中 RMA 编号字段预先填写了上一个屏幕中的 RMA 编号。每个表单上的每个字段都有名称“RMANbr”。

在“查看 RMA”表单中的命令按钮上,我在“单击时”事件中有以下代码,但它似乎不起作用。“将 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

没有成功。没有刷新,没有错误,什么都没有。

这可以用代码完成吗?

4

1 回答 1

2

不确定我对描述的遵循程度,但似乎您可以利用OpenArgs参数 with OpenForm。(您现有的代码使用该WhereCondition参数,但这对于未绑定的表单毫无意义。)

OpenArgs是 的第七个参数OpenForm。如果我正确计算逗号,这可以工作:

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
于 2013-07-11T17:02:45.913 回答