ACCESS使用使用ADO方式得到记录集时,对应的sql语句不能使用模糊查询吗? 5

比如我想将ss表中字段【姓名】中包含“王”字的姓名更新为ll,使用下面的代码:PrivateSubCommand5_Click()DimstrsqlAsStringDim... 比如我想将ss表中字段【姓名】中包含“王”字的姓名更新为ll,使用下面的代码:
Private Sub Command5_Click()
Dim strsql As String
Dim rst As ADODB.Recordset
Set rst = New ADODB.Recordset
strsql = "select * from ss where 姓名 like '*王*'"
Debug.Print strsql
Set rst = getrstx(strsql)
DoCmd.SetWarnings False
rst.MoveFirst
Do Until rst.EOF
rst!姓名 = "ll"
rst.Update
rst.MoveNext
Loop
rst.Close
Set rst = Nothing
MsgBox "OK"

End Sub
在运行时总是出错,错误提示的意思是说得到的记录集是空的,不知道什么情况?难道ADO方式返回记录集,对应的SQL语句不能使用模糊查询?
其中用于返回记录集的 getrstx函数代码如下:
Public Function getrstx(ByVal strsql As String) As ADODB.Recordset
On Error GoTo err_getrs
Dim rs As ADODB.Recordset
Dim cnn As New ADODB.Connection
Set rs = New ADODB.Recordset
Set cnn = CurrentProject.Connection
rs.Open strsql, cnn, adOpenKeyset, adLockOptimistic
Set getrstx = rs
exit_err_getrs:
Set rs = Nothing
Set cnn = Nothing
Exit Function
err_getrs:
MsgBox (Err.Description)
Resume exit_err_getrs
End Function
展开
 我来答
tjrmgs
2017-07-14 · TA获得超过5765个赞
知道大有可为答主
回答量:2161
采纳率:94%
帮助的人:1050万
展开全部

ADO使用的语法跟ACCESS数据库使用的默认SQL语法是不一样的

ADO要用%(而不是*)作为通配符表示“零到任意多个字符”

请将 strsql = "select * from ss where 姓名 like '*王*'"

改为

strsql = "select * from ss where 姓名 like '%王%'"

代码还应调整一下:

Private Sub Command5_Click()
Dim strsql As String
Dim rst As ADODB.Recordset
Set rst = New ADODB.Recordset
strsql = "select * from ss where 姓名 like '%王%'"  '修改这行
Debug.Print strsql      '这行多余
Set rst = getrstx(strsql)
If rst.Bof And rst.Eof then Exit Sub    '添加这行防止出错
rst.MoveFirst  '这行可以不要
Do Until rst.EOF
rst!姓名 = "ll"
rst.Update
rst.MoveNext
Loop
rst.Close
Set rst = Nothing
MsgBox "OK"
End Sub
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
酒瓶里的蚊子
2015-01-14 · TA获得超过622个赞
知道小有建树答主
回答量:629
采纳率:0%
帮助的人:781万
展开全部
试试:
strsql = "select * from ss where 姓名 like '%王%'"
追问
不行
追答
是否getrstx函数中出错了,导致函数返回了空值?在getrstx函数内部单步执行调试看看。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式