像Nz一样不处理空值

问题描述 投票:0回答:1

我有一个查询,我使用表单控制一些过滤选项。其中一个过滤器是医疗代码搜索。有时这个字段有一个值,有时它是null。我希望能够搜索部分数据串。我正在尝试的代码是:

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

我想要发生的是,如果我在txtChargeCode中输入一些值,它将返回带有该字符串的任何记录。那部分有效。当txtChargeCode没有值时会出现问题。如果“已输入费用”的记录为空,则会从结果中过滤掉这些记录。我仍然看到有价值的记录。如果txtChargeCode保留为空,我希望记录中输入的费用的任何空值出现在结果中。任何人都可以帮我解决这里发生的事情吗?我已经多次看过Like和Nz页面了。

ms-access ms-access-2016
1个回答
1
投票

您当前的条件永远不会为null,因为它将始终包含字符串“**”。

相反,我们将使用Nz将[Charges Entered]中的空值转换为空字符串(“”)。现在,[Charges Entered]中的所有项目都被认为是条件中的字符串,我们可以将它们与LIKE运算符进行比较。

当txtChargeCode为空时,下面的表达式将返回所有记录(包括空值)。

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

您可以对[Charges Entered]进行排序,以便在结果的顶部显示空值,以便在txtChargeCode为空时更容易发现空值。

© www.soinside.com 2019 - 2024. All rights reserved.