如何根据用户在文本框中输入的内容进行过滤,如果为空则显示全部

Posted

技术标签:

【中文标题】如何根据用户在文本框中输入的内容进行过滤,如果为空则显示全部【英文标题】:How to filter by what the user enters in a textbox, except show all if it's empty 【发布时间】:2016-08-09 12:09:38 【问题描述】:

我想过滤带有查询的表单,这样用户必须在文本框中输入他想要搜索的内容,然后它就会被过滤掉。有一些空字段,如果用户尚未搜索任何内容,则应显示这些字段,但如果他搜索,则不应再显示这些字段。

使用此代码,搜索工作,但它显示空字段:

Like("*" & [Forms].[BerichtSuche].[efTitle] & "*") OR Is Null 

我试过了,但是什么都没有显示:

If(Len([Forms].[BerichtSuche].[efTitle].[Text])=0; 
  Like("*" & [Forms].[BerichtSuche].[efTitle] & "*") OR Is Null; 
  Like("*" & [Forms].[BerichtSuche].[efTitle] & "*"))

【问题讨论】:

问题不清楚:过滤还是排序?不一样! @iDevlop 过滤 只需从您的代码中删除 is null 部分。当表单在未应用过滤器的情况下打开时,将显示空值。一旦他们开始输入,过滤器就会被激活,并且空值会被正常过滤掉。 @random_answer_guy 我也这么认为,但它会过滤掉所有的空白字段 显示输入数据、期望的结果、为达到目标而采取的行动以及您看到的实际结果。 【参考方案1】:

所以基本上,如果搜索字段为空(Null),您希望显示所有记录。

在这种情况下,使用布尔逻辑使标准始终为真:

(Like "*" & [Forms].[BerichtSuche].[efTitle] & "*") 
OR ([Forms].[BerichtSuche].[efTitle] Is Null)

【讨论】:

【参考方案2】:
if nz(textbox.value,"") <> "" then 
    do the filter
    set the filter on. 
    or generate your own sql "Select fields from table where (field like '"& textbox.value &"') -> use the sql as rowsource/recordsource
else 
   don't do or
   clear the filter 
end if

【讨论】:

当 OP 询问特定语言时,我不知道伪代码可以作为答案。 你不知道一些事情。特别是,该站点为所有人提供服务,有些人可能对不同的方法感兴趣。此外,我更愿意向他们展示如何做而不是做他们的作业! @underscore_d

以上是关于如何根据用户在文本框中输入的内容进行过滤,如果为空则显示全部的主要内容,如果未能解决你的问题,请参考以下文章

仅当搜索栏文本不为空时,如何运行过滤器功能?

如果给定jquery ui进行日期选择,如何不允许用户在日期字段的文本框中输入? [复制]

如何在文本框中选择文本?

java如何实现用户在文本框中输入好友昵称,点击查询,根据用户输入匹配好友昵称,结果加载到下拉框中

如何将过滤后的 jTable 的内容导出到 pdfpTable

如何获取HTML中用户输入到文本框中的内容?