0

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

该报告有一个记录源“表 1”和一个名为“txt_Value1”的文本框,该文本框显示字段中的数字:“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 时我缺少什么?

4

1 回答 1

1

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

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

Nz如果字段可能包含NULL值,则需要,在这种情况下,类型转换函数将返回错误。

于 2017-01-13T05:09:58.280 回答