2016-08-11 3 views
1

Я прочитал сотни вопросов и ответов, но я просто не могу заставить это работать. Я пытаюсь использовать этот SQL заявление, чтобы установить RowSource для ListBox ...Проблема с использованием «Like» в SQL Statement в VBA for Access 2013

If searchOpt = 1 Then 
    sqlStr = "SELECT tblEquipment.anumEquipID," & _ 
    " tblEquipment.strPCN," & _ 
    " tblEquipment.strDescription," & _ 
    " tblEquipment.strOwnerDepartment," & _ 
    " tblEquipment.strPrimaryID," & _ 
    " tblEquipment.strSecondaryID," & _ 
    " tblEquipment.strNote," & _ 
    " tblEquipment.ynCapitalItem," & _ 
    " tblEquipment.strLocation," & _ 
    " tblContacts.strPrimaryContact," & _ 
    " tblContacts.strPrimaryPhone" & _ 
    " FROM tblContacts RIGHT JOIN tblEquipment ON tblContacts.anumID = tblEquipment.strPrimaryID" & _ 
    " WHERE (((tblEquipment.strDescription) Like " * " & [Forms]![frmSearch]![strSearchBox] & " * "));" 

Я получаю ошибку «Несоответствие типов» с помощью выше. Я попытался изменить кавычки и изменить * на%, где я либо получаю сообщение «Синтаксис», либо нет ошибки, но список не заполняется. Кстати, этот код привязан к кнопке, которая нажата для поиска текста поля данных «strDescription» с использованием несвязанного текстового поля в форме.

Я бы очень признателен за любую помощь, которую вы можете предложить. Благодаря

ответ

2

* также означает «умножить две вещи» (например x * y), поэтому ваш Неверный формат кода дает вам тип ошибки при попытке умножить две строки (потому что, конечно, что не имеет никакого смысла!)

То, что вы действительно хотите, - это последняя строка для инкапсуляции * вместо того, чтобы быть отдельной строкой с * операцией между ними. Замените его:

" WHERE (((tblEquipment.strDescription) Like ""*"" & [Forms]![frmSearch]![strSearchBox] & ""*""));" 

(. Мы используем две двойные кавычки как побег, чтобы получить одну двойную котировку на выходе - просто поверьте мне, это работает)

+0

Вы можете видеть из подсветки синтаксиса что это не сработает. Вам нужно '' WHERE (((tblEquipment.strDescription) Как «*» и [Forms]! [FrmSearch]! [StrSearchBox] & "* '));" или '" WHERE (((tblEquipment.strDescription) Как " «*» & [Forms]! [FrmSearch]! [StrSearchBox] & "*" "));" ' – Andre

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

  • Нет связанных вопросов^_^