如何解决MS ACCES筛选器组合框ALL选项
在我的MS-Acces 2013项目中,我想在列表框中显示订单。我想按公司组合框过滤订单。组合框列出了所有公司以及ALL选项。我解决这个问题的方法是:
CompanyCombobox:
SELECT tblCompany.Name as Filter,tblCompany.Name
FROM tblCompany
UNION SELECT "*","<ALL>"
FROM tblCompany
ORDER BY tblCompany.Name;
订单清单:
SELECT *
FROM tblOrders
INNER JOIN tblCompany ON tblOrders.CompanyID = tblCompany.ID
Where tblCompany.Name Like CompanyCombobox;
CompanyCombobox之类的是伪代码
我不喜欢这种解决方案。我觉得很脏。我的胆量告诉我,我需要过滤公司标识。
约定是什么?
解决方法
使用它作为组合框的行源:
SELECT tblCompany.ID As Filter,tblCompany.Name
FROM tblCompany
UNION SELECT "*","<ALL>"
FROM tblCompany
ORDER BY tblCompany.Name
(它选择tblCompany.ID
而不是tblCompany.Name
)
使用它作为列表框的行源:
SELECT * FROM tblOrders
INNER JOIN tblCompany
ON tblOrders.CompanyID = tblCompany.ID
WHERE tblCompany.ID Like CompanyCombobox.Value
Or CompanyCombobox.Value = "*"
({CompanyCombobox
是组合框控件的名称)
技巧是附加条件Or CompanyCombobox.Value = "*"
,如果您在组合框中选择了<ALL>
,它将显示所有订单。
顺便说一句:确保每次在组合框中选择内容时都必须刷新列表框。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。