A Microsoft Access használata során gyakran kell olyan értékekkel dolgoznia, amelyek nem találhatók meg közvetlenül az adataiban. Előfordulhat például, hogy ki szeretné számítani az egy megrendelés után fizetendő forgalmi adót, illetve a megrendelés összértékét. Ezek az értékek kifejezések használatával számíthatók ki. Ha kifejezéseket szeretne használni, a megírásukhoz a megfelelő szintaxist kell használnia. A szintaxis az a szabálykészlet, amely biztosítja a kifejezés szimbólumainak helyes összetételét. Kezdetben nehézséget okozhat a kifejezések olvasása az Accessben. A kifejezések szintaxisának megismerésével és kis gyakorlással azonban ez a nyelv könnyedén megfejthetővé válik.
Tartalom
A kifejezések áttekintése
A kifejezések a következő elemek kombinációjából állhatnak: beépített vagy felhasználó által definiált függvények, azonosítók, operátorok, értékek és olyan állandók, amelyek egyetlen értéket adnak vissza.
A következő kifejezés például gyakori összetevőket tartalmaz:
=Sum([Purchase Price])*0.08
-
A Sum() egy beépített függvény
-
A [Purchase Price] egy azonosító
-
A * egy matematikai műveleti jel
-
A 0.08 egy állandó
A kifejezést egy űrlap vagy jelentés láblécének beviteli mezőjében használva kiszámítható egy elemcsoport után fizetendő forgalmi adó.
A kifejezések ennél a példánál jóval bonyolultabbak és jóval egyszerűbbek is lehetnek. A következő logikai változó kifejezés például mindössze egy operátorból és egy állandóból áll:
>0
A kifejezés a következőt adja vissza:
-
True, ha egy 0-nál nagyobb számmal hasonlítják össze.
-
False, ha egy 0-nál kisebb hasonlítják össze.
Ezt a kifejezést egy vezérlő vagy táblamező Érvényességi szabály tulajdonságában használva gondoskodhat arról, hogy csak pozitív értékeket lehessen beírni. A kifejezések sok helyen felhasználhatók számítások elvégzésére, karakterek módosítására vagy adatok vizsgálatára. A táblák, a lekérdezések, az űrlapok, a jelentések és a makrók mind rendelkeznek olyan tulajdonságokkal, amelyekben megadhat kifejezéseket. Használhat kifejezéseket például a vezérlők Mező vagy kifejezés és Alapértelmezett érték tulajdonságában. Ezenkívül a táblamezők Érvényességi szabály tulajdonságában is lehet kifejezéseket használni.
A kifejezések összetevői
Kifejezés készítésekor az azonosítókat függvényekkel, operátorokkal, állandókkal és értékekkel kell kombinálnia. Minden érvényes kifejezésben szerepelnie kell legalább egy függvénynek vagy azonosítónak, és ezenkívül állandókat és operátorokat is megadhat bennük. A kifejezéseket használhatja más kifejezések részeként is – általában egy függvény argumentumaként. Ezt nevezzük a kifejezés beágyazásának.
-
Azonosítók Az általános forma a következő:
[Collection name]![Object name].[Property name]
Egy azonosító részeiből csak annyit kell meghatározni, hogy az a kifejezés kontextusában egyedi legyen. Az azonosítók sokszor jelennek meg [Object name] formában.
-
Függvények Az általános forma a következő:
Function(argument, argument)
Az argumentumok egyike általában egy azonosító vagy egy kifejezés. Egyes függvényekhez nincs szükség argumentumokra. Mielőtt használna egy adott függvényt, tekintse át a függvény szintaxisát. További információt a Függvények (kategória szerint rendezve) című témakörben talál.
-
Operátorok Az általános forma a következő:
Identifier operator identifier
A forma kivételeit az Operátorok című szakasz sorolja fel.
-
Állandók Az általános forma a következő:
Identifier comparison_operator constant
-
Értékek: Az értékek számos helyen előfordulhatnak a kifejezésekben.
Objektumok, gyűjtemények és tulajdonságok
Az Access-adatbázisokban található táblákat, lekérdezéseket, űrlapokat, jelentéseket és mezőket mind objektumnak hívjuk. Minden objektumnak van egy neve. Néhány objektumnak már eleve van neve, például a Microsoft Office Access Névjegyalbum sablonja alapján létrehozott Névjegyalbum táblának. Az új objektumoknak létrehozásuk alkalmával kell nevet adni.
Az adott objektumtípusok tagjainak halmazát gyűjteménynek hívják. Gyűjtemény például egy adatbázis tábláinak halmaza. Az adatbázisokban található gyűjtemények tagjai szintén lehetnek más objektumokat tartalmazó gyűjtemények. A tábla objektum például mezőket tartalmazó gyűjtemény.
Az objektumoknak a tulajdonságai leírják az objektum jellemzőit, és lehetőséget nyújtanak azok megváltoztatására. A lekérdezés objektumoknak például van Alapértelmezett nézet tulajdonságuk, amely leírja és meghatározza, hogyan fog megjelenni a lekérdezés a futtatásakor.
A következő ábra a gyűjtemények, objektumok és tulajdonságok közötti kapcsolatot mutatja:
|
3 Kifejezés 2 Objektum 1 Gyűjtemény |
Azonosítók
Ha egy kifejezésben objektumot, gyűjteményt vagy tulajdonságot használ, az adott elemre azonosítók használatával hivatkozhat. Az azonosító tartalmazza az azonosítani kívánt elem nevét, valamint annak az elemnek a nevét, amelyhez ez elem tartozik. Egy mező azonosítója például tartalmazza a mező nevét, valamint a mezőt magában foglaló tábla nevét. Példa erre a fajta azonosítóra:
[Customers]![BirthDate]
Néhány esetben egy elem neve önmagában is használható azonosítóként. Ez akkor igaz, amikor az elem neve egyedi a létrehozott kifejezés kontextusában. Az azonosító többi része benne foglaltatik a kontextusban. Ha például egy olyan lekérdezést hoz létre, amely csak egy táblát használ, a mezőnevek önmagukban használhatók azonosítókként, mert a mezőneveknek egyedieknek kell lenniük a táblákon belül. Mivel csak egy táblát használ, a tábla nevét minden, a lekérdezésben mezőhivatkozásaként megadott azonosítóba beleérti az alkalmazás.
Minden egyéb esetben csak akkor működik megfelelően egy hivatkozás, ha pontosan meghatározza az azonosító részeit. Ez akkor igaz, amikor a használt azonosító nem egyedi a kifejezés kontextusában. Kétség esetén az azonosító további részeit is meg kell határozni ahhoz, hogy az a kontextusban egyedinek számítson. Tegyük fel például, hogy egy olyan lekérdezést hoz létre, amely egy Termékek és egy Rendelések nevű táblát is használ, és mindkettőben található egy Termékazonosító nevű mező. Ebben az esetben a lekérdezésben használt azonosítónak, amellyel a Termékazonosító mezőre szeretne hivatkozni, az adott tábla nevét is tartalmaznia kell. Például:
[Products]![ProductID]
Azonosító operátorok Az azonosítókban háromféle operátor használható:
-
Felkiáltójel operátor (!)
-
Pont operátor (.)
-
Szögletes zárójel operátor ([ ])
A helyes használathoz helyezze az azonosító egyes részeit szögletes zárójelekbe, majd kapcsolja össze őket a felkiáltójel vagy a pont operátorral. Egy Alkalmazottak nevű tábla Vezetéknév mezőjét például a következő módon fejezheti ki: [Employees]![Last Name]. Az Access a felkiáltójel operátor alapján megállapítja, hogy az operátor után álló objektum az előtte lévő gyűjteménybe tartozik. Ebben az esetben a [Vezetéknév] egy olyan mezőobjektum, amely az [Alkalmazottak] gyűjteménybe tartozik, amely maga egy táblaobjektum.
Igazság szerint nem kell mindig szögletes zárójelbe foglalni az azonosítókat vagy azok egy részét. Ha az azonosítóban nem szerepel szóköz vagy más speciális karakter, az Access a kifejezés olvasásakor automatikusan hozzáadja a szögletes zárójeleket. Azonban célszerű, ha maga adja meg a szögletes zárójeleket – ez segít elkerülni a hibákat, és láthatóbbá teszi, hogy egy kifejezésnek az adott része azonosító.
Függvények, operátorok, állandók és értékek
Kifejezések létrehozásához többre van szükség, mint azonosítókra – egy műveletet is végre kell hajtania. Ehhez függvényekre, operátorokra és állandókra lesz szüksége.
Függvények
A függvény egy kifejezésben használható eljárás. Egyes függvények (például a Date függvény) bemenet nélkül is megfelelően működnek. A legtöbb függvény használatához azonban bemenetekre, más néven argumentumokra van szükség.
A cikk elején szereplő példában a DatePart függvény két argumentumot használ: egy Intervallum argumentumot "yyyy" értékkel, valamint egy Dátum argumentumot [Customers]![BirthDate] értékkel. A DatePart függvényhez legalább ezt a két argumentumot (Intervallum és Dátum) meg kell adni, de akár négy argumentum is megadható hozzá.
Az alábbi lista néhány, kifejezésekben gyakran használt függvényt mutat be. A függvények szintaxisáról további információkat a hivatkozásukra kattintva találhat.
-
A Date függvénnyel beillesztheti a kifejezésbe az aktuális rendszerdátumot. Rendszerint a Format függvénnyel, illetve Dátum/Idő típusú adatot tartalmazó mezőkre vonatkozó mezőazonosítókkal használatos.
=Date()
-
A DatePart függvény egy dátumrész meghatározására vagy kinyerésére szolgál. A függvény rendszerint egy mezőazonosítóból nyeri ki a dátumot, de az is előfordulhat, hogy egy másik függvény (például Date) által visszaadott dátumértéket használ fel.
DatePart ( "yyyy", Date())
-
A DateDiff függvény két dátum közötti különbség meghatározására szolgál. Az egyik dátum rendszerint egy mezőazonosítóból származik, míg a másikat a Date függvény adta vissza.
=DateDiff(“d”, Now(), [Orders].[ReceiveBefore])-10
-
A Format függvény az azonosítók, illetve más függvények eredményeinek formázására használható.
Format([Date],"ww")=Format(Now(),"ww")-1
-
Az IIf függvény megállapítja, hogy egy kifejezés értéke igaz vagy hamis, majd az eredménytől függően más-más meghatározott értéket ad eredményül.
=IIf([CountryRegion]="Italy", "Italian", "Some other language")
-
Az InStr függvény egy karakter vagy karakterlánc más karakterláncban való helyének meghatározására szolgál. A keresett karakterlánc leggyakrabban egy mezőazonosítóból származik.
InStr(1,[IPAddress],".")
-
A Left, a Mid és a Right függvény egy karakterláncban található karakterek kinyerésére szolgál, a bal szélső (Left), egy középső pozícióban elhelyezkedő (Mid) vagy a jobb szélső (Right) karaktertől kezdve. Ezek a függvények gyakran használatosak az InStr függvénnyel. Az a karakterlánc, amelyből a függvények kinyerik a karaktereket, rendszerint egy mezőazonosítóból származik.
Left([ProductName], 1) Right([AssetCode], 2) Mid([Phone],2,3)
A függvények listáját a Függvények (kategória szerint rendezve) című témakörben találja.
Operátorok
Az operátor olyan szó vagy szimbólum, amely a kifejezés más elemei között fennálló adott aritmetikai vagy logikai kapcsolatot jelzi. Az operátorok a következők lehetnek:
-
Aritmetikai, például pluszjel (+).
-
Összehasonlító, például egyenlőségjel (=).
-
Logikai, például Not.
-
Összefűző, például &.
-
Speciális, például Like.
Az operátorokat általában két azonosító közötti kapcsolat jelzésére használjuk. A következő táblázatok az Access-kifejezésekben használható operátorokat írják le.
Aritmetikai
Az aritmetikai operátorok két vagy több számmal végzett számításokhoz, illetve a számok előjelének (pozitív vagy negatív) módosításához használhatók.
Operátor |
Rendeltetés |
Példa |
---|---|---|
+ |
Két szám összeadása |
[Részösszeg]+[ForgalmiAdó] |
- |
Két szám különbségének megállapítása vagy egy szám negatív értékének jelzése |
[Ár]-[Kedvezmény] |
* |
Két szám összeszorzása |
[Mennyiség]*[Ár] |
/ |
Az első szám osztása a második számmal |
[Végösszeg]/[Tételszám] |
\ |
Mindkét szám egész számmá kerekítése, majd az első szám osztása a második számmal, végül az eredmény egész számmá csonkolása |
[Bejegyzett]\[Szobák] |
Mod |
Az első szám osztása a második számmal, majd a maradék visszaadása |
[Bejegyzett] Maradék [Szobák] |
^ |
A szám hatványkitevőre emelése |
Szám ^ Kitevő |
Összehasonlító
Az összehasonlító operátorok értékek összehasonlítására szolgálnak, és Igaz, Hamis vagy Null (ismeretlen) értéket adhatnak vissza.
Operátor |
Rendeltetés |
---|---|
< |
Annak meghatározása, hogy az első érték kisebb-e a másodiknál |
<= |
Annak meghatározása, hogy az első érték kisebb-e a másodiknál, illetve egyenlő-e azzal |
> |
Annak meghatározása, hogy az első érték nagyobb-e a másodiknál |
>= |
Annak meghatározása, hogy az első érték nagyobb-e a másodiknál, illetve egyenlő-e azzal |
= |
Annak meghatározása, hogy az első érték egyenlő-e a másodikkal |
<> |
Annak meghatározása, hogy az első érték nem egyenlő-e a másodikkal |
Ha az első vagy második érték Null, a végeredmény minden esetben Null lesz. Mivel a Null egy ismeretlen értéket jelöl, a Null értékkel való bármilyen összehasonlítás szintén ismeretlen értéket ad vissza.
Logikai
A logikai operátorokat két logikai érték kombinálására, és Igaz, Hamis vagy Null érték visszaadására használhatja. A logikai operátorokat más néven Boolean operátoroknak is nevezik.
Operátor |
Használat |
Leírás |
---|---|---|
And |
Kif1 és Kif2 |
Igaz, ha Kif1 és Kif2 egyaránt igaz. |
Or |
Kif1 vagy Kif2 |
Igaz, ha Kif1 vagy Kif2 igaz. |
Eqv |
Kif1 Eqv Kif2 |
Igaz, ha Kif1 és Kif2 egyaránt igaz, illetve ha Kif1 és Kif2 egyaránt hamis. |
Not |
Nem Kif |
Igaz, ha Kif értéke nem igaz. |
Xor |
Kif1 xvagy Kif2 |
Igaz, ha Kif1 vagy Kif2 közül az egyik (de nem mindkét) érték Igaz. |
Összefűző
Az összefűző operátorok két szöveges érték egyetlen karakterláncba való egyesítésére használhatók.
Operátor |
Használat |
Leírás |
---|---|---|
& |
karakterlánc1 & karakterlánc2 |
Két karakterlánc egyesítése egy karakterlánccá |
+ |
karakterlánc1 + karakterlánc2 |
Két karakterlánc egyesítése egy karakterlánccá Null érték propagálásával |
Speciális
A következő táblázat a speciális operátorok használatát ismerteti.
Operátor |
Leírás |
További információ |
---|---|---|
Is Null or Is Not Null |
Annak megállapítása, hogy egy érték Null-e vagy nem Null |
|
Like "pattern" |
Karakterlánc értékeinek illesztése a ? és a * helyettesítő operátor használatával. |
|
Between val1 And val2 |
Annak megállapítása, hogy egy numerikus vagy dátumérték adott tartományba esik-e |
|
In(string1,string2...) |
Annak megállapítása, hogy egy karakterlánc megtalálható-e egy karakterlánchalmazban |
Állandók
Az állandó olyan ismert érték, amely nem változik, és amely felhasználható egy kifejezésben. Négy gyakran használt állandó található az Access alkalmazásban:
-
True: Azt jelzi, hogy valami logikailag igaz.
-
False: Azt jelzi, hogy valami logikailag hamis.
-
Null: Az ismert értékek hiányát jelzi.
-
"" (empty string): Üres értéket jelez.
Az állandók felhasználhatók függvények argumentumaként vagy egy feltétel részeként egy kifejezésben. Az üres karakterlánc ("") állandót például használhatja a mezőértékek kiszámítására egy lekérdezés oszlopa feltételének részeként, a következő feltétel megadásával: <>"". Ebben a példában a <> operátor, az "" pedig állandó. Együtt használva azt jelzik, hogy azt az azonosítót, amelyre alkalmazza, az üres karakterlánccal hasonlítja össze. Az eredményül kapott kifejezés akkor igaz, ha az azonosító értéke nem üres karakterlánc.
Járjon el körültekintően a Null állandó használatakor. A legtöbb esetben, ha a Null állandót egy összehasonlító operátorral együtt használja, hibát kap eredményül. Ha egy kifejezésben egy értéket a Null értékkel szeretne összehasonlítani, használja az Is Null vagy az Is Not Null operátort.
Értékek
A kifejezésekben konstansértékeket is használhat, például az 1254 számot vagy az "Adjon meg egy 1 és 10 közötti számot" karakterláncot. Számértékeket is használhat, amely számjegyek sorozatából állhat, szükség esetén az előjellel és a tizedesponttal együtt. Az előjel hiánya esetén az Access pozitív értéket feltételez. Ha negatív értéket szeretne megadni, akkor írja be a mínuszjelet (-). Az alkalmazásban tudományos jelölést is használhat. Ehhez az „E” vagy „e” karaktert és a hatványkitevő értékét kell megadnia (például: 1,0E-6).
Ha szöveges karakterláncokat használ, akkor tegye azokat idézőjelbe, hogy az Access helyesen értelmezze őket. Bizonyos körülmények között az Access saját maga ellátja az állandókat az idézőjelekkel. Ha például egy érvényességi szabály vagy egy lekérdezési feltétel kifejezésében szöveget ad meg, akkor az Access automatikusan idézőjelbe teszi a karakterláncokat.
Ha beírja például a Paris nevet, az Access a következőt jeleníti meg a kifejezésben: "Paris". Ha olyan kifejezést szeretne megadni, amely ténylegesen idézőjelbe tett szöveget jelenít meg, akkor a beágyazott karakterláncot vagy aposztrófok (') közé vagy három pár dupla idézőjel (") közé kell helyeznie. Az alábbi két kifejezés például egyenértékű:
Forms![Contacts]![City]. DefaultValue = ' "Paris" '
Forms![Contacts]![City].DefaultValue = " " "Paris" " "
Dátum-/időértékek használatához tegye az értékeket kettős keresztek (#) közé. Például a #17-3-7#, a #17-márc-7# és a #2017-márc-7# mind érvényes dátum-/időérték. Amikor az Access # karakterek közé tett érvényes dátum-/időértéket észlel, automatikusan Dátum/Idő adattípusúként kezeli azt.
A webes adatbázisokban legfeljebb 65 beágyazási szint használható a kifejezésekben
A több mint 65 szint mélységben beágyazott kifejezések nem működnek a böngészőben, ezért ne használjon ilyen kifejezéseket a webes Access-adatbázisokban. Nem jelenik meg semmilyen hibaüzenet – a kifejezés egyszerűen nem működik.
A &, ANDés OR operátorok használata további olyan egymásba ágyazott szinteket hozhatnak létre a kiszolgálón, amelyek nem tükröződnek az Access-kliensben. A be nem ágyazott "a" & "b" & "c" kifejezés például nem a Kifejezésszerkesztőbe van ágyazva, de a SharePointban megjelenik, mint concatenate.Db("a", concatenate.Db("b", "c") ). Ez a fordítás a beágyazás egy szintjét hozza létre. Ha sok egymást követő &, AND, vagy OR operátort használ egyetlen kifejezésben, akkor túllépheti a kiszolgáló 65 beágyazási korlátját, ekkor a kifejezés nem fog működni a böngészőben.