sql
  • vba
  • ms-access
  • access-vba
  • 2014-12-23 45 views -1 likes 
    -1

    所以我有這兩個查詢在我的訪問VBA代碼。當我將like替換爲=時,我最終沒有檢索到記錄。類似的工作完全順利,但我不能使用它,因爲有時它會拉出錯誤的數據。我在做什麼= =運算符錯誤?=和LIKE運算符在一個sql命令中

    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) 
    
    +3

    =比較(認爲它是_equal_)不符合通配符(* < - 通配符)。它尋找完全匹配! – DaniEll

    +0

    對!這就是我假設txtGroupNum.Value和txtGroupNum.Value嚴格保存來自數據庫的值。所以我不明白爲什麼我用它們找到記錄時沒有結果。 – SaladSnake

    回答

    2

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

    是找星號字符時與LIKE組合僅具有象徵意義的「東西」所包圍的值。

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

    你也應該逃避任何用戶輸入/使用參數化查詢。

    +1

    感謝這正是我正在尋找的信息! – SaladSnake

    相關問題