2016-09-15 17 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