2016-09-15 59 views
1

我不是专业人士,但用它来帮助我使工作更轻松,所以请原谅我的术语。我会尽我所能地尽力解释。多值...不能用于WHERE或HAVING

我需要创建一个数据库来存储我们使用的供应商的联系信息和其他信息,特别是服务和他们可以提供服务的国家,但其中一些供应商可以在多个国家/地区提供服务提供多种服务。因此,希望能够使用具有多值条目的列表以方便使用,并防止为延期国家和服务重复供应商条目。 (这我可以做)

然后,我需要创建一个搜索表单执行搜索的关键词,以太国名,服务或供应商的名称。我这样做是基于以下的代码我从网上得到:

Private Sub Command9_Click() 

Dim strsearch As String 
Dim strText As String 
strText = Me.TxtSearch.Value 
strsearch = "SELECT * from Query1 where ((Decipline Like ""*" & strText & "*"") or (Country_OO Like ""*" & strText & "*""))" 
Me.RecordSource = strsearch 
End Sub 

(本身搜索部分工作正常)

The problem: When I try to use the search with the multi-valued list box I get the following error: Error 3831 the multi-valued 'Country_OO' cannot be used in a WHERE or HAVING clause.

Debug.Print strsearch SELECT * FROM查询1,其中((Decipline像“a”)或(Country_OO赞“a”))

我知道你们大多数人在这里并不是多值列表的粉丝,但在这种情况下,它会工作的很好。有没有解决这个问题的方法或者你可以建议的方法?也许我可以从列表中选择一种方式,然后它只将txt添加到主文件中?

+0

多值?你的意思是用逗号分隔的多个条目的文本框?或者可以选择多行的列表框?什么是生成sql错误的strText值? strsearch在创建后看起来是什么样的?使用debug.print在即时窗口中显示。然后复制/粘贴到您的问题。 – dbmitch

+0

http://stackoverflow.com/questions/21768152/appending-multi-value-lists?rq=1对类似问题的好建议 – dbmitch

+0

嗨,多值 - 列表框,其中可以选择多行。所以它是一个包含非洲所有国家列表的列表框。调试强调了这一部分> Me.RecordSource = strsearch – Neil85

回答

0

以你(好!)问题标题谷歌直接导致here,这表明

WHERE Country_OO.Value Like "*a*" 

应该工作。

但是,如果不使用多值字段真的会更好。永远。

+0

这接缝是我的问题的答案。谢谢。 – Neil85

+0

如果答案解决了您的问题,您可以[接受它](http://stackoverflow.com/help/someone-answers),这也标志着问题已解决。 @ Neil85 – Andre

相关问题