如何根据组合框选择使子表单显示数据?

Posted

技术标签:

【中文标题】如何根据组合框选择使子表单显示数据?【英文标题】:How to make subform display data according to combobox selection? 【发布时间】:2012-12-05 07:25:44 【问题描述】:

我正在尝试将多个表绑定在一起,并在名为 Form2 的表单中根据我的组合框 (ID 名称 = CbproductName) 选择让子表单显示数据。我正在使用 Ms office Access。

这是查询

SELECT Employee.EmpName, Employee.EmpCode, Employee.CompanyID, Employee.DeptID,
       Employee.ComputerID, Software.ProductName 
  FROM Software
       INNER JOIN (
             (
              Computer INNER JOIN Employee ON Computer.CompID = Employee.ComputerID) 
              INNER JOIN Application ON Computer.ComputerName=Application.[A-ComputerID]
             )
       ON Software.ID = Application.SoftwareID 
 WHERE Application.SoftwareID = Form2.CbProductName;

但是当我运行表单时它一直提示我输入参数值,并且它不显示输入值的结果。它也不会根据组合框的选择而改变。 有人可以指点我完成它的方向吗?

【问题讨论】:

【参考方案1】:

在查询中,按名称引用表单作为Forms 集合的成员。然后使用控件名称引用该窗体上的控件的值。它应该看起来像这样:

Forms!FormName!ControlName

在您的查询中,将Where 子句更改为:

WHERE Application.SoftwareID = Forms!Form2!CbProductName;

然后确保在CbProductName 的更新事件之后刷新该查询。您指出查询用作子表单的记录源,因此假设子表单控件与组合框位于同一表单上,请尝试将此作为更新后过程:

Private Sub CbProductName_AfterUpdate()
    Me!SubformControlName.Form.Requery
End Sub

请注意,子表单控件名称可能与其包含的表单名称不同。确保使用控件的名称。

【讨论】:

哇,非常感谢。它完全解决了我的问题。这真的减轻了我的工作量。 :D (Y)

以上是关于如何根据组合框选择使子表单显示数据?的主要内容,如果未能解决你的问题,请参考以下文章

如何根据用户表单组合框选择查询单元格中的数据并将数据复制到用户表单文本框中

如何根据 Microsoft Access 中的组合框选择导航到表单

如何根据组合框选择过滤datagridview

打开表单的组合框

如何使用组合框根据另一个组合框的值从不同的表中选择数据

当用户从 MS Access 的组合框中选择“其他”时,如何显示输入表单?