2012-04-23 4 views
0

Это выражение в поисковом запросе не дает никаких результатов.выражение в мс доступ

code и code2 - это поле со списком в форме поиска, CS_Code - стол для таблицы.

[CS_Code]=([Forms]![Search Form]![code] Or 
[Forms]![Search Form]![code2]) Or 
([Forms]![Search Form]![code] Is Null Or 
    [Forms]![Search Form]![code2] Is Null) 

Я пытаюсь получить записи (результаты поиска) из таблицы, когда CS_code равно code или code2

ответ

2

Вам нужно повторить сравнение:

WHERE ([CS_Code]=([Forms]![Search Form]![code] 
     Or [CS_Code]=[Forms]![Search Form]![code2]) 
Or ([Forms]![Search Form]![code] Is Null 
     Or [Forms]![Search Form]![code2] Is Null) 
0

Вы могли бы сократить это с помощью функция IsNull:

WHERE IsNull(([Forms]![Search Form]![code],[CS_Code]) = [CS_Code] 

и аналогичным образом для другого поля. Если поле со списком равно null, это вернет значение поля таблицы, которое всегда будет равно самому.

Если вы делаете это для нескольких комбинированных ящиков, возможно, пришло время отступить и посмотреть, что вы пытаетесь сделать. Одна из возможностей заключалась бы в написании подпрограммы VBA для обработки всех комбинированных полей формы.

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