2016-12-06 173 views
0

我在多字段搜索表单中遇到了一些问题。我想通过我的表中的多个列进行搜索,但只使用一个搜索框。使用Access中的一个搜索框搜索多个字段

我在设计视图中使用我的查询和搜索表单工作,不知道如何蹲坐在SQL中,所以如果你能告诉我如何在设计视图中做到这一点,那就太好了。

这是我有:表数据 -

enter image description here

搜索表单

enter image description here

所以我想要做的是能够通过所有的器乐演奏家的搜索列,但不包括任何其他列(歌曲标题等),但仅使用一个搜索框搜索这些乐器演奏专栏中的条目。

所有其他搜索框只能通过它们各自的列进行搜索(歌曲标题搜索框搜索“歌曲标题”栏等)。现在,Instrumentalist搜索框只能搜索标有“Instrumentalist 1”的列。我不知道是否需要在搜索表单中更改“Instrumentalist”搜索框的属性,或者更改查询中的某些内容。

在查询中,我在Instrumentalist框中使用Like "*" & [Forms]![SearchForm]![Instrumentalist 1] & "*"。是

属性此框,如下所示:

名称:器乐1

控制源为空白。

格式为空。

任何人都知道我该怎么办?

+0

所以,你要进入'text'在'器乐搜索box' ANS搜索该文本标题中的所有列有器乐,像'Instrumentalist1','Instrumentalist2 ''Instrumentalist3' bla bla – harun24hr

+0

@ harun24hr:是的,这是正确的。 – Jordan

+0

你能分享一个样本文件吗? – harun24hr

回答

0

您的表格设计存在缺陷 - 您拥有未知数量条目的所有应该不是列而是行。

应该有一个单独的表“Instrumentalists”,与“歌曲”有一对多的关系。如果你不能改变你的设计,你可以使用OR

... WHERE ([Instrumentalist 1] Like "*" & [Forms]![SearchForm]![Instrumentalist 1] & "*" 
     OR [Instrumentalist 2] Like "*" & [Forms]![SearchForm]![Instrumentalist 1] & "*" 
     OR [Instrumentalist 3] Like "*" & [Forms]![SearchForm]![Instrumentalist 1] & "*") 

但是正如你所看到的,如果你有很多列,它就变得相当可怕。

+0

我为“Instrumentalists”创建了一个单独的表格,并从“Songs”表格中创建了一对多的关系。它们通过歌曲标题字段链接。在查询设计中,对于所有Instrumentalist字段,我使用'Like“*”&[Forms]![SearchForm]![Instrumentalist1]&“*”',并且所有其他搜索框都在工作,除了工具主义搜索框。查询结果为空,即使两个表中的所有字段都有文本。 – Jordan

0

从下面的链接下载文件。它应该适合你。

File Download Link

注:In table no field can't be empty. At least you have to set default value or entry * (star) or any other value. Otherwise query will not work properly.

+0

我试过了,它仍然没有工作。例如,在您制作的部分中,在Instrumentalist的搜索框中,我在Instrumentalist2字段中的演奏家之一Delbert McClinton中键入。当我运行查询时,什么都没有出现。 – Jordan

+0

但我刚才试过,它显示1条记录。我不知道为什么它不适合你。 – harun24hr

+0

是否区分大小写? – Jordan