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 组合框中的内容时,您肯定都必须刷新列表框。
在我的 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 组合框中的内容时,您肯定都必须刷新列表框。