Ez a cikk bemutatja, hogyan hozhat létre feltételes (más néven logikai) kifejezéseket az Accessben. A feltételes kifejezések kiértékelése igaz vagy hamis, majd a megadott feltételnek megfelelő eredményt ad vissza. Ha függvényeket használ a feltételes kifejezésekben, megadhat egy műveletet is azokhoz az értékekhez, amelyek nem felelnek meg a kifejezés feltételének, és nem felelnek meg a feltételnek. Létrehozhat például egy kifejezést, amely megkeresi az összes 10 százalékos vagy annál kisebb haszonkulcsú értékesítést, majd megadhatja, hogy ezek a számok piros típusban jelenjenek meg, vagy az értékeket cserélje le egy üzenetre.
A témakör tartalma
A feltételes kifejezések ismertetése
A feltételes kifejezés egy olyan kifejezéstípus, amely teszteli az adatokat, és ellenőrzi, hogy megfelel-e egy feltételnek, majd az eredménytől függően végrehajt egy műveletet. Egy kifejezés például megkeresheti az adott kezdési dátumnál későbbi dátumértékeket, majd hibaüzenetet jeleníthet meg, amikor a megadott kezdő dátumnál korábbi dátumot próbál meg megadni.
A feltételes kifejezések formátuma és alapszintű szintaxisa megegyezik a többi kifejezésével, és ugyanúgy használhatja őket, mint más kifejezéseket:
-
Táblamezők esetén adja hozzá a kifejezést a mező Érvényességi szabály tulajdonságához. A felhasználóknak ezután olyan értékeket kell megadniuk a mezőben, amelyek megfelelnek a kifejezés feltételeinek. Ha például> =#1/1/2000# kifejezést használ egy Dátum/idő mezőben, a felhasználóknak a 2000. január 1-nél egyenlő vagy annál későbbi értékeket kell megadniuk.
-
Űrlapvezérlők esetén hozzáadhatja a kifejezést a vezérlő Vezérlőforrás vagy Érvényességi szabály tulajdonságához. Általában feltételes kifejezéseket ad hozzá az Érvényességi szabály tulajdonsághoz, és olyan kifejezéseket ad hozzá, amelyek értékeket számítanak ki a Control Source tulajdonsághoz. Ha például >=#1/1/2000# karaktert használja egy vezérlő Érvényességi szabály tulajdonságában, az megakadályozza, hogy a felhasználók érvénytelen dátumot adjanak meg. A Vezérlőforrás tulajdonságban egy olyan kifejezés használata, mint a Date() az aktuális dátumot jeleníti meg alapértelmezett értékként.
-
Lekérdezések esetén hozzáadhatja a feltételes kifejezéseket a Mező sor egy üres cellájához, vagy használhat egy kifejezést a lekérdezés Feltétel sorában. Amikor kifejezést használ a Mező sorban, az eredmények oszlopként jelennek meg a lekérdezés eredményei között. Ha kifejezéseket használ egy meglévő mező feltételeiként, a kifejezés szűrőként működik, és korlátozza a lekérdezés által visszaadott rekordokat.
Ezt a kifejezést használhatja például egy lekérdezés Mező sorában: =IIf([Rendelés dátuma]<=#2018.04.01.#,[Rendelés dátuma],"Április 1. után beírt rendelés"). A kifejezés dátumfeltételt határoz meg (<=#04/01/2018#). A lekérdezés futtatásakor az összes olyan dátumértéket megjeleníti, amely megfelel a feltételnek, és a feltételnek nem megfelelő dátumértékek helyébe az "Április 1. után beírt rendelés" üzenet lép. A Kifejezés hozzáadása lekérdezéshez című szakasz lépései bemutatják, hogyan használható ez a kifejezés egy lekérdezésben.
Ezzel szemben a lekérdezés Feltétel mezőjében ez a kifejezés csak a feltételnek megfelelő dátumokkal rendelkező rekordokat adja vissza: Between #04/01/2018# AND #05/15/2018#.
A kifejezések létrehozásáról és használatáról a Learn to build an expression (Útmutató kifejezések készítéséhez) című cikkben talál további információt.
Feltételes kifejezés Létrehozás
Az ebben a szakaszban ismertetett lépések bemutatják, hogyan adhat hozzá feltételes kifejezést egy táblához, egy űrlap vagy jelentés vezérlőeleméhez és egy lekérdezéshez. Minden lépéscsoport egy kissé eltérő kifejezést használ a Dátum/idő mező értékeinek teszteléséhez, és a művelet végrehajtásához attól függően, hogy a dátumértékek megfelelnek-e a megadott feltételnek.
Kifejezés hozzáadása táblamezőhöz
-
A navigációs ablakban kattintson a jobb gombbal a módosítani kívánt táblára, majd kattintson a helyi menü Tervező nézet parancsára.
-
Az Adattípus oszlopban kattintson a Dátum/idő mezőre.
-
A Mezőtulajdonságok területen az Általános lapon kattintson az Érvényességi szabály tulajdonságmezőre, és írja be a következő kifejezést:
>=#2000.01.01.#
Megjegyzés: Az egyesült államokbeli dátumformátumot nem kell használnia. Használhatja az ország/régió vagy területi beállítás dátumformátumát. A dátumértéket azonban kettőskereszt (#) jelekkel kell körülvennie, ahogy az ábrán látható.
-
Kattintson az Érvényesítési szöveg melletti oszlopra, és írja be ezt a szöveges sztringet:
A dátumnak 2000. január 1-énél nagyobbnak kell lennie.
Ismét használhatja a helyi dátumformátumot.
-
Mentse a módosításokat, és váltson Adatlap nézetre. Ehhez kattintson a jobb gombbal a táblázat dokumentumfülére, majd kattintson a helyi menü Adatlap nézet parancsára.
-
Írjon be egy dátumértéket a 2000. január 1-nél korábbi Dátum/idő mezőbe. Az Access megjeleníti az Érvényességi szabály tulajdonságmezőben megadott üzenetet, és csak akkor hagyhatja el a mezőt, ha olyan értéket ad meg, amelyet a kifejezés igazként értékel ki.
Kifejezés hozzáadása vezérlőelemhez
-
A navigációs ablakban kattintson a jobb gombbal a módosítani kívánt űrlapra, majd kattintson a helyi menü Tervező nézet parancsára.
-
Kattintson a jobb gombbal egy dátum/idő mezőhöz kötött vezérlőre, majd kattintson a helyi menü Tulajdonságok parancsára .
Megjelenik a vezérlő tulajdonságlapja.
-
Az Adatok vagy az Összes lapon kattintson az Érvényességi szabály melletti mezőre, és írja be a következő kifejezést:
>=#2000.01.01.#
Megjegyzés: Az egyesült államokbeli dátumformátumot nem kell használnia. Használhatja az ország/régió vagy területi beállítás dátumformátumát. A dátumértéket azonban kettőskereszt (#) jelekkel kell körülvennie, ahogy az ábrán látható.
-
Kattintson az Érvényesítési szöveg melletti oszlopra, és írja be ezt a szöveges sztringet:
A dátumnak 2000. január 1-énél nagyobbnak kell lennie.
-
Mentse a módosításokat, és váltson vissza Űrlap nézetre. Ehhez kattintson a jobb gombbal az űrlap dokumentumfülére, majd kattintson a helyi menü Űrlap nézet parancsára.
Kifejezés hozzáadása lekérdezéshez
-
Kattintson a jobb gombbal a navigációs ablakban arra a lekérdezésre, amelyet módosítani szeretne, majd kattintson a helyi menü Tervező nézet parancsára.
-
Kattintson egy üres cellára a tervezőrács Mező sorában, és írja be a következő kifejezést:
=IIf([Field_Name]<=#04/01/2018# , [Field_Name] , "2018. április 1-nél későbbi dátum")
A kifejezés beírása közben győződjön meg arról, hogy a Field_Name mindkét példányát a Date/Time mező nevére cseréli. Ha a táblázat nem tartalmaz 2018. április 1. előtti dátumokat, módosítsa a kifejezésben szereplő dátumokat az adatokkal való együttműködéshez.
-
Mentse a módosításokat, majd kattintson a Futtatás gombra az eredmények megtekintéséhez.
A kifejezés a következőképpen működik: Az első argumentum (=IIf([Field_Name]<=#04/01/2018#) azt a feltételt határozza meg, hogy az adatoknak meg kell felelniük – a dátumoknak 2018. április 1-jén vagy annál korábbiaknak kell lenniük. A második argumentum ([Field_Name]) határozza meg, hogy a felhasználók mit látnak, ha a feltétel igaz – a mezőben szereplő dátumokat. A harmadik argumentum ("2018. április 1-nél későbbi dátum")) azt az üzenetet adja meg, amelyet a felhasználók akkor látnak, ha az adatok nem felelnek meg a feltételnek.
A folytatás során ne feledje, hogy nem minden feltételes kifejezés használja az IIf függvényt. Ne feledje továbbá, hogy az IIf függvény a kifejezés azon része, amely argumentumokat igényel, és nem magát a kifejezést.
A kifejezésekről és azok felhasználási módjairól a Learn to build an expression (Útmutató kifejezések készítéséhez) című cikkben talál további információt.
Példák feltételes kifejezésekre
Az alábbi táblázatban szereplő kifejezések az igaz és a hamis értékek kiszámításának néhány módját mutatják be. Ezek a kifejezések az IIf függvényt (Immediate If) használják annak megállapítására, hogy egy feltétel igaz vagy hamis, majd egy értéket ad vissza, ha a feltétel igaz, és egy másik értéket, ha a feltétel hamis.
További információt az IIf függvény című cikkben talál.
Kifejezés |
Leírás |
=IIf([Visszaigazolva] = "Igen"; "Rendelés visszaigazolva"; "Visszaigazolásra vár") |
A "Rendelés megerősítve" üzenetet jeleníti meg, ha a Visszaigazolt mező értéke Igen; ellenkező esetben a "Rendelés nem megerősítve" üzenetet jeleníti meg. |
=IIf(IsNull([Ország/régió]);" ", [Ország/régió]) |
Üres sztringet jelenít meg, ha az Ország/régió mező értéke Null; ellenkező esetben az Ország/régió mező értékét jeleníti meg. |
=IIf(IsNull([Régió]),[Város]&" "& [Irányítószám], [Város]&" "&[Régió]&" " &[Irányítószám]) |
Megjeleníti a Város és az Irányítószám mezők értékeit, ha a Régió mező értéke Null; ellenkező esetben megjeleníti a Város, a Régió és az Irányítószám mezők értékeit. |
=IIf(IsNull([RequiredDate] - [SzállításiDátum]), "Hiányzó dátum ellenőrzése", [RequiredDate] - [SzállításiDátum]) |
A "Hiányzó dátum ellenőrzése" üzenetet jeleníti meg, ha a SzállításiDátum mező értékének a RequiredDate mezőből való kivonásának eredménye Null; ellenkező esetben megjeleníti a RequiredDate és a ShippedDate mezők értékei közötti különbséget. |