Az asztali Access-adatbázisokban az érvényességi szabályokkal már a bevitel során ellenőrizheti a rögzített adatokat. A Kifejezésszerkesztő használata segíthet a szabály megfelelő formázásában. Az érvényesítési szabályok a Táblatervező nézetben vagy a tábla Adatlap nézetében állíthatók be. Az Accessben háromféle érvényességi szabály van:
1. Mezőérvényesítési szabály : Mezőérvényesítési szabály használatával megadhatja azt a feltételt, amelyet minden érvényes mezőértéknek teljesítenie kell. Az aktuális mezőt csak akkor kell megadnia a szabály részeként, ha a mezőt egy függvényben használja. A mezőkbe beírható karakterek típusára vonatkozó korlátozások egyszerűbben megadhatók egy beviteli maszk használatával. Egy dátum mezőhöz például tartozhat egy olyan érvényesítési szabály, amely nem engedélyezi a múltbeli dátumokat.
Példák:
Dátumértékek letiltása a múltban: >=Date()
Általánosan elfogadott e-mail formátum: Null VAGY ((Például "*?@?*.? *") ÉS (Nem olyan, mint "*[ ,;] *"))
Az ötnél kisebb vagy egyenlő szám: <=5
A Pénznem mező nem lehet negatív: >=0
Karakterlánc karakterhosszának korlátozása: Len([StringFieldName])<100
2. Rekordérvényesítési szabály : Rekordérvényesítési szabály használatával megadhatja, hogy minden érvényes rekordnak meg kell felelnie. Ezenkívül összehasonlíthatja különböző mezők értékeit. Egy két dátum mezőből álló rekord esetén például az érvényességi szabály megkövetelheti, hogy az egyik mező értéke korábbi legyen a másik mező értékénél (például a Kezdési dátum értékének meg kell előznie a Befejezési dátum értékét).
Példák:
Győződjön meg arról, hogy a záró dátum nem korábbi a kezdő dátum előtt: [Záró dátum]>=[Kezdő dátum]
Adjon meg egy kötelező dátumot, amely legfeljebb 30 nappal a megrendelés dátuma után következik be: [RequiredDate]<=[OrderDate]+30
3. Érvényesítés űrlapon : Egy űrlap vezérlőelemének Érvényességi szabály tulajdonságával megadhat egy feltételt, amelyet a vezérlőelembe bevitt összes értéknek teljesítenie kell. Az Érvényességi szabály vezérlőtulajdonság a mezőérvényesítési szabályhoz hasonlóan működik. Általában akkor érdemes űrlap-érvényesítési szabályt használni mezőérvényesítési szabály helyett, ha a szabály csak az adott űrlapra vonatkozik, és nem a táblára, függetlenül attól, hogy hol lett felhasználva.
Tartalom
Áttekintés
Ez a témakör a táblamezőkben és űrlap-vezérlőelemekben megadott érvényességi szövegek és érvényességi szabályok használatának módját ismerteti. Az érvényességi szabály olyan eszköz, amellyel korlátozható, hogy milyen adatok adhatók meg a táblamezőkben vagy az űrlapon elhelyezett vezérlőelemekben, például egy szövegmezőben. Az érvényesítési szöveggel üzenetet jeleníthet meg a felhasználóknak, hogy megkönnyítse számukra az érvényes adatok bevitelét.
Az adatok bevitelekor az Access ellenőrzi, hogy a bevitel sérti-e valamelyik érvényességi szabályt. Ha igen, akkor nem fogadja el, hanem egy üzenetet jelenít meg.
Az Access többféle módszert kínál az adatbevitel korlátozására:
-
Adattípusok: Minden táblamezőnek van egy adattípusa, amely korlátozza, hogy a felhasználók mit írhatnak be. Egy Dátum/idő típusú mezőben például csak dátum és időpont adható meg, a Pénznem típusú mezőkben csak pénzösszegek és így tovább.
-
Mezőtulajdonságok: Egyes mezőtulajdonságok korlátozzák az adatbevitelt. A Mezőméret tulajdonság például korlátozza a bevihető adatok méretét.
Az Érvényességi szabály tulajdonságokkal meghatározott értékeket követelhet meg, az Érvényesítési szöveg tulajdonsággal pedig figyelmeztetheti a felhasználókat az esetleges hibákra. Ha például a >100 And <1000 szabályt adja meg az Érvényességi szabály tulajdonság értékeként, azzal arra kényszeríti a felhasználókat, hogy 100 és 1000 közötti értékeket adjanak meg. Egy [BefejezésiDátum]>=[KezdésiDátum] alakú szabállyal pedig megkövetelheti, hogy a felhasználók a kezdési dátumnál későbbi befejezési dátumot írjanak be. Az Érvényesítési szöveg tulajdonság értékeként olyan szövegeket adhat meg, mint például „100 és 1000 közötti értékeket adjon meg” vagy „A kezdési dátumnál későbbi befejezési dátumot adjon meg”, így közölheti a hibás adatot beíró felhasználókkal, hogy hogyan javíthatják ki a hibát.
-
Beviteli maszkok Beviteli maszkot használva érvényesítheti az adatokat oly módon, hogy kényszeríti a felhasználókat az adatok adott módon történő megadására. Egy beviteli maszk például kényszerítheti a felhasználókat, hogy európai formátumban (pl. 2007.04.14.) adják meg a dátumokat.
Ezeket az adatérvényességi szabályokat önmagukban és egymással kombinálva is használhatja. Az adattípusok által támasztott követelményeket kötelező betartani, ezek jelentik az adatérvényesség legalapvetőbb szintjét.
Az adattípusokkal, mezőméretekkel és beviteli maszkokkal kapcsolatos további tudnivalók az Adattípusok és mezőtulajdonságok – Bevezetés című témakörben olvashatók.
Az érvényességi szabályok típusai
Az érvényességi szabályoknak két alaptípusa hozható létre:
-
Mezőérvényesítési szabályok Mezőérvényesítési szabályokat használva ellenőrizheti a mezőbe beírt értéket a továbblépéskor. Tegyük fel, hogy van egy Dátum mezője, és a >=#01/01/2010# értéket írja a mező Érvényességi szabály tulajdonságába. A szabály ezentúl megköveteli, hogy a felhasználók 2010. január 1-i vagy azt követő dátumokat adjanak meg. Ha 2010-nél korábbi dátumot ad meg, majd másik mezőbe szeretné helyezni a fókuszt, az Access megakadályozza, hogy a probléma kijavítása nélkül kilépjen az aktuális mezőből.
-
Rekordérvényesítési szabályok: A rekordérvényesítési szabállyal szabályozhatja, hogy mikor mentheti a rekordot (a tábla egy sorát). A mezőérvényesítési szabálytól eltérően a rekordérvényesítési szabály ugyanannak a táblának más mezőire hivatkozik. Rekordérvényesítési szabályt akkor kell létrehozni, ha egy mező értékét egy másik mezőben lévő értékekkel kell összevetnie. Tételezzük fel például, hogy cégének 30 napon belül kell kiszállítania a termékeket, és ha ez nem történik meg, akkor a beszerzési ár egy részét vissza kell térítenie a vevőnek. Ekkor meghatározhat egy rekordérvényesítési szabályt: [IgényeltDátum]<=[RendelésiDátum]+30, amely gondoskodik arról, hogy senki ne írhasson be túl késői szállítási dátumot (amely az IgényeltDátum mezőben szereplő érték).
Ha az érvényességi szabályok szintaxisa rejtélyesnek tűnik, akkor olvassa el a Mi írható egy érvényességi szabályba? című szakaszt, amely magyarázatot ad a szintaxisra, és néhány példát mutat az érvényességi szabályokra.
Hol használhatók érvényességi szabályok?
Az érvényességi szabályokkal a táblamezők és az űrlapokon lévő vezérlőelemek adatait ellenőrizheti. Ha táblákra vonatkozó szabályokat határoz meg, akkor a szabályok az adatok importálására vonatkoznak. Ha érvényesítési szabályokat szeretne hozzáadni egy táblához, nyissa meg a táblát, és használja a menüszalag Táblamezők lapján található parancsokat. Ha űrlapra vonatkozó érvényességi szabályt szeretne felvenni, akkor nyissa meg az űrlapot Elrendezési nézetben, és vegye fel a szabályokat az egyes vezérlőelemek tulajdonságai között.
Az Érvényességi szabály hozzáadása táblához című szakasz elmagyarázza, hogyan vehet fel táblamezőkre vonatkozó érvényességi szabályokat. A témakör későbbi, Adatérvényesítési szabály hozzáadása űrlapon elhelyezett vezérlőelemhez szakaszából pedig megtudhatja, hogy miként vehet fel szabályokat az egyes vezérlőelemek tulajdonságai közé.
Mi írható egy érvényességi szabályba?
Az érvényességi szabály kifejezéseket tartalmazhat – olyan függvényeket, amelyek egyetlen értéket adnak vissza. A kifejezésekkel számítások hajthatók végre, karakterek kezelhetők, és adatok vizsgálhatók. Az érvényességi szabályok kifejezései adatokat vizsgálnak. Egy kifejezéssel egyenként ellenőrizhetők egyebek mellett egy adatsor értékei, például "Tokió" Or "Moszkva" Or "Párizs" Or "Helsinki". A kifejezésekkel matematikai műveletek és végezhetők. A <100 kifejezés például előírja a felhasználóknak, hogy 100-nál kisebb értékeket adjanak meg. A ([RendelésiDátum] - [SzállításiDátum]) kifejezéssel kiszámítható, hogy hány nap telik el a megrendelés leadása és a kiszállítás időpontja között.
A kifejezések használatáról a Kifejezés készítése című cikk nyújt részletes tájékoztatást.
Érvényességi szabály hozzáadása táblához
Mezőérvényesítési és rekordérvényesítési szabályt is hozzáadhat. A mezőérvényesítési szabály egy mezőbe beírt adatokat ellenőrzi akkor, amikor a fókusz elhagyja a mezőt. A rekordérvényesítési szabály egy vagy több mezőbe beírt adatokat ellenőriz akkor, amikor a fókusz elhagyja a rekordot. A rekordérvényesítési szabályok általában két vagy több mező értékeit hasonlítják össze.
Megjegyzések: A következő mezőtípusokban nem alkalmazhatók érvényességi szabályok:
-
Számláló
-
OLE-objektum
-
Melléklet
-
Replikációs azonosító
Mezőérvényesítési szabály létrehozása
-
Jelölje ki azt a mezőt, amelynek ellenőrizni szeretné az érvényességét.
-
A Táblamezők lap Mezőérvényesítés csoportjában kattintson az Érvényesítés, majd a Mezőérvényesítési szabály elemre.
-
Hozza létre a szabályt a Kifejezésszerkesztő segítségével. A Kifejezésszerkesztő használatával kapcsolatos további tudnivalók A Kifejezésszerkesztő használata című témakörben olvashatók.
Érvénytelen mezőadatok bevitele esetén megjelenítendő üzenet létrehozása
-
Jelölje ki azt a mezőt, amelynél üzenetet szeretne megjeleníteni, ha érvénytelen adatokat visznek be. A mezőnek már rendelkeznie kell érvényességi szabállyal.
-
A Táblamezők lap Mezőérvényesítés csoportjában kattintson az Érvényesítés, majd a Mezőérvényesítési üzenet elemre.
-
Adjon meg egy alkalmas üzenetet. Ha az érvényességi szabály például >10, akkor az üzenet lehet például a következő: „10-nél kisebb értéket adjon meg.”
Az Érvényességi szabályok – Referencia című szakaszban láthat néhány példát a mezőérvényesítési szabályokra és üzenetekre.
Rekordérvényesítési szabály létrehozása
-
Nyissa meg azt a táblát, amelynek rekordjait érvényesíteni szeretné.
-
A Táblamezők lap Mezőérvényesítés csoportjában kattintson az Érvényesítés, majd az Érvényességi szabály elemre.
-
Hozza létre a szabályt a Kifejezésszerkesztő segítségével. A Kifejezésszerkesztő használatával kapcsolatos további tudnivalók A Kifejezésszerkesztő használata című témakörben olvashatók.
Érvénytelen rekordadatok bevitele esetén megjelenítendő üzenet létrehozása
-
Nyissa meg azt a táblát, amelynél üzenetet szeretne megjeleníteni, ha érvénytelen adatokat visznek be. A táblának már rendelkeznie kell rekordérvényesítési szabállyal.
-
A Táblamezők lap Mezőérvényesítés csoportjában kattintson az Érvényesítés, majd az Érvényesítési üzenet elemre.
-
Adjon meg egy alkalmas üzenetet. Ha például az érvényességi szabály [StartDate]<[EndDate], az üzenet a következő lehet: "A StartDate előzménynek az EndDate előtt kell lennie".
Meglévő adatok vizsgálata új érvényességi szabály alapján
Ha meglévő táblához vesz fel érvényességi szabályt, akkor bizonyára meg szeretné vizsgálni, hogy a meglévő adatok érvényesek-e a szabály alapján.
-
Nyissa meg Tervező nézetben azt a táblát, amelyet vizsgálni szeretne.
A Táblatervező lap Eszközök csoportjában kattintson az Érvényesítési szabályok tesztelése elemre.
-
Kattintson az Igen gombra a figyelmeztető üzenet bezárásához és a vizsgálat indításához.
-
Ha a program a tábla mentését kéri, akkor kattintson az Igen gombra.
-
A vizsgálat során további különféle figyelmeztető üzenetek jelenhetnek meg. Olvassa el az egyes üzenetekhez tartozó útmutatást, majd az Igen és a Nem lehetőség közül választva folytassa vagy állítsa le a vizsgálatot.
Adatérvényesítési szabály hozzáadása űrlapon elhelyezett vezérlőelemhez
Az Érvényességi szabály tulajdonságot és Érvényesítési szöveg tulajdonságot űrlap-vezérlőelemekben is használhatja a vezérlőelemekkel bevitt adatok ellenőrzésére, illetve a felhasználók segítésére, ha az általuk bevitt adatok nem érvényesek.
Tipp: Ha egy táblából automatikusan hoz létre űrlapot a menüszalag Űrlap csoportjának valamelyik parancsával, akkor az űrlap megfelelő vezérlőelemei öröklik a tábla megfelelő mezőihez tartozó érvényességi szabályokat.
Egy vezérlőelemnek a hozzá kötődő táblamező érvényességi szabályától eltérő érvényességi szabálya is lehet. Ez akkor hasznos, ha az űrlapon szigorúbb korlátozásokat szeretne alkalmazni, mint a táblában. A program először az űrlap szabályát alkalmazza, és csak azután a tábla szabályát. Ha a tábla szabálya szigorúbb, mint az űrlapé, akkor a táblamezőre meghatározott szabály előnyt élvez a másik szabállyal szemben. Ha egymást kölcsönösen kizáró szabályokat ad meg, azzal mindennemű adatbevitelt megakadályoz.
Tegyük fel például, hogy egy tábla dátum mezőjére a következő szabályt alkalmazza:
<#2010.01.01#
Utána viszont a következő szabályt alkalmazza a dátum mezőhöz kötött űrlap-vezérlőelemre:
>=#2010.01.01#
A dátum mező mostantól csak a 2010. évnél korábbi értékeket, míg az űrlap vezérlőeleme csak az adott évi vagy későbbi dátumokat fogad el, tehát semmilyen adatot nem lehet megadni.
Vezérlőelemre vonatkozó érvényességi szabály létrehozása
-
Kattintson a jobb gombbal arra az űrlapra, amelyet módosítani szeretné, majd kattintson az Elrendezési nézet parancsra.
-
Kattintson a jobb gombbal arra a vezérlőelemre, amelyet módosítani szeretne, majd a Tulajdonságok menüpontra kattintva nyissa meg a vezérlőelem tulajdonságlapját.
-
Kattintson az Összes fülre, majd írja be az érvényességi szabályt az Érvényességi szabály tulajdonságmezőbe.
Tipp: Indítsa el a Kifejezésszerkesztő eszközt az Összeállítás gombra kattintva.
A Kifejezésszerkesztő használatával kapcsolatos további tudnivalók A Kifejezésszerkesztő használata című témakörben olvashatók.
-
Írjon be egy üzenetet az Érvényesítési szöveg tulajdonságmezőbe.
Érvényességi szabályok – Referencia
Az érvényességi szabályok az Access-kifejezések szintaxisát követik. A kifejezésekről A kifejezések – bevezetés című cikkben talál további tudnivalókat.
Néhány példa az érvényesítési szabályok és az érvényesítési szövegek alkalmazására
Érvényességi szabály |
Érvényesítési szöveg |
---|---|
<>0 |
Nullától különböző értéket adjon meg. |
>=0 |
Az értéknek nullának vagy nullánál nagyobbnak kell lennie. vagy Pozitív számot kell megadnia. |
0 or >100 |
Az értéknek nullának vagy 100-nál nagyobbnak kell lennie. |
BETWEEN 0 AND 1 |
Százalékjeles értéket adjon meg. (Olyan mező esetén használható, amely százalékként tárolja a számértékeket). |
<#2007.01.01# |
2007 előtti dátumot adjon meg. |
>=#2007.01.01# AND <#2008.01.01# |
A dátumnak a 2007. évben kell lennie. |
<Date() |
A születési dátum nem lehet a jövőben. |
StrComp(UCase([Vezetéknév]), [Vezetéknév],0) = 0 |
A Vezetéknév mezőben csak nagybetűs adatok adhatók meg. |
>=Int(Now()) |
A mai napi dátumot adja meg. |
F Or N |
Férfi esetén F-et, Nő esetén N-et adjon meg. |
LIKE "[A-Z]*@[A-Z].com" OR "[A-Z]*@[A-Z].net" OR "[A-Z]*@[A-Z].org" |
Érvényes, .com, .net vagy .org végződésű e-mail címet adjon meg. |
[IgényeltDátum]<=[RendelésiDátum]+30 |
Az igényelt dátum legfeljebb 30 nappal lehet későbbi a rendelési dátumnál. |
[BefejezésiDátum]>=[KezdésiDátum] |
A kezdési dátummal megegyező vagy annál későbbi befejezési dátumot kell megadnia. |
Példák az érvényességi szabályok általános operátorainak szintaxisára
Operátor |
Funkció |
Példa |
---|---|---|
NOT |
Halmazon kívüli értékek vizsgálatára szolgál. Az IS NOT NULL kivételével bármilyen összehasonlító operátor előtt használható. |
NOT > 10 (ugyanaz, mint a <=10) |
IN |
Azt vizsgálja, hogy az érték szerepel-e egy lista meglévő értékei között. Az összehasonlítandó értékeket zárójelek között, vesszővel elválasztva kell megadni. |
IN ("Tokió","Párizs","Moszkva") |
BETWEEN |
Azt vizsgálja, hogy az érték megadott értéktartományba esik-e. Két összehasonlítási értéket kell megadnia – egy alsó és egy felső korlátot – közöttük pedig az AND operátort kell használnia. |
BETWEEN 100 AND 1000 (ugyanaz, mint a >=100 AND <=1000) |
LIKE |
Szöveg és Feljegyezés típusú mezők karakterláncát egyezteti egy karaktermintázattal. |
LIKE "Geo*" |
IS NOT NULL |
Érték megadására kényszeríti a felhasználókat. Ez ugyanaz, mintha a Kötelező mezőtulajdonságot az Igen értékre állítja. Ugyanakkor ha a Kötelező tulajdonságot engedélyezi, és egy felhasználó nem ír be értéket, akkor az Access egy meglehetősen barátságtalan hibaüzenetet jelenít meg. Az adatbázis általában könnyebben használható, ha az IS NOT NULL szabályt használja, és az Érvényesítési szöveg tulajdonságban megad egy felhasználóbarát üzenetet. |
IS NOT NULL |
AND |
Azt fejezi ki, hogy az érvényességi szabály minden részének teljesülnie kell. |
>= #2007.01.01# AND <=#2008.03.06# Megjegyzés: Az AND operátort érvényességi szabályok összevonására is használhatja. Például: NOT "EK" AND LIKE "E*". |
OR |
Azt fejezi ki, hogy az érvényességi szabály valamelyik részének teljesülnie kell, de nem mindegyiknek. |
január OR február |
< |
Kisebb mint. |
|
<= |
Kisebb mint vagy egyenlő. |
|
> |
Nagyobb mint. |
|
>= |
Nagyobb mint vagy egyenlő. |
|
= |
Egyenlő. |
|
<> |
Nem egyenlő. |
Helyettesítő karakterek használata érvényességi szabályokban
Az érvényességi szabályokban használhatók helyettesítő karakterek. Ne feledje, hogy az Access a helyettesítő karakterek két csoportját támogatja: az ANSI-89 és az ANSI-92 jelű szabványt. A két szabvány különböző helyettesítő karaktereket alkalmaz.
Alapértelmezés szerint minden .accdb és .mdb kiterjesztésű fájl az ANSI-89 szabványt alkalmazza.
Ha egy adatbázis ANSI szabványát módosítani szeretné az ANSI-92 szabványra, akkor tegye a következőket:
-
A Fájl lapon kattintson a Beállítások gombra.
-
Kattintson Az Access beállításai párbeszédpanel Objektumtervezők pontjára.
-
A Lekérdezéstervező szakasz SQL Server-kompatibilis szintaxis (ANSI 92) beállítása alatt jelölje be az Ebben az adatbázisban jelölőnégyzetet.
A helyettesítő karakterek használatával és az SQL nyelvre érvényes ANSI szabványokkal kapcsolatos további tudnivalók Az Access által használt helyettesítő karakterek című témakörben olvashatók.