2014-12-23 2 views
-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

Смежные вопросы