在sql命令中使用=和LIKE运算符

时间:2014-12-23 14:54:16

标签: sql vba ms-access access-vba

所以我在访问VBA代码中有这两个查询。当我用like替换=时,我最终没有检索到任何记录。类似的工作完美但没有使用它,因为有时它会提取错误的数据。我对=运算符做错了什么?

Set rsStepCalendar = db.OpenRecordset("Select * from tblStepCalendar " & _
                                      "Where (groupNr = '*" & txtGroupNum.Value & "*' ) " & _
                                      "AND (Cancel = False)", dbOpenDynaset)
Set rs = db.OpenRecordset("Select * from tblContacts " & _
                          "Where (groupNum = '*" & txtGroupNum.Value & "*' ) " & _
                          "AND (canceledContact = False)", dbOpenDynaset)

1 个答案:

答案 0 :(得分:2)

groupNum = '*" & txtGroupNum.Value & "*'

正在寻找由星号字符包围的值,当与LIKE结合使用时,这些字符只具有符号含义为“任何东西”。

=使用groupNum = '" & txtGroupNum.Value & "'

您还应该转义任何用户输入/使用参数化查询。