SQL Access-来自组合框的WHERE

时间:2017-07-11 10:20:03

标签: ms-access combobox

我在Access中有一个包含一些值的组合框。选择我想要过滤记录的其中一个值。

现在我写的查询看起来像这样:

SELECT Fornitori.Brand
    ,Fornitori.Mail
    ,Fornitori.Web
    ,Fornitori.Località
    ,Fornitori.[ID Categoria]
    ,Fornitori.[ID Zona]
    ,Zona.Zona
    ,Settore.Categoria
FROM Settore
INNER JOIN (
    Zona INNER JOIN Fornitori ON Zona.[ID Zona] = Fornitori.[ID Zona]
    ) ON Settore.[ID Categoria] = Fornitori.[ID Categoria]
WHERE Fornitori.[ID Categoria] = Maschere!Brandsrch!Brandcatsrchcb.Value;

这样做会在我从组合框中选择一个值时过滤记录。

我现在的目标是在取消组合框中的文本时没有过滤器(比如没有WHERE子句),或者在我选择某些内容之前它首先是空的。

1 个答案:

答案 0 :(得分:1)

您可以使用VBA执行复杂操作,或者只是将查询修改为以下内容:

SELECT Fornitori.Brand, Fornitori.Mail, Fornitori.Web, Fornitori.Località, Fornitori.[ID Categoria], Fornitori.[ID Zona], Zona.Zona, Settore.Categoria
FROM Settore INNER JOIN (Zona INNER JOIN Fornitori ON Zona.[ID Zona] = Fornitori.[ID Zona]) ON Settore.[ID Categoria] = Fornitori.[ID Categoria]

WHERE Fornitori.[ID Categoria]=Maschere!Brandsrch!Brandcatsrchcb.Value
OR NZ(Maschere!Brandsrch!Brandcatsrchcb.Value, "") = "";

这将在未设置Maschere!Brandsrch!Brandcatsrchcb.Value时返回所有记录。