套用到
Microsoft 365 Access Access 2024 Access 2021 Access 2019 Access 2016

會視運算式的評估而定,傳回兩個部分的其中一個部分。

你可以在任何地方使用 表達 式。 你用 IIf 來判斷另一個表達式是真還是假。 若表達式為真, IIf 回傳一個值;若為假, IIf 會返回另一個。 你指定了 IIf 回傳的值。

請參考一些範例

語法

( expr truepart falsepart )

IIf 函數語法具有以下參數:

引數

描述

expr

必要。 你想評估的表情。

真部

必要。 如果 expr,則回傳值或表達式。

falsepart(假部分)

必要。 如果 exprFalse,則回傳值或表達式。

註解

我總是 同時評估 truepartfalsepart,儘管它只回傳其中一個。 因此,你應該注意不良副作用。 例如,若評估 falsepart 導致除以零誤差,即使 expr,仍發生錯誤。

範例

在表單或報告中使用 IIf    假設你有一個 Customers 資料表,裡面有一個名為 CountryRegion 的欄位。 在表格中,你要標明該聯絡人的第一語言是否為義大利語。 你可以新增一個控制項,並在其控制源屬性中使用 IIf,例如:

=IIf ([國家區域]=「義大利」、「義大利」、「其他語言」)

當你在表單檢視中打開表單時,當 CountryRegion 的值是義大利時,控制項會顯示「義大利語」,而當 CountryRegion 是其他值時,則顯示「某種其他語言」。

在複雜表達式中使用 IIf    你可以將任何表達式作為 IIf 陳述的任意部分。 你也可以「巢狀」 IIf 表達式,讓你評估一系列相依式。 為了繼續前述範例,你可能想測試多個不同的 CountryRegion 值,然後根據存在的值顯示相應的語言:

=IIf ([CountryRegion]=「義大利」、「義大利語」、IIf ([CountryRegion]=「法國」、「法國」、IIf ([CountryRegion]=「德國」、「德國」、「其他語言」) ) )

文本「Some other language」是最內層 IIf 函數的假部分參數。 由於每個巢狀的 IIf 函數都是包含它的 IIf 函數的 falsepart 參數,因此只有當所有 IIf 函數的所有 expr 參數都值為 False 時,文字「Some other language」才會被回傳。

再舉一個例子,假設你在圖書館工作。 圖書館資料庫有一個名為「借出」的表格,裡面有一個名為「到期日」的欄位,記錄某本書的歸還日期。 你可以透過控制項控制來源屬性中的 IIf 函式,建立一個表單,顯示已借出項目的狀態,例如:

=IIf ([截止日期]<日期 () ,「逾期」,IIf ([截止日期]=日期 () ,「今日截止」、「尚未到期」) )

當你在表單檢視中開啟表單時,控制項顯示「逾期」若截止日期低於當前日期;若值等於當前日期,則顯示「今日截止」,否則顯示「尚未到期」。

附註: 若要在 IIf 函數的 expr 參數中使用「And」或「Or」等邏輯運算子,必須在 Eval 函數中包含邏輯表達式。 請參考以下範例表格。

在查詢中使用 IIf   

IIf 函數常用於查詢中建立計算欄位。 語法相同,不同之處在於查詢時,表達式前必須加上欄位別名和冒號 (:) ,而非等號 (=) 。 要使用上述範例,你可以在查詢設計網格的 欄位 欄位輸入以下內容:

語言:IIf ([CountryRegion]=「義大利」、「義大利」、「其他語言」)

此時,「Language:」即為欄位別名。

欲了解更多關於建立查詢與計算欄位的資訊,請參閱文章「 建立一個簡單選擇查詢」。

在 VBA 程式碼中使用 IIf   

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

此範例使用 IIf 函數來評估 CheckIt 程序中的 TestMe 參數,若金額大於 1000,則回傳「Large」字;否則,則回傳「Small」這個詞。

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

更多例子

  1. 表達式 =IIf ([機場代碼]=“ORD”,“芝加哥”,IIf ([機場代碼]=“ATL”,“Atlanta”,IIf ([機場代碼]=“SEA”,“Seattle”,“其他”) ) ) 結果 若[機場代碼]為「ORD」,則回傳「芝加哥」。 否則,如果[機場代碼]是「ATL」,則回程為「Atlanta」。 否則,若[機場代碼]為「SEA」,則返回「Seattle」。 否則,請回傳「其他」。

  2. 表達式 =IIf ([出貨日期]<日期 () ,「已出貨」,IIf ([出貨日期]=日期 () ,「今日出貨中」,「未出貨」) ) 結果 若 [ShipDate] 早於今日日期,請回覆「已出貨」。 否則,如果[ShipDate]等於今天的日期,請回傳「Shipping today」。 否則,請「未寄回」狀態。

  3. 表達式 =IIf ([PurchaseDate]<#1/1/2008#,「舊」,「新」) 結果 若[購買日期]為2008年1月1日之前,請回報「舊」。 否則,請以「全新」方式退回。

  4. 表達式 = (評估 ([伏特] 介於 12 到 15 之間,[安培] 介於 0.25 到 0.3) ,「OK」、「未校正」) 結果 若 [Volts] 介於 12 到 15 之間,[Amps] 介於 0.25 到 0.3 之間,則回傳「OK」。 否則,請回傳「校準未完成」。

  5. 表達式 = ( (「加拿大」、「美國」、「墨西哥」 ( ) ) 、北美洲」、「其他」) 評估結果 若 [CountryRegion] 是「Canada」、「USA」或「Mexico」,則回傳「北美洲」。 否則,請回傳「其他」。

  6. 表達式 =IIf ([平均]>=90,“A”,IIf ([平均]>=80,“B”,IIf ([平均]>=70,“C”,IIf ([平均]>=60,“D”,“F”) ) ) ) 結果 若[平均]為90或以上,則回傳「A」。 否則,若[平均]為80或以上,則返回「B」。 否則,若平均值達70或以上,則回傳「C」。 否則,若 [平均值] 為 60 或以上,則回傳「D」。 否則,請回傳「F」。

附註: 如果你使用 IIf 函數在查詢中建立計算欄位,請將等號 (=) 替換成欄位別名和冒號 (:) 。 例如, 狀態:IIf ([出貨日期]<日期 () ,「已出貨」,IIf ([出貨日期]=日期 () ,「今日出貨中」、「未出貨」) )

需要更多協助嗎?

想要其他選項嗎?

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