2013-03-12 26 views
1

我試圖根據記錄的分類將其計算爲三組之一。所以,如果一個,那麼x;否則如果b,那麼y;否則如果c,那麼z。這是我想要的:查詢中嵌套的IIf()表達式的計算結果出錯

Field:IIf([Rating]<6, 
DateAdd("m",3,[Rating/Comments Date]), 
IIf(5<[Rating]<8, 
    DateAdd("m",6,[Rating/Comments Date]), 
    DateAdd("y",1,[Rating/Comments Date]))) 

任何想法爲什麼這是返回「#error」,而不是計算的DateAdd結果?

回答

0

嘗試將5<[Rating]<8段更改爲[Rating] BETWEEN 6 AND 7

+0

這仍然返回#ERROR對每條記錄。 – Tony 2013-03-12 19:38:42

+0

轉到您的表格的設計視圖,並檢查[評估/評論日期]字段的格式。如果日期存儲爲字符串,則DateAdd函數將失敗。 – Taliesin 2013-03-12 19:42:37

+0

我也看到這個錯誤評估null值。您的[評分]或[評分/評論日期]欄位是否有空值? – Taliesin 2013-03-12 19:45:54

0

年是yyyyhttp://office.microsoft.com/en-ie/access-help/dateadd-function-HA001228810.aspx

如何簡化:

Field:IIf([Rating]<6, 
DateAdd("m",3,[Rating/Comments Date]), 
IIf([Rating]>8, DateAdd("yyyy",1,[Rating/Comments Date]), 
    DateAdd("m",6,[Rating/Comments Date]))) 
+0

除了一個500的記錄外,它仍然會返回#error。這讓我瘋狂!不過謝謝你幫助我簡化。 – Tony 2013-03-12 19:57:28

+2

你有一些樣本數據嗎? – Fionnuala 2013-03-12 19:59:17

+1

@Tony沒有樣本數據我可以重新創建您遇到的問題的唯一方法是將[評分]字段轉換爲以文本形式存儲的數字。我建議再看看你的餐桌設計。 – Taliesin 2013-03-13 14:12:19