2013-02-18 2 views
2

Я пытаюсь отфильтровать запрос через текстовое поле в форме. У меня это в критериях запроса:Как легко отфильтровать мой запрос

Like "*" & [Forms]![Form_Name]![Textbox] & "*" 

Однако если текстовое поле пустым он только показывает данные в запросе, которые получили текст в поле. Он не отображает все данные, то есть поля, у которых нет данных. Возможно ли это сделать?

Единственный способ, которым я нашел это, состоит в том, чтобы иметь 2 запроса 1 с фильтром и 1 без кода и запустить код, который, если текстовое поле пуст, меняет запрос.

ответ

1

Я не имею копию доступа доступной для меня на данный момент, но быстро Google и некоторые мастерить говорит мне, что это, вероятно, делать то, что вам нужно:

Like "*" & [Forms]![Form_Name]![Textbox] & "*" 
Or (Len(Nz([Forms]![Form_Name]![Textbox],"")) = 0 And Len(Nz([Column],"")) = 0) 

Источники:

http://bytes.com/topic/access/answers/607087-validation-if-null-empty-string http://office.microsoft.com/en-001/access-help/table-of-operators-HA010235862.aspx http://www.techonthenet.com/access/functions/advanced/nz.php

2

Просто добавьте строку нулевой длины в поле для сравнения, то ни одно из полей не будет нулевой, так что они будут соответствовать * ,

WHERE MyField & "" 
Like "*" & [Forms]![Form_Name]![Textbox] & "*"