混合'喜欢'在iif语句中使用比较器?

时间:2014-07-21 19:03:35

标签: sql ms-access

我尝试使用查询构建器根据表单上的用户输入来制定查询,但我遇到了问题。

我一直在使用此代码过滤并检查null /" ALL"以前的领域工作正常。

Like IIf([Forms]![TransactionsForm]![ComboActStatus]="ALL","*",
[Forms]![TransactionsForm]![ComboActStatus])

但是当我想用表示范围的字段做同样的事情时,我遇到了一个问题。我试过这个:

IIf([forms]![TransactionsForm]![txtAmountFrom] Is Null Or 
[forms]![TransactionsForm]![txtAmountTo] Is Null,
([dbo_customerQuery].[amount]) Like "*",
([dbo_customerQuery].[amount])>=[forms]! [TransactionsForm]![txtAmountFrom] And
([dbo_customerQuery].[amount])<=[Forms]![TransactionsForm]![txtAmountTo])

但它导致我的整个查询失败。我怎么能这样做呢?使用&#34;喜欢*&#34;在null的情况下(返回所有内容),但使用比较器而不是&#34;喜欢&#34;第二种情况的陈述?

2 个答案:

答案 0 :(得分:0)

除非我遗漏了某些内容,LIKE "*"将为所有值返回true,所以这应该有效:

IIf([forms]![TransactionsForm]![txtAmountFrom] Is Null Or 
    [forms]![TransactionsForm]![txtAmountTo] Is Null,
true,
([dbo_customerQuery].[amount])>=[forms]! [TransactionsForm]![txtAmountFrom] And
[dbo_customerQuery].[amount])<=[Forms]![TransactionsForm]![txtAmountTo])
)

答案 1 :(得分:0)

最终为我工作的代码,并没有Access将其拆分为单独的行:

>=IIf([forms]![TransactionsForm]![txtAmountFrom] Is Null,0,[forms]![TransactionsForm]!
[txtAmountFrom]) And <=IIf([forms]![TransactionsForm]![txtAmountTo] Is Null,9999999999,
[forms]![TransactionsForm]![txtAmountTo])