Sign in with Microsoft
Sign in or create an account.
Hello,
Select a different account.
You have multiple accounts
Choose the account you want to sign in with.

根據 運算式的評估,傳回兩個部分的其中之一。

您可以在任何可以使用表達式的任何地方使用 IIf 。 您可以使用 IIf 來判斷另一個運算式是否為 True 或 False。 如果表達式為 True,IIf 會 傳回一個值;如果是 False,IIf 會 傳回另一個。 您可以指定 IIf 傳 回的值。

查看一些範例

語法

IIf ( expr truepart falsepart )

IIf 函數語法具有下列自變數:

引數

描述

expr

必要。 您要評估的表達式。

truepart

必要。 expr 為 True 時 回的值或表示

falsepart

必要。 expr 為 False 時 回的值或表示


註解

IIf 一律會評估 truepartfalsepart,即使它只傳回其中一個。 因此,您應該 watch 不受歡迎的副作用。 例如,如果評估 falsepart 會導致除數為零錯誤,即使 exprTrue,也會發生錯誤。

範例

在表單或報表上使用If   假設您有一個名為 CountryRegion 的 [客戶] 數據表。 在表單中,您想要表示義大利文是否為聯繫人的第一種語言。 您可以在其 [控制項來源] 屬性中新增控制項並使用 IIf,如下所示:

=IIf ([CountryRegion]=“Italy”, “Italian”, “Some other language”)

當您在 [表單視圖] 中開啟窗體時,每當 CountryRegion 的值是義大利時,控件就會顯示 “Italian”,每當 CountryRegion 是任何其他值時,控件就會顯示 “Some Other language”。

在複雜的表達式中使用If   您可以使用任何運算式做為 IIf 語句 的任何部分。 您也可以「巢狀」 IIf 表達式,讓您評估一系列從屬表達式。 若要繼續使用上一個範例,建議您測試幾個不同的 CountryRegion 值,然後根據值存在而顯示適當的語言:

=IIf ([CountryRegion]=“Italy”, “Italian”, IIf ([CountryRegion]=“France”, “French”, IIf ([CountryRegion]=“Germany”, “German”, “Some other language”) ) )

文字「其他語言」是最內部If函數的 falsepart 自變數。 由於每個巢狀 IIf 函數都是包含該函數之 IIf 函數的 falsepart 自變數,因此只有在所有 IIf 函數的 expr 自變數都評估為 False 時,才會傳回 “Some other language” 文字。

另一個範例是,假設您在文檔庫工作。 文件庫資料庫有一個名為 [取出] 的數據表,其中包含一個名為 [到期日] 的欄位,其中包含特定書籍的到期日。 您可以在控件的 [件來源] 屬性中使用 IIf 函數,建立表單來指出控件中已取出項目的狀態,如下所示:

=IIf ([Due Date]<Date () ,“OVERDUE”,IIf ([Due Date]=Date () ,“今天到期”,“還未到期”) )

當您在 [表單視圖] 中開啟表單時,如果 [到期日] 的值小於目前日期,控件會顯示 “DUE”;如果 [今天到期] 等於目前日期,則控件會顯示 “DUE”;否則則顯示 [未到期]。

附註: 若要在 IIf 函數的 expr 自變數中使用 「And」 或 「Or」 等邏輯運算符,您必須在 Eval 函數中括住邏輯表達式。 請參閱下列範例數據表。

在查詢中使用IF    

IIf 函數常用於在查詢中建立匯出欄位。 語法是相同的,除了在查詢中,您必須在表達式的開頭加上字段別名和冒號 () 而非等號 (=) 。 若要使用上述範例,請在查詢設計網格線的 [字段 ] 列中輸入下列內容:

語言:IIf ([CountryRegion]=“Italy”, “Italian”, “Some other language”)

在此情況下,「語言:」是欄位別名。

如需建立查詢和匯出字段的詳細資訊,請參閱 建立簡易選取查詢一文。

在 VBA 程序代碼中使用 IIf    

附註: 下列範例示範如何在 Visual Basic for Applications (VBA) 模組中使用此函數。 如需使用 VBA 的詳細資訊,請在 [搜尋] 旁的下拉式清單中選取 [開發人員參考],並在 [搜尋] 方塊中輸入一個或多個字詞。

此範例使用 IIf 函數來評估 CheckIt 程式的 TestMe 參數,如果金額大於 1000,則會傳回 “Large” 這個字;否則,它會傳回「小」一詞。

Function CheckIt (TestMe As Integer)
CheckIt = IIf(TestMe > 1000, "Large", "Small")
End Function

更多範例

Expression

結果​​

=IIf ([AirportCode]=“ORD”,“Chicago”,IIf ([AirportCode]=“ATL”,“Seattle”,IIf ([AirportCode]=“SEA”,“Seattle”,“Other”) ) )

如果 [AirportCode] 為 “ORD”,請傳回 “Chicago”。 否則,如果 [AirportCode] 為 「ATL」,則傳回 「碼」。。 否則,如果 [AirportCode] 為 “SEA”,則傳回 “Seattle”。 否則,請傳回「其他」。

=IIf ([ShipDate]<Date () ,“Shipped”,IIf ([ShipDate]=Date () ,“今天出貨”,“取消交貨”) )

如果 [ShipDate] 早於今天的日期,傳回「已出貨」。 否則,如果 [ShipDate] 等於今天的日期,則傳回「今天出貨」。 否則,請傳回「未移位」。

=IIf ([PurchaseDate]<#2008/1/1#,“Old”,“New”)

如果 [PurchaseDate] 是在 2008/1/1 之前,則傳回 “Old”。 否則,請傳回「新增」。

=IIf (Eval ([Volts] Between 12 And 15 And [Amps] Between 0.25 And 0.3) ,“OK”,“不校正”)

如果 [伏特] 在 12 到 15 之間,而 [Amps] 在 0.25 到 0.3 之間,則傳回 「確定」。 否則,請傳回「未校正」。

=IIf (Eval ([CountryRegion] In (“Canada”,“USA”,“Mexico”) ) ,“北美洲”,“Other”)

如果 [CountryRegion] 是 “Canada”、“USA” 或 “Mexico”,則傳回 “北美洲”。 否則,請傳回「其他」。

=IIf ([Average]>=90,“A”,IIf ([Average]>=80,“B”,IIf ([Average]>=70,“C”,IIf ([Average]>=60,“D”,“F”) ) ) )

如果 [平均] 是 90 或更高,則傳回 “A”。 否則,如果 [平均] 為 80 或更高,則傳回 “B”。 否則,如果 [平均] 為 70 或更高,則傳回 “C”。 否則,如果 [平均] 為 60 或更高,則傳回 “D”。 否則,請傳回 “F”。

附註: 如果您使用 IIf 函數在查詢中建立匯出欄位,請將等號 (=) 取代為欄位別名和冒號 () 。 例如 ,狀態:IIf ([ShipDate]<Date () ,“Shipped”,IIf ([ShipDate]=Date () ,“Ship today”,“Unshipped”) )

Need more help?

Want more options?

探索訂閱權益、瀏覽訓練課程、瞭解如何保護您的裝置等等。

社群可協助您詢問並回答問題、提供意見反應,以及聆聽來自具有豐富知識的專家意見。

Was this information helpful?

How satisfied are you with the translation quality?
What affected your experience?
By pressing submit, your feedback will be used to improve Microsoft products and services. Your IT admin will be able to collect this data. Privacy Statement.

Thank you for your feedback!

×