将数据从子表单传递到子表单在 MS Access 中无法正常工作

问题描述

我有一个主表单 (frmpurchases) 和一个子表单 (subfrmpurchases)。子表单上的字段 UPC 是一个包含 2 列的组合框,一个是数字(产品 ID),另一个是文本。我有一个 Not-In-List 事件来打开一个单独的表单来添加新产品。输入产品详细信息后,将执行以下代码行。

Private Sub Command4_Click()
On Error GoTo errline

If IsFormloaded("frmpurchases") = True Then
    Forms!frmpurchases!subfrmpurchases.Form!UPC.Undo
    Forms!frmpurchases!subfrmpurchases.Form!UPC.Requery
    Forms!frmpurchases!subfrmpurchases.Form!UPC = Me.UPC
    DoCmd.Close acForm,"ADDPRODUCT",acSaveYes
    Forms!frmpurchases!subfrmpurchases.Form!Quantity.SetFocus
Else
    DoCmd.Close acForm,acSaveYes
End If

errline:
    Exit Sub
End Sub

发生了什么:

-产品添加成功

-在子表单字段 UPC 上,产品在那里(因为我已经设置了它,因此您不能移动到子表单中的新记录而将该字段留空),但组合框显示为空白。

-在 subfrmpurchases 的记录源(采购表)中,产品 ID 与在 subfrmpurchases 中输入的所有数据一起显示

为什么组合框没有刷新显示添加的产品即组合框的文本栏?

编辑:好的,所以我想通了。我忘了提到组合框 UPC 没有以正常方式填充数据。我使用一个类来调用行源,所以我需要引用类中的方法来重新查询组合框。

解决方法

您应该设置组合框绑定值(产品 ID),而不是显示的文本 (UPC)。所以:

Forms!frmPurchases!subfrmPurchases.Form!UPC.Value = Me!ProductID.Value