2014-10-10 77 views
0

試圖編寫一個SELECT語句,它將從表中選擇前3行tblProducts WHERE標識符與輸入數據的前兩個字符相同。我決定使用IN操作,但不是不起作用。我也嘗試過LI,而不是IN,但我不斷收到此行的錯誤消息。我的邏輯錯了嗎?TOP 3的SQL語句

SELECT TOP 3 
FROM tblProducts 
WHERE VendorID IN UCase(Me.txtProdID.Text) 
+0

你的錯誤是什麼? – paqogomez 2014-10-10 03:13:52

回答

0

使用括號嘗試,也是的.text可能導致的問題,增加的ToString(),或因爲它的ID,也許toInt()

SELECT TOP (3) 
FROM tblProducts 
WHERE VendorID like UCase(Me.txtProdID.Text.toInt()) 
+0

我不確定此代碼將在哪個平臺上編譯。 – paqogomez 2014-10-10 03:16:14

+0

我的印象是他從文本框中獲取了值,但是我沒有足夠的聲望來發表評論以要求他具體:/我假設他可能錯過了從文本框值到其他東西的解析(int或者串) – luisluix 2014-10-10 03:22:34

2

我認爲你只是缺少您在top 3之後的列定義。試試這個:

SELECT TOP 3 * 
FROM tblProducts 
WHERE VendorID = UCase(Me.txtProdID.Text) 

另外,如果你想使用IN,我認爲你需要括號。我將其更改爲=


編輯,重讀WHERE the Vender ID is like the first two characters of the entered data. 後,您可能需要使用LIKELEFT(或SUBSTRING),不INWHERE標準:

WHERE VendorID like Left(UCase(Me.txtProdID.Text),2) + '%' 

而且,你可能不需要ucase - 依賴在你的數據庫整理。