我有一个Access 2003数据库,它将处理RMA(退回材料验证)信息(日期,RMA Nbr,评估,发货日期,RMA上的项目等)。在这个Access数据库中,我有三种形式:
向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
没有成功。没有刷新,没有错误,没有。
可以用代码完成吗?
答案 0 :(得分:2)
我不确定我对说明的效果如何,但您似乎可以利用OpenArgs
参数和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