2016-02-04 72 views
0

我是Access的一個開始用戶,並且正在嘗試在表單內部構建一個查詢。語法在Access 2010 IIF查詢

我正在處理我的第一個IIF查詢,並且無法獲得所需的行爲。

我試圖根據4個條目(稱爲[band],[band2],[band3]和[band4])拉取結果。

這是我在哪裏:

Like IIf(IsNull([forms]![financial_filter]![band]),"*",[forms]![financial_filter]![band]) Or Like [forms]![financial_filter]![band2] Or Like [forms]![financial_filter]![band3] Or Like [forms]![financial_filter]![band4] 

這意味着,如果[樂隊]字段爲空,它會拉的所有結果所有波段。但是如果填充了[band]和/或[band2-4]字段,它將只從這些字段中獲取結果。這一切都工作。但是,如果用戶將[band]字段留空並只在[band 2-4]字段中輸入某些內容,則所有結果都會顯示出來,而不僅僅是與[band 2-4]中的數據相關的結果,領域。請告知如何修改我的查詢,以便如果用戶選擇一個或多個樂隊但不將任何內容放入[band]字段,則只會填充選定的結果。

謝謝!

Mike

回答

0

IIF與Query無關。 IIF語句是IF .. THEN .. ELSE .. END IF語句的快捷方式。

MyResult =IIF (Condition, Make1, Make2)意味着

IF Condition THEN 
    MyResult=Make1 
ELSE 
    MyResult= Make2 
END IF 

可以通過嵌套IIF語句,但結果將是難以閱讀,也維持。

因此,就您的情況而言,我會建議您在您的表單的OnCurrent事件中編寫幾行與您的業務邏輯(如果然後結束IF)或(如果然後ELSE結束IF),改善未來維護和可讀性的代碼。

+0

謝謝思科!這很有道理......我將用幾個If/Then/Else語句隔離所有條件! – user2362865