如何解决带有多选列表框的Microsoft Access Form
我在Microsoft Access中有一个表单,其中有一个包含县的组合框。根据选择的县,有一个列表框,将显示分配给该县的金额。当我从列表框中选择一个金额并单击“查找”按钮时,它将生成两个子表单,其中一个子表单显示的是该查询中存在该金额的订单项的最低价格:
SELECT Data.Item,Min(Data.[Unit Price]) AS Minimum
FROM Data
WHERE (((Data.[Bid Amount])=Forms![Report]![List2]))
GROUP BY Data.Item;
SELECT Data.Item,Avg(Data.[Unit Price]) AS Average
FROM Data
WHERE (((Data.[Bid Amount])=[Forms]![Report]![List2]))
GROUP BY Data.Item;
现在从列表框中选择一个金额可以正常工作,但是如果我需要从列表框中选择多个金额,那么我需要在“查找”按钮中编写哪些代码?我尝试使用下面的代码,但无法正常工作。
Dim varItem As Variant
Dim strFind As String
Dim Task As String
For Each varItem In Me!List2.itemselected
strFind = srtFind & "," & Me!List2.ItemData(varItem)
Next varItem
If Len(strFind) = 0 Then
Task = "Select Amount(s)"
Else
strFind = Right(strFind,Len(strFind) - 1)
Task = "select * from Data where ([Bid Amount] in (" & strFind & "))"
End If
DoCmd.ApplyFilter Task
此外,如果有帮助,我将附上我的表格的屏幕截图。 Access Form
解决方法
过滤器只是where子句,我想这是您希望过滤的子表单,因此请尝试如下操作:
Dim varItem As Variant
Dim strFind As String
Dim Filter As String
Dim FilterOn As Boolean
For Each varItem In Me!List2.ItemSelected
strFind = srtFind & "," & Me!List2.ItemData(varItem)
Next varItem
If Len(strFind) > 0 Then
strFind = Right(strFind,Len(strFind) - 1)
Filter = "[Bid Amount] In (" & strFind & ")"
FilterOn = True
End If
Me!NameOfSubformControl1.Form.Filter = Filter
Me!NameOfSubformControl2.Form.Filter = Filter
Me!NameOfSubformControl1.Form.FilterOn = FilterOn
Me!NameOfSubformControl2.Form.FilterOn = FilterOn
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。