Like * не фиксирует значения Is Null - PullRequest
0 голосов
/ 01 мая 2018

У меня есть запрос доступа, который фильтрует таблицу в моей базе данных, используя

Like "*" & [Forms]![Reports]![Filter] & "*"

, который захватывает отфильтрованные элементы, если этот фильтр выбран, или возвращает все, если этот фильтр не выбран. Тем не менее, он пропускает нулевые значения. Если фильтр не выбран, строка становится

Like **

, который не захватывает нулевые значения.

Как я могу зафиксировать эти значения так, как я описываю?

Ответы [ 3 ]

0 голосов
/ 01 мая 2018

Вы можете сделать это, либо установив нулевую проверку, чтобы она возвращала данные для обоих условий ->

(Like "*" & [Forms]![Reports]![Filter] & "*" OR MyField IS NULL)

Кроме того, вы должны убедиться, что в интерфейсе пользователя отсутствует значение ->

 (Like "*" & [Forms]![Reports]![Filter] & "*" OR [Forms]![Reports]![Filter] = "" )
0 голосов
/ 01 мая 2018

Два приведенных выше ответа верны, но для обеспечения некоторого дополнительного контекста значение NULL нельзя сравнивать ни с чем. Это не «не 5», не «**», не « foo », не «Date <# 12/31/0000 BC #», не «False», вы понимаете, , Единственный способ отобрать его - это сделать, как утверждают вышеупомянутые эксперты, IS NULL или NOT NULL. </p>

0 голосов
/ 01 мая 2018

В критериях Microsoft Access Query вы можете также использовать OR :

Like "*" & [Forms]![Reports]![Filter] & "*" Or Is Null 

... чтобы вернуть Null not , затем используйте:

Is Not Null

... или,

Like "*" & [Forms]![Reports]![Filter] & "*" And Is Not Null 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...