如何将传递查询分配给依赖于表单中另一个值的行源?
本质上我想这样做:
SELECT x.companyid,
x.companyname,
x.productid
FROM x
WHERE (((x.CompanyID) = [Forms]![Reporting]![CompanyID_Control]))
ORDER BY x.productid;
但是,传递查询当然不支持对任何表单控件的引用。
我读过了here有一个通过 VBA 的方法,但是我不知道如何将 VBA 与控件的行源结合使用。
正如 Remou 在他的回答中所说,链接表将使这变得更容易。但是,如果您有一个名为MyQuery
,您可以执行以下操作来制作 a 的 RowSourceMyComboOrListBox
控制动态更新时的值CompanyID_Control
变化:
Private Sub CompanyID_Control_AfterUpdate()
Dim SQL As String, qdf AS DAO.QueryDef
Set qdf = CurrentDB.QueryDefs("MyQuery")
qdf.SQL = " SELECT x.companyid, x.companyname, x.productid " & _
" FROM x " & _
" WHERE x.CompanyID =" & Me.CompanyID_Control & _
" ORDER BY x.productid;"
Me.MyComboOrListBox.RowSource = "MyQuery"
End Sub
您还需要设置AfterUpdate
的财产CompanyID_Control
to:
[Event Procedure]
.
请注意,即使您按照 Remou 建议使用链接表,您仍然需要在AfterUpdate
事件的CompanyID_Control
刷新组合框/列表框 RowSource:
Private Sub CompanyID_Control_AfterUpdate()
Me.MyComboOrListBox.Requery
End Sub
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)