IIf funkcija

Taikoma
„Access“, skirta „Microsoft 365“ „Access 2024“ Access 2021 Access 2019 Access 2016

Pateikia vieną iš dviejų dalių, atsižvelgiant į reiškinio įvertinimą.

Reiškinius galima naudoti IIf visur, kur tik galima naudoti reiškinius. Naudokite norėdami IIf nustatyti, ar kitas reiškinys yra teisingas ar klaidingas. Jei reiškinys yra teisingas, IIf pateikia vieną reikšmę. Jei reikšmė yra FALSE, IIf pateikia kitą reikšmę. Nurodykite grąžinamas reikšmes IIf .

Keli pavyzdžiai

Sintaksė

IIf(expr, truepart, falsepart)

Funkcijos IIf sintaksė turi tokius argumentus:

Argumentas Aprašas
expr Būtinas. Išraiška, kurią norite įvertinti.
truepart Būtinas. Grąžinama reikšmė arba reiškinys, jei expr yra True.
falsepart Būtinas. Grąžinama reikšmė arba reiškinys, jei expr yra False.

Pastabos

IIf Visada įvertina abu truepart ir , falsepartnet jei pateikia tik vieną iš jų. Dėl tokio elgesio stebėkite, ar nėra nepageidaujamo šalutinio poveikio. Pvz., jei vertinant falsepart gaunama dalybos iš nulio klaida, klaida įvyksta net jei expr yra True.

Pavyzdžiai

Naudojimas IIf formoje arba ataskaitoje

Tarkime, kad turite Customers lentelę, kurioje yra laukas, pavadintas CountryRegion. Formoje norite parodyti, ar italų kalba yra pirmoji kontakto kalba. Galite įtraukti valdiklį ir naudoti IIf jo Control Source ypatybėje:

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

Kai atidarote formą formos rodinyje, valdiklis rodomas Italian visais atvejais, kai reikšmė CountryRegion yra Italy. Ji rodoma Some other language , kai tik CountryRegion turi bet kokią kitą reikšmę.

Naudojimas IIf sudėtingose išraiškose

Bet kurioje teiginio IIf dalyje galite naudoti bet kokį reiškinį. Taip pat galite įdėti IIf reiškinius, kurie leidžia įvertinti priklausomų reiškinių seką. Tęsdami ankstesnį pavyzdį, galite išbandyti kelias skirtingas CountryRegion reikšmes ir tada rodyti atitinkamą kalbą pagal reikšmę:

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

Tekstas Some other language yra falsepart vidinės IIf funkcijos argumentas. Kadangi kiekviena įdėtoji IIf funkcija yra funkcijos argumentas falsepartIIf , tekstas Some other language grąžinamas tik tada, jei visi funkcijų argumentai exprIIf įvertinami kaip False.

Kitas pavyzdys: tarkime, kad dirbate bibliotekoje. Bibliotekos duomenų bazėje yra lentelė, pavadinta Check Outs su lauku, pavadintu Due Date, kuriame yra data, kada reikia grąžinti konkrečią knygą. Galite sukurti formą, kurioje rodoma paimto ir užrakinto elemento būsena valdiklyje naudodami IIf to valdiklio Control Source ypatybės funkciją:

=IIf([Due Date]<Date(),"OVERDUE",IIf([Due Date]=Date(),"Due today","Not Yet Due"))

Kai atidarote formą formos rodinyje, valdiklis rodo OVERDUE , ar reikšmė Due Date yra mažesnė už dabartinę datą, Due today ar ji lygi dabartinei datai ir Not Yet Due kitaip.

Pastaba

Jei norite naudoti loginius operatorius, pvz.And, funkcijos argumente IIf arba Orexpr , turite įtraukti loginį reiškinį į funkciją Eval. Žr. toliau pateiktą lentelės pavyzdį.

Naudojimas IIf užklausoje

