喜欢和不喜欢访问查询

时间:2015-02-17 12:06:41

标签: ms-access

我希望用户能够根据复选框中的值将查询结果过滤到INclude或EXclude字符串。 Checkbox被正确引用,并且在检查时确实仅对Hackney进行过滤,但是当未选中时," not" part(错误地)给出零记录

IIf([Forms]![Navigation]![TEST]=True,"Hackney",Not In ("Hackney"))

任何建议都非常受欢迎,我们整个上午都在尝试不同的选择。

2 个答案:

答案 0 :(得分:1)

你无法做你想做的事。您正尝试通过此IIf语句构建SQL查询。

基于我认为你想要的东西,你的案例中有以下几点:

select ... /* your select fields */
from ....  /* your table(s) */
where .... /* the rest of your conditions */
and (
    ([FieldName] = "Hackney" And [Forms]![Navigation]![TEST] = True) 
    or 
    ([FieldName] Not In ("Hackney") And [Forms]![Navigation]![TEST] = False)
)

答案 1 :(得分:0)

非常好的东西非常感谢,这是一种享受。事实上,当你通过Query Builder查看它时,它实际上可以正常工作(由于各种原因它更适合)。

对于其他任何正在努力解决这个问题的人来说,我已经在这个提示之后更进了一步,并将喜欢/不喜欢的内容与组合中的值相关联,而不是硬编码的" Hackney"上文提到的。同样适用于Query Builder,这为我的用户提供了正确运行自己的查询的灵活性。

再次感谢。这个SQL是:

SELECT Clients.CLIENTSID, Clients.FirstName, Clients.LastName,     
        LondonBoroughs.LondonBorough, Clients.LondonBoroughID
FROM LondonBoroughs INNER JOIN Clients 
    ON LondonBoroughs.LONDONBOROUGHSID = Clients.LondonBoroughID
WHERE (((Clients.LondonBoroughID) Like ([Forms]![Navigation]![ReportsLondonBoroughCOMBO])) 
    AND (([Forms]![Navigation]![TEST])=True)) 
OR (((Clients.LondonBoroughID) Not Like ([Forms]![Navigation]![ReportsLondonBoroughCOMBO])) 
    AND (([Forms]![Navigation]![TEST])=False));