Šiame straipsnyje aiškinama, kaip kurti sąlygines (dar vadinamas Bulio logikos) išraiškomis programoje "Access". Sąlyginė išraiška įvertinama kaip teisinga arba klaidinga ir tada pateikia rezultatą, atitinkantį jūsų nurodytą sąlygą. Jei sąlyginėse išraiškose naudojate funkcijas, taip pat galite nurodyti veiksmą reikšmėms, kurios atitinka ir neatitinka reiškinio sąlygos. Pavyzdžiui, galite sukurti reiškinį, kuris randa visus pardavimus, kurių pelno marža yra 10 procentų arba mažesnė, ir tada nurodyti, kad tie skaičiai būtų rodomi raudonai, arba pakeisti reikšmes pranešimu.
Šiame straipsnyje:
Supratimas apie sąlygines išraiškas
Sąlyginė išraiška yra reiškinio tipas, kuris tikrina duomenis, kad nustatytų, ar jie atitinka sąlygą, ir imasi veiksmų pagal rezultatą. Pavyzdžiui, reiškinys gali ieškoti vėlesnių nei nurodyta pradžios data datos reikšmių ir tada rodyti klaidos pranešimą, kai bandote įvesti datą, ankstesnę už nustatytą pradžios datą.
Sąlyginės išraiškos yra tos pačios formos ir naudoja tą pačią pagrindinę sintaksę kaip ir kitos išraiškos. Jas galima naudoti taip pat kaip ir kitus reiškinius:
- Lentelės laukuose reiškinį įtraukite į lauko ypatybę Tikrinimo taisyklė . Tada vartotojai turi lauke įvesti reikšmes, atitinkančias reiškinio sąlygas. Pavyzdžiui, jei lauke Data / laikas naudojate išraišką >=#1/1/2000# , vartotojai turi įvesti reikšmes, lygias arba vėlesnes už 2000 m. sausio 1 d.
- Formų valdikliams reiškinį galite įtraukti į valdiklio ypatybę Valdiklio šaltinis arba Tikrinimo taisyklė . Paprastai sąlyginius reiškinius įtraukiate į ypatybę Tikrinimo taisyklė , o į ypatybę Valdiklio šaltinis įtraukiate reiškinius, apskaičiuojančius reikšmes. Pvz., naudojant >=#1/1/2000# valdiklio ypatybėje Tikrinimo taisyklė , vartotojai negalės įvesti neleistinos datos. Naudojant išraišką, pvz., Date(), ypatybėje Valdiklio šaltinis , dabartinė data rodoma kaip numatytoji reikšmė.
- Užklausoms sąlyginius reiškinius galite įtraukti į tuščią langelį eilutėje Laukas arba galite naudoti reiškinį užklausos eilutėje Kriterijai . Kai naudojate išraišką eilutėje Laukas , rezultatai rodomi kaip užklausos rezultatų stulpelis. Kai reiškinį naudojate kaip esamo lauko kriterijų, reiškinys veikia kaip filtras ir apriboja užklausos pateikiamus įrašus.
Pavyzdžiui, šį reiškinį galite naudoti užklausos lauko eilutėje: =IIf([Užsakymo data]<=#04/01/2018#,[Užsakymo data],"Užsakymas įvestas po balandžio 1 d"). Reiškinys nurodo datos kriterijų (<=#04/01/2018#). Vykdant užklausą, rodomos visos kriterijų atitinkančios datos reikšmės ir visos kriterijaus neatitinkančios datos reikšmės pakeičiamos pranešimu "Užsakymas įvestas po balandžio 1 d." Skyriuje " Reiškinio įtraukimas į užklausą" aprašytuose veiksmuose paaiškinama, kaip šį reiškinį naudoti užklausoje.
O naudojant šį reiškinį užklausos lauke Kriterijai pateikiami tik įrašai su datomis, kurios atitinka kriterijų: Between #04/01/2018# AND #05/15/2018#.
Daugiau informacijos apie reiškinių kūrimą ir naudojimą ieškokite straipsnyje Išmokite kurti reiškinius.
Sąlyginės išraiškos kūrimas
Šiame skyriuje aprašytuose veiksmuose paaiškinama, kaip įtraukti sąlyginį reiškinį į lentelę, formos arba ataskaitos valdiklį ir užklausą. Kiekvienas veiksmų rinkinys naudoja šiek tiek skirtingą reiškinį, kad būtų galima patikrinti reikšmes lauke Data/laikas ir imtis veiksmų, atsižvelgiant į tai, ar datos reikšmės atitinka nurodytą sąlygą.
Išraiškos įtraukimas į lentelės lauką
Naršymo srityje dešiniuoju pelės mygtuku spustelėkite norimą keisti lentelę, tada kontekstiniame meniu spustelėkite Dizaino rodinys.
Stulpelyje Duomenų tipas spustelėkite lauką Data / laikas.
Dalies Lauko ypatybės skirtuke Bendra spustelėkite ypatybių lauką Tikrinimo taisyklė ir įveskite šį reiškinį:
>=#01/01/2000#Pastaba
Jums nereikia naudoti JAV datos formato. Galite naudoti datos formatą savo šaliai / regionui arba lokalei. Tačiau turite išskirti datos reikšmę svaro ženklais (#), kaip parodyta.
Spustelėkite stulpelį šalia Tikrinimo tekstas ir įveskite šią teksto eilutę:
Data turi būti vėlesnė už 2000 m. sausio 1 d.
Vėlgi, galite naudoti vietinį datos formatą.Įrašykite pakeitimus ir įjunkite duomenų lapo rodinį. Norėdami tai padaryti, dešiniuoju pelės mygtuku spustelėkite lentelės dokumentų skirtuką, tada kontekstiniame meniu spustelėkite Duomenų lapo rodinys .
Lauke Data / laikas įveskite ankstesnę nei 2000 m. sausio 1 d. datos reikšmę. Programa "Access" rodo pranešimą, nurodytą ypatybių lauke Tikrinimo taisyklė , ir jūs negalite išeiti iš lauko, nebent įvedėte reikšmę, kurią jūsų reiškinys įvertina kaip teisingą.
Išraiškos įtraukimas į valdiklį
Naršymo srityje dešiniuoju pelės mygtuku spustelėkite norimą keisti formą, tada kontekstiniame meniu spustelėkite dizaino rodinys .
Dešiniuoju pelės mygtuku spustelėkite valdiklį, susietą su datos / laiko lauku, tada kontekstiniame meniu spustelėkite Ypatybės .
Rodomas valdiklio ypatybių lapas.Skirtuke Duomenys arba skirtuke Visi spustelėkite lauką šalia Tikrinimo taisyklė ir įveskite šį reiškinį:
>=#01/01/2000#Pastaba
Jums nereikia naudoti JAV datos formato. Galite naudoti datos formatą savo šaliai / regionui arba lokalei. Tačiau turite išskirti datos reikšmę svaro ženklais (#), kaip parodyta.
Spustelėkite stulpelį šalia Tikrinimo tekstas ir įveskite šią teksto eilutę:
Data turi būti vėlesnė už 2000 m. sausio 1 d.Įrašykite pakeitimus ir vėl įjunkite formos rodinį. Norėdami tai padaryti, dešiniuoju pelės mygtuku spustelėkite formos dokumento skirtuką ir nuorodų meniu spustelėkite Formos rodinys .
Reiškinio įtraukimas į užklausą
Naršymo srityje dešiniuoju pelės mygtuku spustelėkite norimą keisti užklausą, tada laikinajame meniu spustelėkite Dizaino rodinys
Dizaino tinklelyje spustelėkite tuščią langelį eilutėje Laukas ir įveskite šį reiškinį:
=IIf([Field_Name]<=#04/01/2018# , [Field_Name] , "Data vėlesnė nei 2018 m. balandžio 1 d.)
Rašydami reiškinį įsitikinkite, kad abu Field_Name egzempliorius pakeičiate savo datos/laiko lauko pavadinimu. Be to, jei jūsų lentelėje nėra ankstesnių nei 2018 m. balandžio 1 d. datų, pakeiskite reiškinyje esančias datas, kad jos veiktų su duomenimis.
Įrašykite pakeitimus ir spustelėkite Vykdyti , kad peržiūrėtumėte rezultatus.
Reiškinys veikia taip: Pirmasis argumentas (=IIf([Field_Name]<=#04/01/2018#) nurodo sąlygą, kurią turi atitikti duomenys – datos turi būti 2018 m. balandžio 1 d. arba ankstesnės. Antrasis argumentas ([Field_Name]) nurodo, ką vartotojai matys, kai sąlyga yra teisinga – lauke datas. Trečiasis argumentas ("data vėlesnė nei 2018 m. balandžio 1 d.") nurodo pranešimą, kurį vartotojai mato, kai duomenys neatitinka sąlygos.
Tęsdami atsiminkite, kad ne visos sąlyginės išraiškos naudoja IIf funkciją. Taip pat atminkite, kad funkcija IIf yra išraiškos dalis, kuriai reikia argumentų, o ne pati išraiška.
Daugiau informacijos apie reiškinius ir jų naudojimo būdus žr. straipsnyje Išmokite kurti reiškinius.
Sąlyginių reiškinių pavyzdžiai
Šioje lentelėje pateikti reiškiniai rodo kelis būdus, kaip apskaičiuoti reikšmes teisinga ir klaidinga. Šios išraiškos naudoja funkciją IIf (Immediate If), kad nustatytų, ar sąlyga yra teisinga, ar klaidinga, ir pateikia vieną reikšmę, jei sąlyga yra teisinga, ir kitą reikšmę, jei sąlyga klaidinga.
Daugiau informacijos žr. straipsnyje IIf funkcija .
| Išraiška | Aprašymas |
|---|---|
| =IIf([Patvirtinta] = "Taip", "Užsakymas patvirtintas", "Užsakymas nepatvirtintas") | Rodo pranešimą "Užsakymas patvirtintas", jei lauko Patvirtinta reikšmė yra Taip; Priešingu atveju rodomas pranešimas "Užsakymas nepatvirtintas". |
| =IIf(IsNull([Šalis / regionas])," ", [Šalis / regionas]) | Rodo tuščią eilutę, jei lauko Šalis/regionas reikšmė yra Null; Kitu atveju rodoma lauko Šalis / regionas reikšmė. |
| =IIf(IsNull([Regionas]),[Miestas]&" "& [Pašto kodas], [Miestas]&" "&[Regionas]&" " &[Pašto kodas]) | Rodo laukų Miestas ir Pašto kodas reikšmes, jei lauko Regionas reikšmė yra Null; Kitu atveju rodomos laukų Miestas, Regionas ir Pašto kodas reikšmės. |
| =IIf(IsNull([Reikalaujama_data] - [Siuntimo_data]), "Tikrinti, ar trūksta datos", [Reikalaujama_data] - [Siuntimo_data]) | Rodo pranešimą "Tikrinti, ar trūksta datos", jei lauko Siuntimo_data reikšmės atėmimo iš lauko Reikalaujama_data rezultatas yra Null; Priešingu atveju rodomas laukų RequiredDate ir ShippedDate reikšmių skirtumas. |