Как Nz не обрабатывает нулевое значение - PullRequest
0 голосов
/ 23 апреля 2019

У меня есть запрос, который я контролирую с помощью некоторых параметров фильтрации, используя форму.Одним из таких фильтров является поиск медицинского кода.Иногда это поле имеет значение, а иногда оно равно нулю.Я хочу иметь возможность искать частичную строку данных, а также.Код, который я пытаюсь сделать так:

Expr9: ([tblQA].[Charges Entered]) Like Nz("*" & [Forms]![MainMenu]![btnManagersMenu].[Form]![txtChargeCode] & "*","*")

Я хотел бы, чтобы я ввел какое-то значение в txtChargeCode, чтобы оно возвращало любую запись с этой строкой.Эта часть работает.Проблема возникает, когда txtChargeCode не имеет значения.Если для Введенных сборов запись является нулевой, то эти записи отфильтровываются из результатов.Я все еще вижу записи, которые имеют значение.Я хочу, чтобы любые значения NULL для начислений, введенных в записи, отображались в результатах, если txtChargeCode оставлено пустым.Кто-нибудь может мне помочь с тем, что здесь происходит?Я столько раз читал страницы Like и Nz, что мои глаза пересеклись.

1 Ответ

1 голос
/ 23 апреля 2019

Ваши текущие критерии никогда не будут нулевыми, потому что они всегда будут содержать строку "**".

Вместо этого мы будем использовать Nz для преобразования нулевых значений в [Введенные платежи] в пустые строки (""),Теперь, когда все элементы в [Введенные платежи] считаются строками в критериях, мы можем сравнить их с оператором LIKE.

Выражение ниже вернет все записи (включая нули), когда txtChargeCode будет пустым.

Nz([tblQA].[Charges Entered], "") Like "*" & [Forms]![MainMenu]![btnManagersMenu].[Form]![txtChargeCode] & "*"

Вы можете отсортировать [Введенные платежи], чтобы значения NULL отображались в верхней части результатов, чтобы упростить обнаружение значений NULL, когда txtChargeCode пуст.

...