首页 > 解决方案 > 将数据从 from 传递到子表单在 MS Access 中无法正常工作

问题描述

我有一个主窗体 (frmPurchases) 和一个子窗体 (subfrmPurchases)。SubForm 上的 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, "ADDPRODUCT", acSaveYes
End If

errline:
    Exit Sub
End Sub

怎么了:

- 产品添加成功

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

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

为什么组合框不刷新以显示新添加的产品,即组合框的文本列?

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

标签: ms-accessms-access-2016

解决方案


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

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

推荐阅读