Ši IIf funkcija dažnai naudojama apskaičiuotiesiems laukams užklausose kurti. Sintaksė yra tokia pati, išskyrus tai, kad užklausoje vietoj lygybės ženklo () išraiškai turi būti naudojamas lauko pseudonimas ir dvitaškis (:=). Norėdami naudoti ankstesnį pavyzdį, užklausos kūrimo tinklelio eilutėje Laukas įveskite:

Language: IIf([CountryRegion]="Italy", "Italian", "Some other language")

Šiuo atveju Language: yra lauko pseudonimas.

Daugiau informacijos apie užklausų ir apskaičiuotųjų laukų kūrimą rasite Paprastos išrinkimo užklausos kūrimas.

Naudojimas IIf VBA kode

Pastaba

Toliau pateikti pavyzdžiai, kaip naudoti šią funkciją "Visual Basic for Applications" (VBA) modulyje. Daugiau informacijos apie darbą su VBA rasite išplečiamajame sąraše pasirinkę Kūrėjų nuoroda (šalia Ieškos), tada ieškos lauke įveskite vieną ar daugiau sąlygų.

Šiame pavyzdyje naudojama IIf funkcija procedūros parametrui TestMeCheckIt įvertinti ir grąžinamas žodis Large , jei suma didesnė už 1000. Priešingu atveju jis grąžina žodį Small.

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

Daugiau pavyzdžių

  1. Išraiška:

    =IIf([AirportCode]="ORD","Chicago",IIf([AirportCode]="ATL","Atlanta",IIf([AirportCode]="SEA","Seattle","Other")))
    

    Rezultatas: Jei [AirportCode] yra "ORD", grąžinti "Chicago". Priešingu atveju, jei [AirportCode] yra "ATL", grąžinti "Atlanta". Priešingu atveju, jei [AirportCode] yra "SEA", grąžinti "Seattle". Priešingu atveju, grįžti "Other".

  2. Išraiška:

    =IIf([ShipDate]<Date(),"Shipped",IIf([ShipDate]=Date(),"Shipping today","Unshipped"))
    

    Rezultatas: jei [ShipDate] data ankstesnė nei šiandienos data, pateikti "Shipped". Kitu atveju, jei [ShipDate] lygi šiandienos datai, pateikti "Shipping today". Priešingu atveju, grįžti "Unshipped".

  3. Išraiška:

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

    Rezultatas: jei [PurchaseDate] yra ankstesnis nei 1/1/2008, grąžinti "Old". Priešingu atveju, grįžti "New".

  4. Išraiška:

    =IIf(Eval([Volts] Between 12 And 15 And [Amps] Between 0.25 And 0.3),"OK","Out of calibration")
    

    Rezultatas: jei [Volts] yra nuo 12 iki 15, o [Amps] yra nuo 0,25 iki 0,3, pateikti "OK". Priešingu atveju, grįžti "Out of calibration".

  5. Išraiška:

    =IIf(Eval([CountryRegion] In ("Canada","USA","Mexico")),"North America","Other")
    

    Rezultatas: Jei [CountryRegion] yra "Canada", "USA"arba "Mexico", grąžinti "North America". Priešingu atveju, grįžti "Other".

  6. Išraiška:

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

    Rezultatas: jei [Average] yra 90 arba daugiau, pateikti "A". Kitu atveju, jei [Average] yra 80 ar daugiau, pateikti "B". Kitu atveju, jei [Average] yra 70 ar daugiau, grąžinti "C". Kitu atveju, jei [Average] yra 60 ar daugiau, grąžinti "D". Priešingu atveju, grįžti "F".

Pastaba

Jei IIf naudojate funkciją apskaičiuotajam laukui užklausoje kurti, lygybės ženklą (=) pakeiskite lauko pseudonimu ir dvitaškiu (:). Pvz., Status: IIf([ShipDate]<Date(),"Shipped",IIf([ShipDate]=Date(),"Shipping today","Unshipped")).