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:
- Mezőérvényesítési szabály A mezőérvényesítési szabállyal meghatározhat egy feltételt, amelyet minden mezőértéknek teljesítenie kell az érvényes mezőkben. 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:
Múltbeli dátumértékek letiltása: >=Date()
Általánosan elfogadott e-mail-formátum: Is Null OR ((Like "*?@?*.? *") AND (Not Like "*[ ,;]*"))
Ötnél kisebb vagy azzal egyenlő szám: <=5
A Pénznem mező értéke nem lehet negatív szám: >=0
Karakterhossz korlátozása karakterláncban: Len([KarakterláncMezőjénekNeve])100<
- Rekordérvényesítési szabály Rekordérvényesítési szabállyal meghatározhat egy feltételt, amelyet minden érvényes rekordnak teljesítenie kell. 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 befejezési dátum nem korábbi a kezdési dátumnál: [Befejezési dátum]>=[Kezdési dátum]
Az igényelt dátum legfeljebb 30 nappal lehet későbbi a rendelési dátumnál: [IgényeltDátum]<=[RendelésiDátum]+30
- Űrlap érvényesítése Az űrlapon lévő vezérlőelemek Érvényességi szabály tulajdonságával meghatározhat egy feltételt, amelyet az adott vezérlőelemmel megadott értékeknek teljesíteniük 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
- Érvényességi szabály hozzáadása táblához
- Meglévő adatok vizsgálata új érvényességi szabály alapján
- Adatérvényesítési szabály hozzáadása űrlapon elhelyezett vezérlőelemhez
- Érvényességi szabályok – Referencia
Á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 és <1000 szabályt> írja be az Érvényességi szabály tulajdonságba, a felhasználók 100 és 1000 közötti értékeket fognak megadni. Egy [ BefejezésiDátum]>=[KezdésiDátum] típusú szabály megköveteli a felhasználóktól, hogy a kezdési dátummal megegyező vagy későbbi befejezési dátumot adjanak meg. 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 értékek 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ály használatával ellenőrizheti a mezőbe beírt értéket a továbblépéskor. Tegyük fel például, hogy van egy Dátum mezője, és a =#01/01/2010# értéket írja> be 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 rekordokat (a táblázat 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. Meghatározhat egy rekordérvényesítési szabályt (például [IgényeltDátum]<=[RendelésiDátum]+30 ), amely gondoskodik arról, hogy senki ne írjon 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 táblára vonatkozó érvényességi szabályt szeretne felvenni, nyissa meg a táblát, és használja a menüszalag Táblamezők lapjának parancsait. 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 arra kényszeríti a felhasználókat, 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és
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.
- Kattintson a Táblamezők lap Mező érvényesítése csoportjában az Érvényesítés gombra, majd kattintson a Mezőérvényesítési szabály parancsra.
- 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.
- Kattintson a Táblamezők lap Mező érvényesítése csoportjában az Érvényesítés gombra, majd kattintson a Mezőérvényesítési üzenet parancsra.
- Adjon meg egy alkalmas üzenetet. Ha például az érvényességi szabály 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é.
- Kattintson a Táblamezők lap Mező érvényesítése csoportjában az Érvényesítés, majd az Érvényesítési szabály pontra.
- 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.
- Kattintson a Táblamezők lap Mező érvényesítése csoportjában az Érvényesítés gombra, majd kattintson az Érvényesítési üzenet parancsra.
- Adjon meg egy alkalmas üzenetet. Ha például az érvényességi szabály a [KezdésiDátum]<[BefejezésiDátum], akkor az üzenet lehet például "A KezdőDátumnak meg kell előznie a Befejezési dátum mezőt".
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.
Kattintson a Táblatervező lap Eszközök csoportjában az Érvényesítési szabályok ellenőrzése gombra. - 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:
<#01/01/2010#
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 vagy >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). |
| <#01/01/2007# | 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ési dá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ó. | NEM > 10 (ugyanaz, mint <=10). |
| ITT | 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. | 100 ÉS 1000 KÖZÖTT (UGYANAZ, MINT> =100 ÉS <=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áról és az SQL nyelvre érvényes ANSI-szabványokról az Access által használt helyettesítő karakterek című cikkében talál további információt.