Access 2007-搜索表单由于空白字段而未返回所有值--似乎找不到匹配的 LIKE

Posted

技术标签:

【中文标题】Access 2007-搜索表单由于空白字段而未返回所有值--似乎找不到匹配的 LIKE【英文标题】:Access 2007-Search Form does not return all values because of a blank field--Can't seem to find the LIKE that matches 【发布时间】:2012-03-21 22:50:42 【问题描述】:

首先感谢您的宝贵时间,如果有些问题不清楚,很抱歉,这是我在这里的第一条信息。

我在 ACCESS 2007 上创建的自定义搜索表单有问题。

这是我的数据库:

这是我的搜索表单:

我遇到的主要问题是,每当我在名字、姓氏、地址等中输入值时。 它工作得很好。

但是,一旦我开始工作,电话、手机或电子邮件,它就不会显示“Florence Fluflo”,因为她的字段对于这些类别是空白的。

现在我已经尝试在“工作电话”字段的“标准”中放置这些:

LIKE "" LIKE "*" & [Forms]![frm_search]![WorkPhone1] & "*" OR "IsNull" =" " OR ="" LIKE " " LIKE "*"

没有任何效果...这很奇怪,因为我已经完成了 SQL,并且 SQL 语句看起来非常好:

SELECT CLIENTS.First_name, 
       CLIENTS.Surname, 
       CLIENTS.Address, 
       CLIENTS.Suburb, 
       CLIENTS.Postcode, 
       CLIENTS.Home_phone, 
       CLIENTS.Work_phone
FROM CLIENTS
WHERE (((CLIENTS.First_name) Like "*" & [Forms]![frm_search]![Firstname1] & "*") 
    AND ((CLIENTS.Surname) Like "*" & [Forms]![frm_search]![LastName1] & "*") 
    AND ((CLIENTS.Address) Like "*" & [Forms]![frm_search]![Address1] & "*") 
    AND ((CLIENTS.Suburb) Like "*" & [Forms]![frm_search]![Suburb1] & "*") 
    AND ((CLIENTS.Postcode) Like "*" & [Forms]![frm_search]![Postcode1] & "*") 
    AND ((CLIENTS.Home_phone) Like "*" & [Forms]![frm_search]![HomePhone1] & "*") 
    AND **((CLIENTS.Work_phone) Like "*" & [Forms]![frm_search]![WorkPhone1] & "*" OR (CLIENTS.Work_phone) Like ""))**;

【问题讨论】:

@ScottJShea:到目前为止编辑工作做得很好;不过,如果您认为这会改善帖子,请不要犹豫,为低声誉用户内联图片,请remove "thanks" 和类似的帖子。 (我不会为此拒绝,但其他人可能会。)谢谢! @sarnold 感谢您的提示和 Meta 网站的链接 不应该是OR (CLIENTS.Work_phone) IS NULL吗?上述查询中括号的数量之多令人麻木(是的,我知道 Access 正在这样做!;))。 【参考方案1】:

如果你写"IsNull"(引号),它将被视为一个字符串。因此,验证字段是否为空的正确方法是这样的IS NULL 这意味着你需要做的就是写

OR IS NULL

在您的 LIKE 声明之后

【讨论】:

以上是关于Access 2007-搜索表单由于空白字段而未返回所有值--似乎找不到匹配的 LIKE的主要内容,如果未能解决你的问题,请参考以下文章

Access 2007 添加记录使用相同的表单

MS Access Openform - 所需的空白字段值

MS Access - 为啥我得到空白表格

MS Access - 为什么我会得到空白表格

Access 子表单中的字段名称填充了 vba 记录集

使用来自单独表单 Access 2007 的用户输入自动填充表单中的字段