“我收到运行时错误3021,但查询不是空的。”
仔细检查该点。
Dim strSelect As String
strSelect = "SELECT * FROM Equipas " & _
"WHERE ([ID - Funcionário] LIKE '" & _
idfunc & "' AND [ID - Tarefa] LIKE ' " & idtask & "');"
Debug.Print strSelect
rst.Open strSelect, CurrentProject.Connection, adOpenDynamic, adLockOptimistic
If rs.BOF And rs.EOF Then
MsgBox "recordset is empty"
Else
rs.MoveLast
MsgBox "recordset contains " & rs.RecordCount & " rows"
End If
'rst.Delete adAffectCurrent
'rst.Update
rst.Close
如果代码的那个版本告诉你“记录为空”,请立即窗口(按Ctrl + 克)检查SELECT
语句代码构建。您可以复制语句文本并将其粘贴到新的Access查询的SQL视图中进行测试。
我最好的猜测是该查询返回任何行,因为它包含只是idtask
值前一个空格,没有[ID - Tarefa]
值匹配空间,加上idtask
:
idfunc & "' AND [ID - Tarefa] LIKE ' " & idtask & "');"
^here
尝试下探的','在结束SQL。如果仍然不起作用,请尝试打印出生成的SQL并直接在Access中运行它。 –
重复问题中的问题是'LIKE'通配符。虽然这个问题也使用'LIKE',但没有迹象表明涉及通配符。 – HansUp