gpt4 book ai didi

ms-access - 查询结果不显示具有空值的记录

转载 作者:行者123 更新时间:2023-12-02 23:42:35 25 4
gpt4 key购买 nike

我正在设计一个搜索表单,用于根据 4 个文本字段(名字、姓氏、电话号码和促销代码)搜索我的 Access 数据库。

查询如下:

Like "*" & [Forms]![SearchF]![txtFirstName] & "*"
Like "*" & [Forms]![SearchF]![txtSurnameName] & "*"
Like "*" & [Forms]![SearchF]![txtPhone] & "*"
Like "*" & [Forms]![SearchF]![txtPromo] & "*"

如果所有字段均为空白,搜索应返回所有记录。当您在文本框中输入某些值时,结果会缩小到匹配范围。

它几乎工作正常,但是当某些领域没有值(value)时就会出现问题。例如,如果某人没有促销代码,那么即使您将其留空,他们的记录也将始终被跳过。我假设 Access 查询不喜欢空白字段。

解决这个问题最简单的方法是什么?

最佳答案

我认为这里的文本框可能有点分散注意力,因为这个问题更基本。考虑这个查询...

SELECT f.id, f.some_text
FROM tblFoo AS f
WHERE f.some_text Like "*";

它返回 some_text 包含任何非空值(甚至是空字符串)的行。但是,它不会返回 some_text 为 Null 的行。

原因是 Like 比较中的 Null 永远不会计算为 True。从“立即”窗口考虑这个示例...

? "foo" Like "*"
True
? Null Like "*"
Null

对于您的Like比较,我认为您需要目标字段包含文本框文本的行。但当文本框为空时返回所有行。您可以通过使用 OR 组合这两个条件来做到这一点。

WHERE
[Promo Code] Like "*" & Forms!SearchF!txtPromo & "*"
OR
Forms!SearchF!txtPromo Is Null

当文本框为 Null 时,OR 的第二部分对于所有行都为 true,因此返回所有行。

当文本框不为 Null 时,仅返回满足 Like 比较的行。

关于ms-access - 查询结果不显示具有空值的记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19147090/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com