2012-03-01 2 views
0

Раньше в тот же день я выяснил следующий запрос.Поиск поля, содержащего строку Доступ 07

SELECT DISTINCT Visits.KHA_ID, Visits.totalCharges 
    FROM (Visits INNER JOIN (ICDTable INNER JOIN ICDVisitsJxn ON ICDTable.ICD9ID = ICDVisitsJxn.ICD_IDFK) ON Visits.ID = ICDVisitsJxn.VisitsIDFK) 
INNER JOIN (ICDTable AS ICDTable_1 
INNER JOIN ICDVisitsJxn AS ICDVisitsJxn_1 ON ICDTable_1.ICD9ID = ICDVisitsJxn_1.ICD_IDFK) ON Visits.ID = ICDVisitsJxn_1.VisitsIDFK 
    WHERE (((ICDTable.Description) 
Like "*[enter term]*") AND ((ICDTable_1.Description) Like "*[enter another term]*")); 

Это работает так, как я этого хочу. Однако я бы предпочел, чтобы вместо того, чтобы вводить точный текст в соответствующем поле, пользователь мог бы искать строку текста. Это было бы похоже на слово Like * здесь * конструкция Access использует. Я всегда жестко закодировал подстроки. Кто-нибудь знает, как это сделать программно.

+0

италиков слова здесь должен быть окружен Asteris кс. – wootscootinboogie

+0

спасибо за подсказку. – wootscootinboogie

+1

Исключение из правила для зарезервированных слов - это слово, в котором слово имеет префикс имени таблицы или псевдонима, в этом случае квадратные скобки не нужны. – Fionnuala

ответ

3

Если вы работаете это в Access, просто добавьте *:

WHERE (((ICDTable.Description) Like "*" & [enter term] & "*") 
AND ((ICDTable_1.Description) Like "*" & [enter another term] & "*")); 

Вы можете обратиться к элементу управления на форме:

WHERE (((ICDTable.Description) Like "*" & Forms!MyForm!FirstTerm & "*") 
AND ((ICDTable_1.Description) Like "*" & Forms!MyForm!SecondTerm & "*")); 
+0

Я попробовал это, и он вернул все записи. lemme посмотрим, сделал ли я что-то не так. – wootscootinboogie

+1

Если вы не введете термин, он вернет все записи, потому что у вас есть 'WHERE Something Like *' – Fionnuala

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