尝试编写一条SELECT语句,该语句将从表tblProducts中选择前3行,其中供应商ID类似于输入数据的前两个字符。我决定使用IN操作,但不起作用。我也尝试过在IN上使用LIKE,但是我一直收到下面这行的错误信息。我的逻辑是错的吗?
SELECT TOP 3
FROM tblProducts
WHERE VendorID IN UCase(Me.txtProdID.Text)
发布于 2014-10-10 11:14:09
我认为在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
--这取决于您的数据库排序规则。
发布于 2014-10-10 11:09:39
试着使用括号,.text也可能会导致问题,添加.toString(),或者由于它是一个ID,可能是toInt()
SELECT TOP (3)
FROM tblProducts
WHERE VendorID like UCase(Me.txtProdID.Text.toInt())
https://stackoverflow.com/questions/26291315
复制相似问题