식 계산에 따라 두 부분 중 하나를 반환합니다.
식을 사용할 수 있는 모든 곳에서 IIf 를 사용할 수 있습니다. IIf를 사용하여 다른 식이 true인지 false인지 확인합니다. 식이 true이면 IIf 는 하나의 값을 반환합니다. false이면 IIf 에서 다른 값을 반환합니다. IIf가 반환하는 값을 지정합니다.
구문
IIf ( expr , truepart , falsepart )
IIf 함수 구문에는 다음과 같은 인수가 사용됩니다.
인수 |
설명 |
expr |
필수 요소입니다. 평가할 식입니다. |
truepart |
필수 요소입니다. expr이 True이면 반환되는 값 또는 식입니다. |
falsepart |
필수 요소입니다. expr이 False이면 반환되는 값 또는 식입니다. |
주의
IIf 는 둘 중 하나만 반환하더라도 항상 truepart 와 falsepart를 모두 평가합니다. 이 때문에, 바람직하지 않은 부작용에 대 한 watch 해야 합니다. 예를 들어 falsepart 를 평가하면 0으로 나누기 오류가 발생하는 경우 expr 이 True인 경우에도 오류가 발생합니다.
예제
폼 또는 보고서에서 IIf 사용 CountryRegion이라는 필드가 포함된 Customers 테이블이 있다고 가정합니다. 양식에서 이탈리아어가 연락처의 첫 번째 언어인지 여부를 나타내려고 합니다. 다음과 같이 컨트롤을 추가하고 컨트롤 원본 속성에서 IIf를 사용할 수 있습니다.
=IIf([CountryRegion]="Italy", "Italian", "Some other language")
폼 보기에서 폼을 열면 CountryRegion 값이 이탈리아일 때마다 컨트롤에 "이탈리아어"가 표시되고 CountryRegion이 다른 값일 때마다 "일부 다른 언어"가 표시됩니다.
복잡한 식에서 IIf 사용 모든 식을 IIf 문의 일부로 사용할 수 있습니다. 일련의 종속 식을 평가할 수 있도록 IIf 식을 "중첩"할 수도 있습니다. 앞의 예제를 계속하려면 여러 가지 CountryRegion 값을 테스트한 다음, 존재하는 값에 따라 적절한 언어를 표시할 수 있습니다.
=IIf([CountryRegion]="Italy", "Italian", IIf([CountryRegion]="France", "French", IIf([CountryRegion]="Germany", "German", "Some other language"))
텍스트 "일부 다른 언어"는 가장 안쪽에 있는 IIf 함수의 falsepart 인수입니다. 중첩된 각 IIf 함수는 IIf 함수가 포함된 IIf 함수의 falsepart 인수이므로 모든 IIf 함수의 모든 expr 인수가 False로 평가되는 경우에만 "일부 다른 언어"라는 텍스트가 반환됩니다.
또 다른 예제에서는 라이브러리에서 작업한다고 가정합니다. 라이브러리 데이터베이스에는 특정 책이 기한이 지난 날짜가 포함된 기한이라는 필드가 포함된 체크 아웃이라는 테이블이 있습니다. 다음과 같이 해당 컨트롤의 Control Source 속성에서 IIf 함수를 사용하여 컨트롤에서 체크 아웃된 항목의 상태 나타내는 폼을 만들 수 있습니다.
=IIf([기한]<Date(),"OVERDUE",IIf([Due Date]=Date(),"due today","not yet due"))
폼 보기에서 양식을 열면 기한 값이 현재 날짜보다 작으면 "OVERDUE", 현재 날짜와 같은 경우 "오늘 기한", 그렇지 않으면 "Not Yet Due"가 표시됩니다.
참고: IIf 함수의 expr 인수에서 "And" 또는 "Or"와 같은 논리 연산자를 사용하려면 Eval 함수에서 논리 식을 묶어야 합니다. 다음 예제 테이블을 참조하세요.
쿼리에서 IIf 사용
IIf 함수는 쿼리에서 계산 필드를 만드는 데 자주 사용됩니다. 구문은 동일하며 쿼리에서 등호(=) 대신 필드 별칭과 콜론(:)을 사용하여 식 앞에 서두를 수 있어야 한다는 점을 제외하고는 동일합니다. 앞의 예제를 사용하려면 쿼리 디자인 표의 필드 행에 다음을 입력합니다.
언어: IIf([CountryRegion]="Italy", "Italian", "Some other language")
이 경우 "Language:"는 필드 별칭입니다.
쿼리 및 계산 필드를 만드는 방법에 대한 자세한 내용은 간단한 선택 쿼리 만들기 문서를 참조하세요.
VBA 코드에서 IIf 사용
참고: VBA(Visual Basic for Applications) 모듈에서 이 함수를 사용하는 경우를 예로 들어 보겠습니다. VBA 사용에 대해 자세히 알아보려면 검색 옆의 드롭다운 목록에서 개발자 참고를 선택하고 검색 상자에 검색어를 하나 이상 입력하세요.
이 예제에서는 IIf 함수를 사용하여 CheckIt 프로시저의 TestMe 매개 변수를 평가하고 크기가 1000보다 크면 "Large"라는 단어를 반환합니다. 그렇지 않으면 "Small"이라는 단어를 반환합니다.
Function CheckIt (TestMe As Integer)
CheckIt = IIf(TestMe > 1000, "Large", "Small") End Function
추가 예제
Expression |
결과 |
=IIf([AirportCode]="ORD","Chicago",IIf([AirportCode]="ATL","Atlanta",IIf([AirportCode]="SEA","Seattle","Other")) |
[AirportCode]가 "ORD"인 경우 "시카고"를 반환합니다. 그렇지 않으면 [AirportCode]가 "ATL"인 경우 "Atlanta"를 반환합니다. 그렇지 않으면 [AirportCode]가 "SEA"이면 "Seattle"을 반환합니다. 그렇지 않으면 "기타"를 반환합니다. |
=IIf([ShipDate]<Date(),"Shipped",IIf([ShipDate]=Date(),"shipping today","Unshipped")) |
[ShipDate]가 오늘 날짜 이전인 경우 "Shipped"를 반환합니다. 그렇지 않으면 [ShipDate]가 오늘 날짜와 같으면 "오늘 배송"을 반환합니다. 그렇지 않으면 "언시핑됨"을 반환합니다. |
=IIf([PurchaseDate]<#1/1/2008#,"Old","New") |
[PurchaseDate]가 2008년 1월 1일 이전인 경우 "Old"를 반환합니다. 그렇지 않으면 "새로 만들기"를 반환합니다. |
=IIf(Eval([Volts] Between 12 and 15 and [Amps] between 0.25 and 0.3),"OK","out of calibration") |
[Volts]가 12에서 15 사이이고 [Amps]가 0.25에서 0.3 사이인 경우 "OK"를 반환합니다. 그렇지 않으면 "보정 중단"을 반환합니다. |
=IIf(Eval([CountryRegion] In ("Canada","USA","Mexico"),"북아메리카","Other") |
[CountryRegion]이 "캐나다", "USA" 또는 "멕시코"인 경우 "북아메리카"를 반환합니다. 그렇지 않으면 "기타"를 반환합니다. |
=IIf([Average]>=90,"A",IIf([Average]>=80,"B",IIf([Average]>=70,"C",IIf([Average]>=60,"D","F"))) |
[Average]가 90 이상인 경우 "A"를 반환합니다. 그렇지 않으면 [Average]가 80 이상인 경우 "B"를 반환합니다. 그렇지 않으면 [Average]가 70 이상인 경우 "C"를 반환합니다. 그렇지 않으면 [Average]가 60 이상인 경우 "D"를 반환합니다. 그렇지 않으면 "F"를 반환합니다. |
참고: IIf 함수를 사용하여 쿼리에서 계산 필드를 만드는 경우 등호(=)를 필드 별칭 및 콜론(:)으로 바꿉니다. 예를 들어 상태: IIf([ShipDate]<Date(),"Shipped",IIf([ShipDate]=Date(),"Shipping today","Unshipped"))