Zwraca jedną z dwóch części, w zależności od oceny wyrażenie.
Funkcji IIf można używać wszędzie, gdzie można używać wyrażeń. Funkcja IIf służy do określania, czy inne wyrażenie ma wartość prawdziwą, czy fałsz. Jeśli wyrażenie jest prawdziwe, funkcja IIf zwraca jedną wartość. jeśli jest fałszywy, funkcja IIf zwraca inną wartość. Określasz wartości zwracane przez funkcję IIf .
Składnia
IIf ( wyr ., część_prawdziwa ; część_fałszywa )
W składni funkcji IIf występują następujące argumenty:
Argument |
Opis |
wyrażenie |
Argument wymagany. Wyrażenie, które chcesz oszacować. |
truepart |
Argument wymagany. Wartość lub wyrażenie zwracane, jeśli wyrażenie ma wartość Prawda. |
falsepart |
Argument wymagany. Wartość lub wyrażenie zwracane, jeśli wyrażenie ma wartość Fałsz. |
Spostrzeżenia
Funkcja IIf zawsze ocenia wartość truepart i falsepart, mimo że zwraca tylko jedną z nich. Z tego powodu, należy watch dla niepożądanych skutków ubocznych. Na przykład w przypadku oceny wyników części fałszywej w wyniku dzielenia przez zero występuje błąd, nawet jeśli wyr . ma wartość Prawda.
Przykłady
Używanie funkcji IIf w formularzu lub raporcie Załóżmy, że masz tabelę Klienci zawierającą pole o nazwie KrajRegion. W formularzu chcesz określić, czy pierwszym językiem kontaktu jest włoski. Kontrolkę można dodać i użyć funkcji IIf we właściwości Źródło kontrolki , na przykład:
=IIf([KrajRegion]="Włochy", "Włoski", "Inny język")
Po otwarciu formularza w widoku formularza kontrolka wyświetla wartość "Włoski", gdy wartość dla krajówRegion to Włochy, i "Inny język", gdy krajRegion jest inną wartością.
Używanie funkcji IIf w złożonych wyrażeniach Jako dowolnej części instrukcji IIf można użyć dowolnego wyrażenia. Można również "zagnieżdżać" wyrażenia IIf , co umożliwia ocenę serii wyrażeń zależnych. Aby przejść do poprzedniego przykładu, można przetestować kilka różnych wartości CountryRegion, a następnie wyświetlić odpowiedni język w zależności od tego, która wartość istnieje:
=IIf([KrajRegion]="Włochy", "Włoski", IIf([KrajRegion]="Francja", "Francuski", IIf([KrajRegion]="Niemcy", "Niemiecki", "Inny język")))
Tekst "Inny język" jest argumentem część_fałszywa najważniejszej funkcji IIf . Ponieważ każda zagnieżdżona funkcja IIf jest argumentem części fałszywej zawierającej funkcję IIf , tekst "Inny język" jest zwracany tylko wtedy, gdy wszystkie argumenty wyrów wszystkich funkcji IIf mają wartość Fałsz.
Załóżmy na przykład, że pracujesz w bibliotece. Baza danych biblioteki zawiera tabelę o nazwie Wyewidencjonuj, która zawiera pole o nazwie Data ukończenia, które zawiera datę, w której określona książka ma zostać wycofana. Możesz utworzyć formularz wskazujący stan wyewidencjonowanego elementu w kontrolce przy użyciu funkcji IIf we właściwości Źródło kontrolki tej kontrolki, na przykład:
=IIf([Data ukończenia]<Date();"ZALEGŁE";IIf([Data ukończenia]=Date();"Termin wykonania dzisiaj";"Jeszcze nie należy"))
Po otwarciu formularza w widoku formularza kontrolka wyświetla wartość "ZALEGŁE", jeśli wartość daty ukończenia jest mniejsza niż bieżąca data, "Termin dzisiaj", jeśli jest równa bieżącej dacie, a w przeciwnym razie "Jeszcze nie należy".
Uwaga: Aby użyć operatorów logicznych, takich jak "And" lub "Or" w argumentze wyrażenie funkcji IIf , należy ująć wyrażenie logiczne w funkcję Eval . Zobacz poniższą tabelę przykładowej.
Używanie funkcji IIf w zapytaniu
Funkcja IIf jest często używana do tworzenia pól obliczeniowych w zapytaniach. Składnia jest taka sama, z wyjątkiem tego, że w zapytaniu należy poprzedzić wyrażenie aliasem pola i dwukropkiem (:), a nie znakiem równości (=). Aby użyć poprzedniego przykładu, w wierszu Pole siatki projektu zapytania wpisz następujące wyrażenie:
Język: IIf([KrajRegion]="Włochy", "Włoski", "Inny język")
W takim przypadku aliasem pola jest "Język:".
Aby uzyskać więcej informacji na temat tworzenia zapytań i pól obliczeniowych, zobacz artykuł Tworzenie prostego zapytania wybierającego.
Używanie funkcji IIf w kodzie VBA
Uwaga: Poniższe przykłady przedstawiają sposób użycia tej funkcji w module języka Visual Basic for Applications (VBA). Aby uzyskać dodatkowe informacje na temat pracy w języku VBA, wybierz pozycję Dokumentacja dewelopera z listy rozwijanej obok przycisku Wyszukaj i wprowadź odpowiednie terminy w polu wyszukiwania.
W tym przykładzie użyto funkcji IIf do oceny parametru TestMe procedury CheckIt i zwrócenia wyrazu "Duży", jeśli wartość jest większa niż 1000. W przeciwnym razie zwraca wyraz "Mały".
Function CheckIt (TestMe As Integer)
CheckIt = IIf(TestMe > 1000, "Large", "Small") End Function
Więcej przykładów
Expression |
Wyniki |
=IIf([AirportCode]="ORD","Chicago",IIf([AirportCode]="ATL","Atlanta",IIf([AirportCode]="SEA","Seattle","Other"))) |
Jeśli [AirportCode] to "ORD", zwróć "Chicago". W przeciwnym razie, jeśli [AirportCode] to "ATL", zwróć "Atlanta". W przeciwnym razie, jeśli [AirportCode] to "SEA", zwróć "Seattle". W przeciwnym razie zwróć wartość "Inne". |
=IIf([DataWysyłki]<Date();"Wysłane";IIf([DataWysyłki]=Date();"Wysyłka dzisiaj";"Nierozświetzone")) |
Jeśli wartość [DataWysyłki] jest wcześniejsza niż dzisiejsza data, zwróć wartość "Wysłano". W przeciwnym razie, jeśli wartość [DataWysyłki] jest równa dzisiejszej dacie, zwróć "Wysyłka dzisiaj". W przeciwnym razie zwróć "Odśnieżone". |
=IIf([DataKupu]<#2008-01-01#"Stary";"Nowy") |
Jeśli wartość [Data Zakupu] przypada przed 01.01.2008, zwróć wartość "Stary". W przeciwnym razie zwróć wartość "Nowy". |
=IIf(Eval([Volty] Between 12 And 15 And [Amps] Between 0.25 And 0.3);"OK";"Out of calibration") |
Jeśli wartość [V] wynosi od 12 do 15, a wartość [A] wynosi od 0,25 do 0,3, zwróć wartość "OK". W przeciwnym razie zwróć wartość "Poza kalibracją". |
=IIf(Eval([KrajRegion] In ("Kanada";"USA";"Meksyk"));"Ameryka Północna";"Inne") |
Jeśli [KrajRegion] to "Kanada", "USA" lub "Meksyk", zwróć "Ameryka Północna". W przeciwnym razie zwróć wartość "Inne". |
=IIf([Średnia]>=90;"A";IIf([Średnia]>=80;"B";IIf([Średnia]>=70;"C";IIf([Średnia]>=60;"D";"F")))) |
Jeśli wartość argumentu [Średnia] wynosi 90 lub więcej, zwróć wartość "A". W przeciwnym razie, jeśli wartość [Średnia] wynosi 80 lub więcej, zwróć wartość "B". W przeciwnym razie, jeśli wartość [Średnia] wynosi 70 lub więcej, zwróć wartość "C". W przeciwnym razie, jeśli wartość [Średnia] wynosi 60 lub więcej, zwróć wartość "D". W przeciwnym razie zwróć wartość "F". |
Uwaga: Jeśli tworzysz pole obliczeniowe w zapytaniu za pomocą funkcji IIf , zamień znak równości (=) na alias pola i dwukropek (:). Na przykład stan: IIf([DataWysyłki]<Date();"Wysłane";IIf([DataWysyłki]=Date();"Wysyłka dzisiaj";"Nierozświetzone"))