MS Access,使用表达式生成器将一个表中的字段与另一个表中的DLookup进行比较

时间:2017-01-13 02:37:14

标签: ms-access ms-access-2007 expressionbuilder

我尝试制作MS Access报告,其中我使用文本框显示字段值,然后使用另一个文本框指示第一个值是高于还是低于单独表中的条目。

该报告有一个记录来源"表1和#34;以及一个名为" txt_Value1"的文本框。在Field中显示数字:" Value1"。我有第二张桌子," Customer_Criteria"它有一个字段" PassValue"我想比较一下。我的表达式构建器语句是:

IIf([txt_Value1]<(DLookUp("[PassValue]","[Customer_Criteria]","[Customer] = 'ABC'")),"TRUE","FALSE")

无论正确的逻辑结果是什么,此语句始终返回false。

我已经测试过了,写道:

IIf(1<(DLookUp("[PassValue]","[Customer_Criteria]","[Customer] = 'ABC'")),"TRUE","FALSE")

我得到了正确的结果。另外,如果我写:

IIf([txt_Value1]< 1,"TRUE","FALSE")

我得到了正确的结果。比较文本框值与Dlookup我缺少什么?

1 个答案:

答案 0 :(得分:1)

据我了解,这两个字段都是数字。 Access可以将这些字段视为文本,以便正确比较使用类型转换。 试试这个:

IIf(CLng(Nz([txt_Value1],0))< _
    CLng(Nz(DLookUp("[PassValue]","[Customer_Criteria]","[Customer] = 'ABC'"),0)), _
    "TRUE","FALSE")
如果字段可能包含Nz值,则需要

NULL,在这种情况下,类型转换函数将返回错误。