如何根据用户在文本框中输入的内容进行过滤,如果为空则显示全部
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如何实现用户在文本框中输入好友昵称,点击查询,根据用户输入匹配好友昵称,结果加载到下拉框中