就像Nz不处理空值

时间:2019-04-23 14:25:32

标签: ms-access ms-access-2016

我有一个查询,可以使用表格使用某些过滤选项进行控制。这些过滤器之一是医疗代码搜索。有时,该字段具有值,有时为null。我也希望能够搜索部分数据字符串。我正在尝试的代码是:

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

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

1 个答案:

答案 0 :(得分:1)

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

相反,我们将使用Nz将[已输入费用]中的空值转换为空字符串(“”)。现在,[收费]中的所有项目都被视为条件中的字符串,我们可以将其与LIKE运算符进行比较。

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

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

您可以对[已输入费用]进行排序,以便在结果顶部显示空值,以便在txtChargeCode为空时更容易发现空值。