尝试编写一个SELECT语句,它将从表中选择前三行tblProducts WHERE Vender ID就像输入数据的前两个字符。我决定使用IN操作,但不能正常工作。我也试过LIKE而不是IN,但是我一直在用这条线得到错误信息。我的逻辑错了吗?
SELECT TOP 3
FROM tblProducts
WHERE VendorID IN UCase(Me.txtProdID.Text)
答案 0 :(得分: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.
您希望将LIKE
与LEFT
(或SUBSTRING
)一起使用,而不是IN
用于WHERE
条件:
WHERE VendorID like Left(UCase(Me.txtProdID.Text),2) + '%'
此外,您可能不需要ucase
- 取决于您的数据库排序规则。
答案 1 :(得分:0)
尝试使用括号,同时.text可能会导致问题,添加.toString(),或者因为它的ID,也许是toInt()
SELECT TOP (3)
FROM tblProducts
WHERE VendorID like UCase(Me.txtProdID.Text.toInt())