MS ACCESS Filter ComboBox ALL 选项

MS ACCES Filter ComboBox ALL Option

在我的 MS-Access 2013 项目中,我想在列表框中显示订单。我想按公司过滤带有组合框的订单。 Combobox 列出了所有公司加上一个 ALL 选项。我解决这个问题的方法是:

公司组合框:

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

(它select是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 = "*",如果您在组合框中 selected <ALL>,它将显示所有订单。

顺便说一句:每次 select 组合框中的内容时,您肯定都必须刷新列表框。