2013-01-31 67 views
0
iif((([START DATE]<(cdate(format(year() & [WinterStartMonth] & [WinterStartDay],"####/##/##")))) AND ([START DATE]>(cdate(format(year() & [SummerStartMonth] & [SummerStartDay], "####/##/##"))))), (DateAdd("d", [WinterInspectionDropDead], [START DATE])), (DateAdd("d", [SummerInspectionDropDead], [START DATE]))) AS dropDead 

有人可以發現問題嗎?我認爲我已經使用了括號中的OTT,但我似乎無法動搖這個錯誤。訪問/ VBA 3075 - 錯誤的IIF號碼

+2

語法上它看起來是正確的。很糟糕,但正確。 –

+1

除年()不在任何地方。參數不是可選的。 – Fionnuala

回答

0

通常可以使用VBA來很容易地發現錯誤,所以:

IIf([START DATE] < DateSerial(Year(Date),[WinterStartMonth],[WinterStartDay]) _ 
And [START DATE] > DateSerial(Year(Date),[SummerStartMonth],[SummerStartDay]), _ 
DateAdd("d", [WinterInspectionDropDead], [START DATE]), DateAdd("d", _ 
[SummerInspectionDropDead], [START DATE])) 

只需刪除換行符爲SQL:

IIf([START DATE] < DateSerial(Year(Date), [WinterStartMonth], [WinterStartDay]) 
    And [START DATE] > DateSerial(Year(Date),[SummerStartMonth], [SummerStartDay]), 
    DateAdd("d", [WinterInspectionDropDead], [START DATE]), 
    DateAdd("d", [SummerInspectionDropDead], [START DATE])) As Result 

或者可能會更好:

IIf([START DATE] < DateSerial(Year(Date), [WinterStartMonth], [WinterStartDay]) 
    And [START DATE] > DateSerial(Year(Date),[SummerStartMonth],[SummerStartDay]), 
[START DATE] + [WinterInspectionDropDead], 
[START DATE] + [SummerInspectionDropDead]) 
As Result 
+0

魔法 - 謝謝;絕對過於複雜的東西在這裏 - 你可以告訴我不是一個Access本地。 – WillPS