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

标签 sql forms ms-access ms-access-2007

首先感谢您抽出宝贵的时间,如果有些问题不清楚,我们深表歉意,这是我在这里的第一条消息。

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

这是我的数据库:

Database dump

这是我的搜索表单:

search form

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

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

现在我尝试在“工作电话”字段的“条件”中添加以下内容:

  • 喜欢“”
  • 喜欢“*”和[表单]![frm_search]![WorkPhone1]和“*”或“IsNull”
  • =""或 =""
  • 喜欢“”
  • 喜欢“*”

什么都不起作用...而且这很奇怪,因为我已经完成了 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 ""))**;

最佳答案

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

OR IS NULL

在您的LIKE声明之后

关于sql - Access 2007-搜索表单由于空白字段而未返回所有值--似乎找不到匹配的 LIKE,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9814016/

相关文章:

mysql - 在mysql db中获取集合的交集

javascript - 所需的 Bootstrap 验证程序文件名不会在验证失败时失败

c# - 文本框的 AccesDB 值

php - 如何使用空字符串值将实体保存在数据库中

java - 如何从浏览器启动 Word 文档作为模板?

ms-access - MS Access 无法创建 MDE 错误。对象过多

android - 在 XML 中包含 SQL

SQL - 根据最近的职位更新员工头衔

php - 如何在 PHP 中进行多个查询

javascript - 如何在 Plone 上禁用 z3c.form 的内联验证?