我正在尝试使用带星号的“喜欢”过滤记录,它在使用 Access 2010 返回许多记录时有效。我很困惑为什么它在与 ADO 一起使用时什么都不返回。该代码包含多个表和列,因此为了排除故障,我做了一个简单的查询。这是代码:
strsql = "SELECT tproducts.Prod_Name FROM tproducts " _
& " WHERE tproducts.Prod_Name Like " & Chr(34) & "SO*" & Chr(34)
Set cn = New ADODB.Connection
cn = connString
cn.Open
Set rs = New ADODB.Recordset
rs.Open strsql, cn, adOpenStatic, adLockOptimistic
' test here
iRecCount = rs.RecordCount
rs.MoveFirst
记录计数返回 -1。
当“Like”被“equals”替换时,它会返回正确的记录,因此我确信它能够连接到数据库,例如:
strsql = "SELECT tproducts.Prod_Name FROM tproducts " _
& " WHERE tproducts.Prod_Name = " & Chr(34) & "SONY Vaio SVD13213CXB" & Chr(34)
在 ADO 中是否有使用 Like 运算符的特殊方法?
我还可以通过哪些其他方式过滤以提供与使用“喜欢”相同的结果?例如,要查找所有“SVD”产品?
最佳答案
在 MS Access 中,通配符几乎总是 *,在 MS Access 之外,它几乎总是 %,所以
str = "SELECT tproducts.Prod_Name FROM tproducts) " _
& " WHERE tproducts.Prod_Name Like ""SO%"""
但是,我强烈建议您转向参数以避免一些严重的问题。
到目前为止,DAO 是 ACE/Jet 的更好选择(粗略示例 Loop table rows in Access, with or without use of Private Const)
关于ms-access - "LIKE"运算符(operator)在 MS Access 中工作,但在 ADO 中不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25634506/