2014-07-21 44 views
0

我試圖使用查詢生成器來基於表單上的用戶輸入來制定查詢,但我遇到了問題。在iif聲明中將「Like」與比較器混合?

我一直在使用這段代碼來過濾和檢查之前工作正常的空/「所有」字段。

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]) 

但它導致我的整個查詢失敗。我怎麼能做這個類似的事情?在空情況下使用「Like *」(返回所有內容),但在第二種情況下使用比較器而不是「like」語句?

回答

0

終於爲我工作,並沒有獲得其切分爲單獨的行中的代碼:

>=IIf([forms]![TransactionsForm]![txtAmountFrom] Is Null,0,[forms]![TransactionsForm]! 
[txtAmountFrom]) And <=IIf([forms]![TransactionsForm]![txtAmountTo] Is Null,9999999999, 
[forms]![TransactionsForm]![txtAmountTo]) 
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]) 
) 
+0

我在查詢設計器中的條件內進行此操作,而不是where語句。那麼,我在iif聲明之前放什麼?什麼?或者它是如何開始的?由於這仍然不起作用。 – user3790592

+0

你可以把1 = 1或其他一些標準永遠是真的嗎? –

+0

它似乎仍然沒有工作 – user3790592