Ez a cikk számos példát tartalmaz az Access kifejezésére. A kifejezés matematikai és logikai operátorok, állandók, függvények, táblamezők, vezérlőelemek és tulajdonságok egy olyan kombinációja, amely végeredményben egyetlen értéket ad vissza. A Access kifejezéseivel kiszámíthatja az értékeket, érvényesítheti az adatokat, és beállíthat egy alapértelmezett értéket.
Tartalom
Űrlapok és jelentések
A jelen szakaszban szereplő táblázatokban az űrlapokban és jelentésekben szereplő vezérlőelemek értékeinek kiszámításához használható kifejezéseket mutatjuk be. Ha számított vezérlőelemet szeretne létrehozni, a kívánt kifejezést a vezérlő Mező vagy kifejezés tulajdonságában, nem pedig egy táblamezőben vagy lekérdezésben kell megadnia.
Megjegyzés Akkor is használhat kifejezéseket az űrlapokban vagy jelentésekben, amikor értékek kiemelését végzi feltételes formázással.
Szöveges műveletek
A következő táblázatban bemutatott kifejezések az & (és) és a + (plusz) operátort használják szöveges karakterláncok egyesítéséhez, beépített függvényeket a szöveges karakterláncok kezeléséhez, illetve a szövegen végrehajtott egyéb műveletekkel számított vezérlőelemeket hoznak létre.
Kifejezés |
Eredmény |
---|---|
="N/A" |
A Hiányzik eredményt adja. |
=[FirstName] & " " & [LastName] |
A tábla Vezetéknév és Utónév mezőinek értékeit jeleníti meg. Ebben a példában az & operátor a Vezetéknév mező, az idézőjelek közé helyezett szóköz karakter, illetve az Utónév mező egyesítésére szolgál. |
=Left([ProductName], 1) |
A Left függvény segítségével megjeleníti a Terméknév nevű mező vagy vezérlőelem értékének első karakterét. |
=Right([AssetCode], 2) |
A Right függvény segítségével megjeleníti az Eszközkód nevű mező vagy vezérlőelem értékének utolsó két karakterét. |
=Trim([Address]) |
A Trim függvény segítségével megjeleníti a Cím vezérlőelem értékét, és eltávolítja az esetleges kezdő és záró szóközt. |
=IIf(IsNull([Region]), [City] & " " & [PostalCode], [City] & " " & [Region] & " " & [PostalCode]) |
Az IIf függvény segítségével megjeleníti a Település és az Irányítószám vezérlőelem értékét, ha a Megye vezérlőelem értéke null. Ellenkező esetben szóközökkel elválasztva megjeleníti a Település, a Megye és az Irányítószám vezérlőelem értékét. |
=[City] & (" " + [Region]) & " " & [PostalCode] |
A + operátor és a nullterjesztés segítségével megjeleníti a Település és az Irányítószám vezérlőelemek értékét, amennyiben a Megye mező vagy vezérlőelem értéke null. Ellenkező esetben szóközökkel elválasztva megjeleníti a Település, a Megye és az Irányítószám mezők vagy vezérlőelemek értékeit. A nullterjesztés azt jelenti, hogy ha a kifejezés bármelyik összetevőjének értéke null, akkor a teljes kifejezés értéke is null. A nullterjesztést a + operátor támogatja, az & operátor azonban nem. |
Élőfejek és élőlábak
Az űrlapok vagy jelentések oldalszámainak megjelenítéséhez vagy nyomtatásához használja a Page és a Pages tulajdonságot. Ezek csak nyomtatás közben vagy nyomtatási nézetben érhetők el, vagyis nem jelennek meg az űrlap vagy a jelentés tulajdonságlistájában. A tulajdonságok használatához felvehet egy szövegmezőt az űrlap vagy jelentés fejléc- vagy láblécszakaszába, majd alkalmazhat egy kifejezést, például az alábbi táblázatban szereplők egyikét.
Az űrlapokon és jelentésekben használható fejlécekről és láblécekről további információt az Oldalszámok beszúrása jelentésbe vagy űrlapra című cikkben talál.
Kifejezés |
Eredmény |
---|---|
=[Page] |
1 |
="Page " & [Page] |
1. oldal |
="Page " & [Page] & " of " & [Pages] |
3/1. oldal |
=[Page] & " of " & [Pages] & " Pages" |
1/3. oldal |
=[Page] & "/" & [Pages] & " Pages" |
1. oldal, összesen: 3 |
=[Country/region] & " - " & [Page] |
UK – 1 |
=Format([Page], "000") |
001 |
="Printed on: " & Date() |
Nyomtatás ideje: 17.12.31. |
Aritmetikai műveletek
A kifejezéseket két vagy több mező vagy vezérlőelem értékeinek összeadásához, kivonásához, szorzásához és osztásához is használhatja. A kifejezésekkel emellett dátumokon is végrehajthat számtani műveleteket. Tegyük fel például, hogy létrehozott egy IgényeltDátum nevű, Dátum/Idő típusú táblamezőt. A mezőben (vagy a mezőhöz kötött vezérlőelemben) megadott =[RequiredDate] - 2 kifejezés a mezőben szereplő aktuális dátumnál két nappal korábbi „dátum/idő” értéket fog eredményül adni.
Kifejezés |
Eredmény |
---|---|
=[Subtotal]+[Freight] |
A Részösszeg és a Fuvardíj mező vagy vezérlőelem értékeinek összege. |
=[RequiredDate]-[ShippedDate] |
Az IgényeltDátum és a SzállításiDátum mező vagy vezérlőelem dátumértékei közötti időkülönbség. |
=[Price]*1.06 |
Az Ár mező vagy vezérlőelem értéke szorozva 1,06-tal (az Ár mező értéke megnövelve 6%-kal). |
=[Quantity]*[Price] |
A Mennyiség és az Ár mező vagy vezérlőelem értékeinek szorzata. |
=[EmployeeTotal]/[CountryRegionTotal] |
Az ÖsszesAlkalmazott és az ÖsszesOrszágRégió mező vagy vezérlőelem értékeinek hányadosa. |
Megjegyzés Ha egy kifejezésben számtani operátort (+. -, * vagy /) használ, és az adott kifejezés egyik vezérlőelemének értéke null, akkor a teljes kifejezés értéke is null – ezt nevezzük nullterjesztésnek. Ha a kifejezésben használt valamelyik vezérlőelem bármely rekordja null értékű lehet, a nullterjesztés elkerülése érdekében célszerű a null értéket nulla értékké alakítani. Erre a célra az Nz függvény használható, például =Nz([Subtotal])+Nz([Freight]).
Más vezérlőelemekben szereplő értékek
Előfordulhat, hogy a munka során olyan értékre van szüksége, amely máshol, például egy másik űrlap vagy jelentés egyik mezőjében szerepel. Ebben az esetben kifejezés használatával adhatja vissza a kívánt értéket.
Az alábbi táblázatban olyan kifejezésekre talál példákat, amelyeket űrlapok számított vezérlőelemeiben használhat.
Kifejezés |
Eredmény |
---|---|
=Forms![Orders]![OrderID] |
A Rendelések űrlap Rendelésazonosító vezérlőelemének az értéke. |
=Forms![Orders]![Orders Subform].Form![OrderSubtotal] |
A Rendelések űrlap Rendelések segédűrlap nevű segédűrlapján található RendelésRészösszege elnevezésű vezérlőelem értéke. |
=Forms![Orders]![Orders Subform]![ProductID].Column(2) |
A Rendelések űrlap Rendelések segédűrlap nevű segédűrlapján található többoszlopos lista, a Termékkód harmadik oszlopának értéke. (Ne feledje, hogy az oszlopok számozása a következőképpen alakul: 0, 1, 2 stb.) |
=Forms![Orders]![Orders Subform]![Price] * 1.06 |
A Rendelések űrlap Rendelések segédűrlap nevű segédűrlapján található Ár vezérlőelem értéke megszorozva 1,06-tal (az Ár vezérlőelem értéke megnövelve 6%-kal). |
=Parent![OrderID] |
Az aktuális segédűrlap szülőűrlapján található Rendelésazonosító vezérlőelem értéke. |
Az alábbi táblázatban szereplő kifejezések a számított vezérlőelemek jelentésekben történő használatának módjait ismertetik. A kifejezések a Report tulajdonságra hivatkoznak.
Kifejezés |
Eredmény |
---|---|
=Report![Invoice]![OrderID] |
A „Számla” elnevezésű jelentés „Rendelésazonosító” nevű vezérlőelemének értéke. |
=Report![Summary]![Summary Subreport]![SalesTotal] |
Az Összesítés elnevezésű jelentés Összesítés segédjelentés nevű segédjelentésében található ÖsszEladás vezérlőelem értéke. |
=Parent![OrderID] |
Az aktuális segédjelentés szülőjelentésében található Rendelésazonosító vezérlőelem értéke. |
Értékek megszámlálása, összegzése és átlagának kiszámítása
Egy vagy több mező vagy vezérlőelem értékének kiszámításához célszerű az összesítő függvénytípust használni. Kiszámíthatja például a csoportösszeget egy jelentés csoportláblécében, vagy egy rendelés részösszegét egy űrlap sortételei alapján. Emellett megszámolhatja az egy vagy több mezőben található tételeket, illetve kiszámíthatja átlagértéküket.
Az alábbi táblázatban található kifejezések azt mutatják be, hogy hogyan használható például az Avg, a Count és a Sum függvény.
Kifejezés |
Leírás |
---|---|
=Avg([Freight]) |
Az Avg függvény segítségével kiszámítja a Fuvardíj nevű táblamezőben vagy vezérlőelemben szereplő értékek átlagát. |
=Count([OrderID]) |
A Count függvény segítségével megadja a Rendelésazonosító vezérlőelem rekordjainak számát. |
=Sum([Sales]) |
A Sum függvény segítségével kiszámítja az Értékesítés vezérlőelem értékeinek összegét. |
=Sum([Quantity]*[Price]) |
A Sum függvény segítségével kiszámítja a Mennyiség és az Ár vezérlőelemben szereplő értékek szorzatának összegét. |
=[Sales]/Sum([Sales])*100 |
A kifejezés elosztja az Értékesítés vezérlőelem értékeit az Értékesítés vezérlőelem értékeinek összegével, és ezzel meghatározza az értékesítés százalékos értékét. Ha a vezérlőelem Format tulajdonságát Percent értékre állítja, a kifejezésből kihagyható a *100 összetevő. |
Az összesítő függvényekről, valamint a mezők és oszlopok értékeinek összesítéséről további információt Az adatok összegzése lekérdezés használatával, az Adatok megszámlálása lekérdezéssel, az Oszlopösszesítők megjelenítése adatlapon Összeg sorral és az Oszlopösszesítők megjelenítése adatlapon című cikkben talál.
SQL-összesítési függvények
Az SQL-összesítési vagy területi összegző függvények használata akkor javasolt, ha szelektív módon szeretné összegezni vagy megszámlálni az értékeket. Egy „terület” egy vagy több tábla egy vagy több mezőjéből, illetve egy vagy több űrlap vagy jelentés egy vagy több vezérlőeleméből tevődik össze. Egy táblamező értékeit például megfeleltetheti egy űrlap vezérlőelemének értékeivel.
Kifejezés |
Leírás |
---|---|
=DLookup("[ContactName]", "[Suppliers]", "[SupplierID] = " & Forms("Suppliers")("[SupplierID]")) |
A DLookup függvénnyel visszaadja a Szállítók tábla KapcsolattartóNeve mezőjének értékét, ahol a tábla Szállítóazonosító mezőjének értéke megegyezik a Szállítók űrlap Szállítóazonosító vezérlőelemének értékével. |
=DLookup("[ContactName]", "[Suppliers]", "[SupplierID] = " & Forms![New Suppliers]![SupplierID]) |
A DLookup függvénnyel visszaadja a Szállítók tábla KapcsolattartóNeve mezőjének értékét, ahol a tábla Szállítóazonosító mezőjének értéke megegyezik az Új szállítók űrlap Szállítóazonosító vezérlőelemének értékével. |
=DSum("[OrderAmount]", "[Orders]", "[CustomerID] = 'RATTC'") |
A DSum függvény segítségével visszaadja a Rendelések tábla RendeltMennyiség mezőjének összesített értékét, ahol az Ügyfélazonosító értéke RATTC. |
=DCount("[Retired]","[Assets]","[Retired]=Yes") |
A DCount függvény segítségével visszaadja az Eszközök táblában található Kivezetve mező (Igen/Nem típusú mező) Igen értékeinek számát. |
Dátumműveletek
A dátumok és időpontok követése az adatbázisok alapvető műveletei közé tartozik. Kiszámítható például a számlakibocsátás időpontja óta eltelt napok száma, és elvégezhető a kinnlevőség korosítása. A következő táblázat a dátumok és időpontok különféle formázási lehetőségeit mutatja be.
Kifejezés |
Leírás |
---|---|
=Date() |
A Date függvény segítségével mm-dd-yy formátumban megjeleníti az aktuális dátumot. A mm a hónapot (1-től 12-ig), a dd a napot (1-től 31-ig), a yy pedig az adott év utolsó két számjegyét (1980-tól 2099-ig) jelöli. |
=Format(Now(), "ww") |
A Format függvény segítségével megjeleníti az aktuális dátum éven belüli hétszámát. A ww a hét számát jelöli (1-től 53-ig). |
=DatePart("yyyy", [OrderDate]) |
A DatePart függvény segítségével megjeleníti a RendelésDátuma vezérlőelem értékének négyjegyű évszámát. |
=DateAdd("y", -10, [PromisedDate]) |
A DateAdd függvény segítségével megjeleníti az ÍgértDátum vezérlőelem értékénél 10 nappal korábbi dátumot. |
=DateDiff("d", [OrderDate], [ShippedDate]) |
A DateDiff függvény segítségével megjeleníti a RendelésDátuma és a SzállításiDátum vezérlőelemek értékei közti napokban mért különbséget. |
=[InvoiceDate] + 30 |
Dátumokon elvégzett számtani műveletekkel kiszámítja a SzámlakibocsátásDátuma mező vagy vezérlőelem dátumához mért 30 nappal későbbi dátumot. |
Csak két érték feltételei
Az alábbi táblázatban szereplő példákban az IIf függvényt használtuk két lehetséges érték egyikének visszaadására. Az IIf függvénynek három argumentumot kell átadni: Az első argumentum egy kifejezés, amelynek a következő két érték egyikét kell eredményül adnia: True vagy False. A második argumentum a visszaadandó érték, ha a kifejezés eredménye igaz, a harmadik pedig a visszaadandó érték, ha a kifejezés eredménye hamis.
Kifejezés |
Leírás |
---|---|
=IIf([Confirmed] = "Yes", "Order Confirmed", "Order Not Confirmed") |
Az IIf (Immediate If) függvény segítségével megjeleníti a „Rendelés visszaigazolva” üzenetet, ha a Visszaigazolva vezérlőelem értéke Yes; ellenkező esetben a „"Order Not Confirmed."” üzenet jelenik meg. |
=IIf(IsNull([Country/region]), " ", [Country]) |
Az IIf és az IsNull függvény segítségével üres karakterláncot jelenít meg, ha az OrszágRégió vezérlőelem értéke null; ellenkező esetben az OrszágRégió vezérlőelem értékét adja eredményül. |
=IIf(IsNull([Region]), [City] & " " & [PostalCode], [City] & " " & [Region] & " " & [PostalCode]) |
Az IIf és az IsNull függvény segítségével megjeleníti a Település és az Irányítószám vezérlőelem értékét, ha a Megye vezérlőelem értéke null. Ellenkező esetben a Település, a Megye és az Irányítószám mező vagy vezérlőelem értékét adja eredményül. |
=IIf(IsNull([RequiredDate]) Or IsNull([ShippedDate]), "Check for a missing date", [RequiredDate] - [ShippedDate]) |
Az IIf és az IsNull függvény segítségével a „Hiányzó dátum keresése” üzenetet jeleníti meg, ha az IgényeltDátum vezérlőelem értékéből a SzállításiDátum értékét kivonva a null eredményt kapja. Ellenkező esetben a két vezérlőelem értéke közti különbséget adja eredményül. |
Lekérdezések és szűrők
Ebben a szakaszban olyan kifejezésekre talál példákat, amelyekkel számított mezőket hozhat létre lekérdezésekben, illetve megadhatja a lekérdezés feltételeit. A számított mezők a lekérdezés olyan oszlopai, amelyek egy kifejezés eredményeképpen jöttek létre. Kiszámíthat például egy adott értéket, szöveges értékeket fűzhet össze (például egy vezeték- és egy utónevet), vagy formázhatja a dátumok részeit.
A lekérdezésekben feltételek megadásával korlátozhatja a használt rekordok számát. A Between operátorral például megadhat egy kezdő és egy záró dátumot, és azokra a megrendelésekre korlátozhatja a lekérdezés eredményeit, amelyek szállítási ideje a két dátum közé esik.
Az alábbi példák a kifejezések használatát mutatják be a lekérdezésekben.
Szöveges műveletek
A következő táblázatban szereplő kifejezések az & és a + operátort használják szöveges karakterláncok egyesítéséhez, beépített függvényeket a szöveges karakterláncok kezeléséhez, illetve a szövegen végrehajtott egyéb műveletekkel számított mezőket hoznak létre.
Kifejezés |
Leírás |
---|---|
FullName: [FirstName] & " " & [LastName] |
Létrehozza a TeljesNév mezőt, amelyben megjelennek a Vezetéknév és az Utónév mezők szóközzel elválasztott értékei. |
Address2: [City] & " " & [Region] & " " & [PostalCode] |
Létrehozza a Cím2 mezőt, amelyben megjelennek a Település, a Megye és az Irányítószám mező szóközzel elválasztott értékei. |
ProductInitial: Left([ProductName], 1) |
Létrehozza a TerméknévRöviden mezőt, majd a Left függvénnyel megjeleníti benne a Terméknév mező értékének első karakterét. |
TypeCode: Right([AssetCode], 2) |
Létrehozza a Típuskód mezőt, majd a Right függvénnyel megjeleníti benne az Eszközkód mező értékének utolsó két karakterét. |
AreaCode: Mid([Phone],2,3) |
Létrehozza a Körzetszám mezőt, majd a Mid függvénnyel megjeleníti benne a Telefonszám mező három karakterét a második karaktertől kezdve. |
ExtendedPrice: CCur([Order Details].[Unit Price]*[Quantity]*(1-[Discount])/100)*100 |
A számított mezőnek a TeljesÁr nevet adja, és a Ccur függvény segítségével kiszámítja egy adott tétel kedvezménnyel csökkentett végösszegét. |
Aritmetikai műveletek
A kifejezéseket két vagy több mező vagy vezérlőelem értékeinek összeadásához, kivonásához, szorzásához és osztásához is használhatja. Emellett dátumokon is végrehajthat számtani műveleteket. Tegyük fel például, hogy létrehozott egy IgényeltDátum nevű, Dátum/idő típusú mezőt. A =[RequiredDate] - 2 kifejezés a mezőben szereplő dátumnál két nappal korábbi Dátum/idő értéket fog eredményül adni.
Kifejezés |
Leírás |
---|---|
PrimeFreight: [Freight] * 1.1 |
Létrehozza az ElsődlegesFuvardíj elnevezésű mezőt, majd megjeleníti benne a 10%-kal növelt fuvardíjat. |
OrderAmount: [Quantity] * [UnitPrice] |
Létrehozza a RendeltMennyiség nevű mezőt, majd megjeleníti benne a Mennyiség és az Egységár mezők értékeinek szorzatát. |
LeadTime: [RequiredDate] - [ShippedDate] |
Létrehozza az ÁtfutásiIdő nevű mezőt, majd megjeleníti benne az IgényeltDátum és a SzállításiDátum mezők értékei közti különbséget. |
TotalStock: [UnitsInStock]+[UnitsOnOrder] |
Létrehozza a TeljesKészlet nevű mezőt, majd megjeleníti benne a Raktáron és a SzállításraVár mezők értékeinek összegét. |
FreightPercentage: Sum([Freight])/Sum([Subtotal]) *100 |
Létrehozza a SzázalékosFuvardíj nevű mezőt, majd százalékban kifejezve megjeleníti benne az egyes részösszegekre eső fuvardíjat. A kifejezés a Sum függvény segítségével kiszámítja a Fuvardíj mező értékeinek összegét, majd elosztja őket a Részösszeg értékeinek összegével. A kifejezés használatához a kijelölt lekérdezést összegző lekérdezéssé kell alakítania, mivel szüksége lesz a tervezőrács Összeg sorára, és Expression értékre kell állítania a mező Összesen celláját. Az Összegző lekérdezés létrehozásáról további információt Az adatok összegzése lekérdezés használatával című témakörben talál. Ha a mező Format tulajdonságát Percent értékre állítja, kihagyható a *100 összetevő. |
Az összesítő függvényekről, valamint a mezők és oszlopok értékeinek összesítéséről további információt Az adatok összegzése lekérdezés használatával, az Adatok megszámlálása lekérdezéssel, az Oszlopösszesítők megjelenítése adatlapon Összeg sorral és az Oszlopösszesítők megjelenítése adatlapon című cikkben talál.
Dátumműveletek
Csaknem minden adatbázis tárolja és nyomon követi a dátumokat és időpontokat. Ha dátumokkal és időpontokkal kapcsolatos műveleteket szeretne végrehajtani az Accessben, állítsa a tábla dátum és idő mezőit Dátum/idő adattípusra. Az Accessben dátumokkal is végezhetők számtani műveletek. Kiszámítható például a számlakibocsátás időpontja óta eltelt napok száma, és elvégezhető a kinnlevőség korosítása.
Kifejezés |
Leírás |
---|---|
LagTime: DateDiff("d", [OrderDate], [ShippedDate]) |
Létrehozza az IdőbeliEltérés nevű mezőt, majd a DateDiff függvény segítségével megjeleníti a rendelési és a szállítási dátum közti napok számát. |
YearHired: DatePart("yyyy",[HireDate]) |
Létrehozza az AlkalmazásÉve nevű mezőt, majd a DatePart függvény segítségével megjeleníti, hogy az egyes alkalmazottak melyik évben lettek felvéve. |
MinusThirty: Date( )- 30 |
Létrehozza a MínuszHarminc nevű mezőt, majd a Date függvény segítségével megjeleníti az aktuális dátumot 30 nappal megelőző dátumot. |
SQL-összesítési függvények
A következő táblázatban szereplő kifejezések adatok összesítését és összegzését lehetővé tévő SQL-függvényeket használnak. Az ilyen függvényeket (például Sum, Count és Avg) gyakran összesítő függvényekként is emlegetik.
Az összesítő függvények mellett az Accessben úgynevezett „területi” összesítő függvények is használhatók, amelyek az egyes értékek szelektív összegzését vagy megszámlálását teszik lehetővé. Ezek használata akkor javasolt, ha csak az egy adott tartományban található értékeket szeretné megszámolni, vagy egy másik táblában szereplő értéket keres. A területi összesítő függvények közé tartozik a DSum függvény, a DCount függvény és a DAvg függvény.
Ha összesítést szeretne számolni, a legtöbb esetben előbb létre kell hozni egy Összegző lekérdezést. Csoport szerinti összegzés készítéséhez például szükséges az Összegző lekérdezés. Ha a lekérdezéstervező rácsról szeretne engedélyezni egy összegző lekérdezést, kattintson a Nézet menü Összegek elemére.
Kifejezés |
Leírás |
---|---|
RowCount: Count(*) |
Létrehozza a SorokSzáma nevű mezőt, majd a Count függvény segítségével megszámlálja a lekérdezésben szereplő rekordokat, beleértve a null értékű (üres) mezőket tartalmazó rekordokat is. |
FreightPercentage: Sum([Freight])/Sum([Subtotal]) *100 |
Létrehozza a SzázalékosFuvardíj nevű mezőt, majd a Fuvardíj mező értékeinek összegét elosztja a Részösszeg mező értékeinek összegével, és százalékban kifejezve kiszámítja az egyes részösszegekre eső fuvardíjat. (Ebben a példában a Sum függvényt használtuk.) Összegző lekérdezés esetében ezt a kifejezést kell használni. Ha a mező Format tulajdonságát Percent értékre állítja, kihagyható a *100 összetevő. Az összegző lekérdezések létrehozásáról további információt az Adatok összegzése lekérdezés használatával című cikkben talál. |
AverageFreight: DAvg("[Freight]", "[Orders]") |
Létrehozza az ÁtlagosFuvardíj mezőt, majd az összegző lekérdezésben egyesített megrendelések alapján a DAvg függvénnyel kiszámolja az átlagos fuvardíjat. |
Mezők hiányzó adatokkal
Az alábbi kifejezések használatát olyan mezők esetében javasoljuk, amelyekből hiányoznak bizonyos adatok. Ilyen mezők például a null értékű, vagyis ismeretlen vagy meghatározatlan értéket tartalmazó mezők. Munka közben gyakran találkozhatunk null értékekkel, például ha egy új terméknek még nincs ára, vagy ha egy munkatársunk elmulasztott egy bizonyos értéket hozzáadni egy megrendeléshez. Az adatbázisokban végzett műveletek esetében létfontosságú a null értékek megkeresésének és feldolgozásának képessége. Az alábbi táblázat a null értékek kezelésének leggyakoribb módjait ismerteti.
Kifejezés |
Leírás |
---|---|
CurrentCountryRegion: IIf(IsNull([CountryRegion]), " ", [CountryRegion]) |
Létrehozza az AktuálisOrszágRégió nevű mezőt, majd az IIf és az IsNull függvény segítségével megjelenít benne egy üres karakterláncot, ha az OrszágRégió mező null értéket tartalmaz; ellenkező esetben az OrszágRégió mező tartalmát adja eredményül. |
LeadTime: IIf(IsNull([RequiredDate] - [ShippedDate]), "Check for a missing date", [RequiredDate] - [ShippedDate]) |
Létrehozza az ÁtfutásiIdő mezőt, majd az IIf és az IsNull függvény segítségével a „Hiányzó dátum keresése” üzenetet jeleníti meg, ha az IgényeltDátum vagy a SzállításiDátum mező értéke null; ellenkező esetben a dátumok közti különbséget adja eredményül. |
SixMonthSales: Nz([Qtr1Sales]) + Nz([Qtr2Sales]) |
Létrehozza a FélévesEladás nevű mezőt, az Nz függvénnyel minden null értéket nulla értékké alakít, majd megjeleníti az 1.negyedév és a 2.negyedév mező értékeinek összegét. |
Segédlekérdezéseket tartalmazó számított mezők
Egy beágyazott lekérdezés, más néven segédlekérdezés használatával létrehozhat egy számított mezőt. Az alábbi táblázatban szereplő kifejezés jó példa arra, hogy hogyan lehet segédlekérdezéssel számított mezőt létrehozni.
Kifejezés |
Leírás |
---|---|
Cat: (SELECT [CategoryName] FROM [Categories] WHERE [Products].[CategoryID]=[Categories].[CategoryID]) |
Létrehozza a Kat. nevű mezőt, majd megjeleníti a Kategórianév adatot, ha a Kategóriák tábla Kategóriaazonosító értéke megegyezik a Termékek tábla Kategóriaazonosító értékével. |
Szöveges értékek egyeztetése
Az alábbi táblázat példakifejezései olyan feltételeket mutatnak be, amelyek teljes vagy részleges szövegérték-egyezést adnak eredményül.
Mező |
Kifejezés |
Leírás |
---|---|---|
SzállításiVáros |
"London" |
A Budapestre szállított szállítmányokat jeleníti meg. |
SzállításiVáros |
"London" Or "Hedge End" |
Az Or operátor segítségével megjeleníti a Budapestre vagy Debrecenbe szállított szállítmányok listáját. |
SzállításiOrszágRégió |
In("Canada", "UK") |
Az In operátor segítségével megjeleníti a Kanadába vagy az Egyesült Királyságba szállított szállítmányok listáját. |
SzállításiOrszágRégió |
Not "USA" |
A Not operátor segítségével megjeleníti az Egyesült Államokon kívül az összes szállítási országot/régiót. |
Terméknév |
Not Like "C*" |
A Not operátor és a * helyettesítő karakter segítségével megjeleníti a nem C betűvel kezdődő termékek listáját. |
Cégnév |
>="N" |
Megjeleníti azokat a szállítmányokat, amelyek az N-től Z-ig terjedő betűvel kezdődő cégek számára lettek kiszállítva. |
Termékkód |
Right([ProductCode], 2)="99" |
A Right függvény segítségével megjeleníti azokat a szállítmányokat, amelyeknél a Termékkód mező értéke 99-re végződik. |
SzállításiNév |
Like "S*" |
Megjeleníti az S betűvel kezdődő ügyfelek számára kiszállított szállítmányokat. |
Dátumfeltételek egyeztetése
Az alábbi táblázatban szereplő kifejezések azt mutatják be, hogy miként használhatók dátumok és hasonló függvények a feltételkifejezésekben. A dátumértékek megadásáról és használatáról további információt a Dátum- és időmezők formázása című cikkben talál.
Mező |
Kifejezés |
Leírás |
---|---|---|
SzállításDátuma |
#2/2/2017# |
Megjeleníti a 2017. február 2-án kiszállított szállítmányokat. |
SzállításDátuma |
Date() |
Az aznapi szállítmányokat adja eredményül. |
IgényeltDátum |
Between Date( ) And DateAdd("m", 3, Date( )) |
A Between...And operátor, valamint a DateAdd és a Date függvény segítségével megjeleníti az aktuális dátumtól számítva három hónapon belül esedékes megrendeléseket. |
RendelésDátuma |
< Date( ) - 30 |
A Date függvény segítségével megjeleníti a 30 napnál régebbi megrendeléseket. |
RendelésDátuma |
Year([OrderDate])=2017 |
A Year függvény segítségével megjeleníti a 2017-es megrendeléseket. |
RendelésDátuma |
DatePart("q", [OrderDate])=4 |
A DatePart függvény segítségével megjeleníti a negyedik naptári negyedévre eső megrendeléseket. |
RendelésDátuma |
DateSerial(Year ([OrderDate]), Month([OrderDate])+1, 1)-1 |
A DateSerial, a Year és a Month függvény segítségével megjeleníti az egyes hónapok utolsó napjára eső megrendeléseket. |
RendelésDátuma |
Year([OrderDate])= Year(Now()) And Month([OrderDate])= Month(Now()) |
A Year és a Month függvény, valamint az And operátor segítségével megjeleníti az aktuális év aktuális hónapjában esedékes megrendeléseket. |
SzállításDátuma |
Between #1/5/2017# And #1/10/2017# |
A Between...And operátor segítségével megjeleníti a 2017. január 5-nél nem régebben és a 2017. január 10-nél nem később kiszállított megrendeléseket. |
IgényeltDátum |
Between Date( ) And DateAdd("M", 3, Date( )) |
A Between...And operátor segítségével megjeleníti az aktuális dátumtól számítva három hónapon belül esedékes megrendeléseket. |
SzületésiDátum |
Month([BirthDate])=Month(Date()) |
A Month és a Date függvény segítségével megjeleníti azokat az alkalmazottakat, akik az adott hónapban ünneplik a születésnapjukat. |
Hiányzó adatok megkeresése
A következő táblázatban ismertetett kifejezések olyan mezők kezelésére használhatók, amelyekből valószínűleg hiányzik valamely adat, azaz amelyek feltételezhetően null értéket vagy nulla hosszúságú karakterláncot tartalmaznak. A null érték hiányzó információt jelent, nem pedig egy nulla vagy bármilyen más értéket. Az Access az adatbázisok egységessége érdekében vezette be a hiányzó adatok jelzését. A valós adatbázisokban gyakran előfordul, hogy valamely adat, ha átmenetileg is, de hiányzik (például ha még nem határozták meg egy új termék árát). Éppen ezért elengedhetetlen, hogy a valódi entitásokat (például egy céget) modellező adatbázisok is képesek legyenek rögzíteni a hiányzó adatokat. A mezők és vezérlőelemek null értékeit az IsNull függvénnyel keresheti meg, majd az Nz függvénnyel nullává alakíthatja őket.
Mező |
Kifejezés |
Leírás |
---|---|---|
SzállításiRégió |
Is Null |
Azon ügyfelek megrendeléseit adja eredményül, akik esetében a SzállításiRégió mező értéke null (hiányzik). |
SzállításiRégió |
Is Not Null |
Azon ügyfelek megrendeléseit adja eredményül, akik esetében a SzállításiRégió mező értéket tartalmaz. |
Fax |
"" |
A faxkészülékkel nem rendelkező ügyfelek megrendeléseit jeleníti meg. A hiányzó készüléket null (hiányzó) érték helyett a Fax mezőben megjelenő nulla hosszúságú karakterlánc jelzi. |
Rekordminták egyeztetése a Like operátorral
A bizonyos mintákat követő sorok egyeztetésekor a Like operátor nagyfokú rugalmasságot biztosít. Ennek oka, hogy a Like helyettesítő karakterekkel is használható, és segítségével mintákat határozhat meg az Accessben. A * (csillag) helyettesítő karakter például bármilyen típusú karaktersorozat helyettesítésére alkalmas, és megkönnyíti az adott betűvel kezdődő nevek felkutatását. A Like "S*" kifejezéssel például megkeresheti az S kezdőbetűs neveket. További információt a Like operátor című cikkben talál.
Mező |
Kifejezés |
Leírás |
---|---|---|
SzállításiNév |
Like "S*" |
A SzállításiNév mező minden S kezdőbetűs rekordját megkeresi. |
SzállításiNév |
Like "*Imports" |
A SzállításiNév mező minden olyan rekordját megkeresi, amely az „importálások” szóra végződik. |
SzállításiNév |
Like "[A-D]*" |
A SzállításiNév mező minden A, B, C és D kezdőbetűs rekordját megkeresi. |
SzállításiNév |
Like "*ar*" |
A SzállításiNév mező minden olyan rekordját megkeresi, amelyben megtalálható az „ar” betűkombináció. |
SzállításiNév |
Like "Bobvos Endr?" |
A SzállításiNév mező minden olyan rekordját megkeresi, melynek értékének első fele tartalmazza a „Bobvos” szót, és található benne egy ötbetűs karakterlánc, melynek első négy betűje „Endr” és az utolsó betű ismeretlen. |
SzállításiNév |
Not Like "A*" |
A SzállításiNév mező minden nem A kezdőbetűs rekordját megkeresi. |
Sorok egyeztetése SQL-összesítésekkel
Az SQL-összesítési vagy területi összegző függvények használata akkor javasolt, ha szelektív módon szeretné összegezni, megszámlálni vagy átlagolni az értékeket. Előfordulhat például, hogy csak egy bizonyos tartományba eső vagy az Igaz értéket eredményező értékeket szeretné megszámlálni. Más esetben szükség lehet egy másik tábla adott értékének megkeresésére és megjelenítésére. A következő táblázatban ismertetett példakifejezések egytől egyig területi összesítő függvények segítségével végzik el a szükséges számításokat az adott értékhalmazokon, a kapott eredményeket pedig a lekérdezés feltételeiként hasznosítják.
Mező |
Kifejezés |
Leírás |
---|---|---|
Fuvardíj |
> (DStDev("[Freight]", "Orders") + DAvg("[Freight]", "Orders")) |
A DStDev és a DAvg függvény segítségével megjeleníti azokat a megrendeléseket, amelyek fuvardíja meghaladta a várt összeget, valamint a fuvardíj szórásának értékét. |
Mennyiség |
> DAvg("[Quantity]", "[Order Details]") |
A DAvg függvény segítségével megjeleníti az átlagos rendelési mennyiséget meghaladó termékeket. |
Mezők egyeztetése segédlekérdezésekkel
A feltételként használni kívánt értékek kiszámításához segédlekérdezések, más néven beágyazott lekérdezések is használhatók. A következő táblázatban ismertetett példakifejezések a segédlekérdezések eredményei alapján végzik a sorok egyeztetését.
Mező |
Kifejezés |
Eredmény |
---|---|---|
Egységár |
(SELECT [UnitPrice] FROM [Products] WHERE [ProductName] = "Aniseed Syrup") |
Azokat a termékeket adja eredményül, amelyek ára megegyezik az Ánizs szirup termék árával. |
Egységár |
>(SELECT AVG([UnitPrice]) FROM [Products]) |
Az átlagos termékárat meghaladó termékeket adja eredményül. |
Fizetés |
> ALL (SELECT [Salary] FROM [Employees] WHERE ([Title] LIKE "*Manager*") OR ([Title] LIKE "*Vice President*")) |
Azoknak az üzletkötőknek a fizetését adja eredményül, kiknek fizetése meghaladja az Igazgató vagy Alelnök beosztásban dolgozó alkalmazottak fizetését. |
RendelésVégösszege: [Egységár] * [Mennyiség] |
> (SELECT AVG([UnitPrice] * [Quantity]) FROM [Order Details]) |
Azokat a rendeléseket adja eredményül, amelyek végösszege meghaladja az átlagos rendelési értéket. |
Frissítő lekérdezések
A frissítő lekérdezésekkel módosíthatók egy adatbázis egy vagy több létező mezőjének adatai. Segítségével elvégezheti a kívánt adatok cseréjét vagy teljes törlését. A következő táblázat a frissítő lekérdezésekben használható kifejezésekre hoz példákat. Az alábbi kifejezéseket a frissíteni kívánt mezőhöz tartozó lekérdezéstervező rács Módosítás sorában kell megadni.
A frissítő lekérdezések létrehozásáról a Frissítő lekérdezés létrehozása és futtatása című cikkben talál további információt.
Mező |
Kifejezés |
Eredmény |
---|---|---|
Beosztás |
"Salesperson" |
Beírja az Eladó szöveget. |
ProjektKezdete |
#8/10/17# |
A dátumot 2017.08.10. értékre módosítja. |
Kivezetve |
Yes |
Egy Igen/Nem típusú mezőben a Nem értéket Igenre módosítja. |
Cikkszám |
"PN" & [PartNumber] |
Minden megadott cikkszám elé C betűt tesz. |
ÖsszesSortétel |
[UnitPrice] * [Quantity] |
Kiszámítja az Egységár és a Mennyiség szorzatát. |
Fuvardíj |
[Freight] * 1.5 |
50%-kal megnöveli a fuvardíjakat. |
Értékesítés |
DSum("[Quantity] * [UnitPrice]", "Order Details", "[ProductID]=" & [ProductID]) |
Ha az aktuális tábla Termékkód mezőjének értékei megegyeznek a Rendelés részletei nevű tábla Termékkód mezőjének értékeivel, a kifejezés a Mennyiség és az Egységár mező szorzata alapján frissíti az értékesítési eredményeket. |
CímIrányítószáma |
Right([ShipPostalCode], 5) |
A bal szélső karaktereket levágva csak az öt jobb szélső karaktert jeleníti meg. |
Egységár |
Nz([UnitPrice]) |
Az Egységár mező egy null (meghatározatlan vagy ismeretlen) értékét nullára (0) módosítja. |
SQL-utasítások
Az SQL (Structured Query Language) az Access által használt lekérdezésnyelv. A lekérdezés Tervező nézetében létrehozott minden lekérdezés SQL-nyelven is kifejezhető. Ha szeretné megtekinteni egy lekérdezés SQL-utasítását, kattintson a Nézet menü SQL nézet parancsára. A következő táblázatban kifejezéseket használó SQL-utasításokra találhat példákat.
Kifejezést használó SQL-utasítás |
Eredmény |
---|---|
SELECT [FirstName],[LastName] FROM [Employees] WHERE [LastName]="Danseglio"; |
A Zoltán utónevű alkalmazottak esetében megjeleníti a Vezetéknév és az Utónév nevű mezők tartalmát. |
SELECT [ProductID],[ProductName] FROM [Products] WHERE [CategoryID]=Forms![New Products]![CategoryID]; |
Megjeleníti a Termékek tábla Termékkód és Terméknév nevű mezőinek tartalmát azon rekordok esetében, melyekben a Kategóriaazonosító mező tartalma megegyezik a megnyitott Új termékek űrlap Kategóriaazonosító nevű mezőjének tartalmával. |
SELECT Avg([ExtendedPrice]) AS [Average Extended Price] FROM [Order Details Extended] WHERE [ExtendedPrice]>1000; |
Kiszámítja a teljes ár átlagát azon megrendelések esetében, melyekben a TeljesÁr mező értéke nagyobb mint 1000, majd az eredményt megjeleníti a Teljes ár átlaga nevű mezőben. |
SELECT [CategoryID], Count([ProductID]) AS [CountOfProductID] FROM [Products] GROUP BY [CategoryID] HAVING Count([ProductID])>10; |
A TermékkódSzáma nevű mezőben megjeleníti, hogy hány termék szerepel a 10-nél több terméket tartalmazó kategóriákban. |
Táblakifejezések
A kifejezések a táblákban leggyakrabban egy alapértelmezett érték hozzárendelésére vagy egy érvényességi szabály létrehozására használatosak.
Alapértelmezett mezőértékek
Adatbázisok tervezésekor előfordulhat, hogy alapértelmezett értéket szeretne rendelni egy mezőhöz vagy vezérlőelemhez. Ha később létrehoz egy olyan rekordot, amelyben szerepel az adott mező, vagy az adott vezérlőelemet tartalmazó objektumot alkot, az Access megjeleníti az alapértelmezett értéket. A következő táblázatban ismertetett kifejezések egy mező vagy vezérlőelem alapértelmezett értékeire hoznak példákat. Ha egy vezérlőelem egy olyan táblamezőhöz van kötve, amelyhez korábban alapértelmezett értéket adtak meg, minden esetben a vezérlőelemhez rendelt alapértelmezett érték élvez elsőbbséget.
Mező |
Kifejezés |
Alapértelmezett mezőérték |
---|---|---|
Mennyiség |
1 |
1 |
Megye |
"MT" |
Zala |
Megye |
"New York, N.Y." |
Győr, Győr-Moson-Sopron (Ne feledje idézőjelbe tenni az értéket, ha az írásjelet tartalmaz.) |
Fax |
"" |
Egy nulla hosszúságú karakterlánc, amely azt jelzi, hogy a mezőnek alapértelmezés szerint üresnek kellene lennie, azonban null értéket tartalmaz |
Rendelési dátum |
Date( ) |
A mai dátum |
Határidő |
Date() + 60 |
A mai naptól számított 60. nap dátuma |
Mezőérvényesítési szabályok
A mezőre vagy vezérlőelemre vonatkozó érvényességi szabályok kifejezéssel hozhatók létre. Az Access ezután minden esetben érvénybe lépteti a szabályokat, ha az adott mezőben vagy vezérlőelemen adatot ad meg. Érvényességi szabály létrehozásához módosítsa a mezőre vagy vezérlőelemre vonatkozó ValidationRule tulajdonságot. Emellett a ValidationText tulajdonságot is érdemes beállítani, amely az érvényességi szabály megszegése esetén megjelenített üzenetet tartalmazza. Ha nem állítja be a ValidationText tulajdonságot, az Access egy alapértelmezett hibaüzenetet jelenít meg.
A következő táblázatban található példák a ValidationRule tulajdonságra vonatkozó érvényességi szabályok kifejezéseit, valamint a ValidationText tulajdonsághoz kapcsolt szöveget ismertetik.
ValidationRule tulajdonság |
ValidationText tulajdonság |
---|---|
<> 0 |
Kérjük, a nullától eltérő értéket adjon meg. |
0 Or > 100 |
Az értéknek nullának vagy 100-nál nagyobbnak kell lennie. |
Like "K???" |
Az értéknek négy karakterből kell állnia, és K betűvel kell kezdődnie. |
< #1/1/2017# |
2017.01.01. előtti dátumot adjon meg. |
>= #1/1/2017# And < #1/1/2008# |
A dátumnak a 2017. évben kell lennie. |
Az adatok érvényesítéséről további információt az Érvényességi szabály létrehozása mező adatainak érvényesítésére című cikkben talál.
Makrókifejezések
Előfordulhat, hogy csak olyankor szeretné végrehajtani a makró egyik műveletét vagy műveletsorát, ha egy bizonyos feltétel teljesül. Tegyük fel például, hogy egy műveletet csak akkor szeretne futtatni, ha a Számláló szövegmező értéke 10. Egy kifejezéssel definiálhatja a feltételt egy Ha blokkban:
[Counter]=10
A ValidationRule tulajdonsághoz hasonlóan a Ha blokkban lévő kifejezés is feltételes kifejezés. azaz True vagy False értéket kell visszaadnia. A program csak akkor hajtja végre az adott műveletet, ha a feltétel igaz.
A művelet végrehajtásához szükséges kifejezés |
Ha |
---|---|
[City]="Paris" |
A Település nevű mező értéke Budapest azon az űrlapon, amelyen a makrót futtatta. |
DCount("[OrderID]", "Orders") > 35 |
A Rendelések tábla Rendelésazonosító nevű mezőjében több mint 35 bejegyzés szerepel. |
DCount("*", "[Order Details]", "[OrderID]=" & Forms![Orders]![OrderID]) > 3 |
A Rendelés részletei táblában háromnál több olyan bejegyzés szerepel, amelynél a tábla Rendelésazonosító nevű mezőjének értéke megegyezik a Rendelések űrlap Rendelésazonosító nevű mezőjének értékével. |
[ShippedDate] Between #2-Feb-2017# And #2-Mar-2017# |
A makrót futtató űrlap SzállításiDátum nevű mezőjének értéke 2017.02.02. és 2017.03.02. közé esik. |
Forms![Products]![UnitsInStock] < 5 |
A Termékek űrlap Raktáron nevű mezőjének értéke kisebb 5-nél. |
IsNull([FirstName]) |
A makrót futtató űrlap Vezetéknév nevű mezőjének értéke null (nem tartalmaz értéket). A kifejezés a következőképpen is használható: [Vezetéknév] Is Null. |
[CountryRegion]="UK" And Forms![SalesTotals]![TotalOrds] > 100 |
A makrót futtató űrlap OrszágRégió nevű mezőjének értéke Magyarország, és az ÖsszEladás űrlap ÖsszRend mezőjének értéke nagyobb 100-nál. |
[CountryRegion] In ("France", "Italy", "Spain") And Len([PostalCode])<>5 |
A makrót futtató űrlap OrszágRégió nevű mezőjének értéke Franciaország, Olaszország vagy Spanyolország, az irányítószám pedig 5 karaktertől eltérő hosszúságú. |
MsgBox("Confirm changes?",1)=1 |
Az OK gombra kattint az MsgBox függvény által megjelenített párbeszédpanelen. Ha a párbeszédpanel Mégse gombjára kattint, az Access figyelmen kívül hagyja a műveletet. |