我尝试使用查询构建器根据表单上的用户输入来制定查询,但我遇到了问题。
我一直在使用此代码过滤并检查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;第二种情况的陈述?
答案 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])