Sunteți pe pagina 1din 24

Validarea datelor

1 Validarea datelor..........................................................................................................2
1.1 Definirea unei măşti de introducere a datelor......................................................3
1.1.1 Definirea unei măşti cu o aplicaţie vrăjitor..................................................4
1.1.2 Definirea unei măşti pentru date calendaristice şi timp...............................9
1.2 Definirea unei reguli de validare a câmpurilor....................................................9
1.2.1 Validarea câmpurilor numerice.................................................................12
1.2.2 Validarea datelor calendaristice.................................................................12
1.2.3 Validarea câmpurilor tip text.....................................................................13
1.2.4 Adăugarea timpului la care o înregistrare a fost creată.............................16
1.3 Definirea unei reguli de validare a unei înregistrări..........................................16
1.4 Formatul de afişarea datelor..............................................................................18
1.4.1 Afişarea datelor calendaristice...................................................................18
1.4.2 Afişarea câmpurilor numerice...................................................................21
1.5 Probleme propuse..............................................................................................23
1.6 Intrebări de control............................................................................................24

1
1 Validarea datelor
La crearea unei tabele putem prescrie proprietăţi ale câmpurilor care să valideze datele
introduse. In partea de jos a ferestrei Table în care definim tabela de date se afişază caseta
Field Properties din Figura 1. Secţiunea General afişază proprietăţile generale,
dimensiunea câmpului, etc. Secţiunea Lookup specifică opţiunile de afişare a datelor,
într-o casetă text sau în casete tip List Box sau Combo Box, după cum am arătat într-o
lucrare anterioară.
Secţiunea General conţine proprietăţile câmpului cu valorile lor prescrise iniţial. De
exemplu, în cazul unui câmp de tip text, aceste proprietăţi sunt cele arătate în Figura 1.

Figura 1. Proprietăţile câmpurilor tabelelor.


Semnificaţia proprietăţilor este următoarea:
 Field Size specifică lungimea maximă a câmpului,
 Format specifică modul de afişare a datelor,
 Input Mask permite să specificăm o mască pentru introducerea datelor în câmp,
 Caption specifică numele câmpului ce va apare în formulare şi rapoarte,
 Default Value specifică valoarea implicită a câmpului,
 Validation Rule permite să specificăm o regulă de validare a datelor din câmp,
 Validation Text permite să specificăm un mesaj ce va fi afişat când regula
Validation Rule nu este îndeplinită,
 dacă proprietatea Required este pusă la valoarea Yes, câmpul nu poate fi lăsat gol,
 dacă proprietatea Allow Zero Length este pusă la valoarea Yes, în câmp putem avea
un şir de lungime nulă.
Aceste proprietăţi sunt în general aceleaşi pentru toate tipurile de câmpuri.
O primă validare este dată de tipul câmpului. Ea este realizată automat de Access.
A doua validare este dată de dimensiunea câmpului (proprietatea Field Size). Ea
specifică cea mai mare valoare ce poate fi introdusă în câmp.
Pentru alte validări definim măşti pentru introducerea datelor şi reguli de validare pentru
câmpuri şi pentru înregistrare.

2
1.1 Definirea unei măşti de introducere a datelor
O metodă de validare a câmpurilor de tip Text sau Date / Time este de a defini o mască
pentru introducerea datelor (proprietatea Input Mask). Masca este utilă de exemplu,
când definim date calendaristice, numere de telefon, etc.
O mască are trei secţiuni. Prima secţiune conţine caractere ce definesc locurile
informaţiilor ce vor fi introduse, precum şi alte caractere ce se vor afişa în mască
(literale). Caracterele ce definesc o mască sunt interpretate ca în Tabelul 1. Pentru a
defini un caracter ce se afişază în mască (literal), se introduce acel caracter în mască, cu
excepţia caracterelor din Tabelul 1, care, pentru a fi definite ca literale, vor fi precedate
de \.

Caracter Semnificaţie
0 Cifră obligatorie (0 – 9); nu se admit + şi -
9 Cifră opţională sau spaţiu ; nu se admit + şi -
# Cifră opţională sau spaţiu; se permit semnele + şi -
L Literă obligatorie (A – Z)
? Literă opţională
A Literă sau cifră obligatorie
a Literă sau cifră opţională
& Orice caracter sau spaţiu obligatoriu
C Orice caracter sau spaţiu opţional
< Caracterele următoare sunt convertite în litere mici
> Caracterele următoare sunt convertite în litere mari
! Caracterele se introduc de la stânga la dreapta
\ Caracterul ce urmează este afişat ca literal
.,:;-/ Punct zecimal sau separator pentru dată / timp
Tabelul 1. Caractere ce definesc o mască.
A doua secţiune conţine:
 cifra 1 sau este vidă, când vrem să se memoreze doar caracterele introduse,
 cifra 0 când vrem să se memoreze atât caracterele introduse cât şi masca.
A treia secţiune conţine caracterul ce va fi folosit pentru a afişa locurile caracterelor ce
vor fi introduse. Valoarea implicită a acestui caracter este linia de subliniere, _.
Secţiunile sunt separate de caracterul ;. Ultimele două secţiuni sunt opţionale.
Masca poate fi generată cu aplicaţia vrăjitor Input Mask, lansată în felul următor :
1. clic pe câmpul Input Mask ; se afişază butonul , vezi Figura 2,
2. cu un clic pe butonul din dreapta câmpului Input Mask sau,
3. pe butonul al barei de instrumente.

Figura 2. Lansarea aplicaţiei Input Mask.


Exemple de măşti sunt date în Tabelul 2.

3
Mască Exemplu
-31
#999
3100
>L???L00?00 ACVBM23Z45
>L0L 0L0 X2X 2Z5
492-357
000-999
582-
Vasile
>L<??????????
George
LL-00-LLL DJ-01-ABX
ISBN 2-34289-308-7
ISBN 0-&&&&&&&&&-0
ISBN 0-12-592734-5
Tabelul 2. Exemple de măşti.

1.1.1 Definirea unei măşti cu o aplicaţie vrăjitor


Access are o aplicaţie vrăjitor, Input Mask Wizard ce permite să creăm măşti de
introducere a datelor după regulile de mai sus. Vrăjitorul are şi măşti predefinite ce pot fi
modificate.
Vom exemplifica utilizarea vrăjitorului pentru a crea o mască pentru numere de telefon.
Fie tabela din Figura 3.

Figura 3. Tabelă pentru care se va proiecta o mască.


Vom proiecta o mască pentru câmpul NumarTelefon. Numerele de telefon conţin un
prefix de patru cifre şi apoi şase cifre. Vrem ca masca să fie următoarea
(####) ###-###
Pentru claritate, prefixul este inclus între paranteze, iar numărul este împărţit în două
grupe de câte trei cifre separate de -.
Procedura este următoarea:
1. clic pe butonul al câmpului Input Mask, vezi Figura 2, sau pe butonul al barei
de instrumente, şi se afişază caseta Input Mask Wizard din Figura 4 cu măştile
predefinite pentru diferite tipuri de câmpuri, numere de telefon, Text, Date / Time,
etc.,

4
Figura 4. Măşti predefinite.
2. se selectează masca dorită, sau o mască apropiată, ce se modifică în caseta Customize
Input Mask din Figura 5, afişată cu clic pe butonul Edit List. In cazul nostru vom
modifica masca Phone Number ca în Figura 5. Masca va conţine cifre 0 în locurile în
care trebuie să inserăm cifrele numărului de telefon. Se introduc parantezele ( şi ), ce
separă prefixul de număr şi caracterul ! ce arată că numerele se introduce de la stânga
la dreapta; caracterul ! poate apare în mască în orice poziţie; după modificarea măştii
clic pe butonul Close,

Figura 5. Caseta Customize Input Mask în care s-a creat masca dorită.
3. clic pe butonul Next, care afişază caseta din Figura 6 cu masca definită la pasul
anterior; se poate alege tipul caracterului ce arată locul de inserare al caracterelor din
lista Placeholder Character; din această casetă se completează a treia secţiune a

5
măştii cu caracterul utilizat pentru a afişa locurile caracterelor ce vor fi introduse; se
poate testa dacă mască este corectă prin introducerea de date în caseta Try It,

Figura 6. Modificarea măştii selectate.


4. clic pe butonul Next care afişază caseta din Figura 7, unde se alege modul de
memorare a datelor, cu simbolurile din mască (With the symbols in the mask), sau
fără aceste simboluri (Without the symbols in the mask); din această casetă se
completează a doua zonă a măştii,

6
Figura 7. Alegerea modului de memorare a datelor.
5. clic pe butonul Next care duce la inserarea măştii generate în caseta proprietăţii Input
Mask.
A doua şi a treia zonă a măştii se aleg din caseta Placeholder Character din Figura 6 şi
din butoanele din Figura 7.
Fie tabela de mai sus, prezentată din nou în Figura 8, cu masca pentru câmpul
NumarTelefon proiectată mai sus. Masca generată de vrăjitorul Input Mask este cea din
Figura 8, câmpul Input Mask. Caracterele (, ) şi – sunt precedate de \. De ce?

7
Figura 8. Proiectarea măştii unei tabele.
Masca apare la introducerea datelor ca în Figura 9.

Figura 9. Introducerea de date în tabela definită în Figura 8.


Este posibil să generăm o mască fără aplicaţia Input Mask, după aceleaşi reguli.
Exemplu. Vrem să definim o mască pentru un număr de telefon. Masca va conţine, ca
mai sus, codul operatorului de patru cifre în paranteze, un spaţiu şi apoi cele şase cifre, în
grupe de câte trei, separate de semnul -. Un număr de telefon scris sub această formă este
(0351) 625-739
Masca va fi următoarea
!\(0000”) “000\-000;;#
Prima paranteză este introdusă ca \(. De ce? A doua paranteză şi spaţiul ce o urmează
sunt introduce ca “) “. De ce? Caracterul – este introdus ca \-. Masca mai putea fi definită
ca
!”(“0000”) “000”-“000;;#
A doua secţiune este vidă, deci se vor memora doar caracterele introduse. A treia secţiune
conţine caracterul # ce va indica locul cifrelor de introdus. Masca va fi afişată la
introducerea datelor ca
(####) ###-###
Exemple de măşti pentru numere de telefon sunt arătate în Tabelul 3.

8
Mască Exemplu
(0000) 000-000 (0251) 423-975
(0351) 323-756
(9999) 999-999!
() 323-744
(000) AAA-AAA (344) 952-TEL
Tabelul 3. Exemple de măşti de numere de telefon.

1.1.2 Definirea unei măşti pentru date calendaristice şi timp


Vrem să definim o mască pentru timp de forma (Long Time)
hh:mm:ss AM / PM
unde hh, mm, ss reprezintă ora, minutul, secunda. Caracterele PM sau AM trebuie să fie
afişate cu litere mari. Masca va fi
99:00:00 >LL;0;_
Primele două caractere din mască sunt 99 pentru ca ora să poată fi introdusă doar cu o
cifră. Orele, minutele şi secundele sunt separate de caracterul :. Pentru ca PM sau AM să
fie afişate cu litere mari, câmpul LL este precedat în mască de caracterul > (literele sunt
convertite în litere mari). Zona a doua conţine caracterul 0, deci se va memora şi masca.
Zona a treia conţine caracterul _ ce va fi folosit pentru afişarea locurilor unde se
introduce caractere. Masca va fi afişată ca
__:__:__ __
Datele calendaristice se introduc de obicei sub forma mm/dd/yyyy unde mm este luna,
cuprinsă între 1 şi 12, dd este ziua cuprinsă între 1 şi 31, iar yyyy este anul format din
patru cifre. In acest caz masca este (Short Date)
99/99/0000
O altă posibilitate este de a introduce data sub forma dd-mmm-yy, unde dd este ziua,
mmm este luna este formată din primele trei litere, prima literă mare, iar yy este anul
format din ultimle două cifre. In acest caz masca este (Medium Date)
00\->L<LL\-00
In această mască caracterele – sunt introduse ca \-, iar cele trei litere ce constituie numele
lunii sunt introduse ca >L<LL, astfel că prima literă este convertită în literă mare, iar
celelalte două în litere mici.
Aplicaţia Access are măştile predefinite pentru dată şi timp din Tabelul 4.

Denumire Mască Exemplu


Medium Date 00->L<LL-00 ;0 ;_ 18-Oct-11
Short Date 99/99/0000 ;0 ;_ 9/18/2011
Long Time 99 :00 :00\ >LL ;0 ;_ 2 :25 :05 PM
Medium Time 99 :00\ >LL ;0 ;_ 00 :16 PM
Short Time 00 :00 ;0 ;_ 14 :28
Tabelul 4. Măşti predefinite pentru dată şi timp.

1.2 Definirea unei reguli de validare a câmpurilor


O regulă de validare este o expresie booleană ce defineste informaţia ce poate fi introdusă
în câmp. După introducerea informaţiei în câmp se evaluează expresia booleeană ce
reprezintă regula de validare şi, dacă valoarea ei este falsă, se afişază un mesaj de eroare.

9
Regula de validare se poate introduce direct în caseta proprietăţii Validation Rule sau se
defineşte cu aplicaţia Expression Builder. Caseta aplicaţiei Expression Builder se afişază
la selectarea proprietăţii Validation Rule a câmpului, cu un clic pe butonul , vezi
Figura 10.

Figura 10. Lansarea aplicaţiei Expression Builder.


Casetă aplicaţiei Expression Builder este arătată în Figura 11.

Figura 11. Caseta de dialog Expression Builder.


Caseta Expression Builder conţine în partea superioară o zonă în care se va construi
expresia. Urmează apoi butoanele corespunzătoare operatorilor, +, -, etc. La un clic pe un
buton, caracterul corespunzător este inserat în caseta expresiei în punctul în care se află
cursorul. In partea de jos există trei zone ce pot afişa funcţiile standard, constantele şi
operatorii ce se pot utiliza în expresii, vezi Tabelul 5 pentru câteva exemple.

10
Tabelul 5. Operatori, constante şi funcţii standard pentru expresii.
In zona superioară putem insera direct caractere în punctul în care se află cursorul.
Regulile de validare sunt expresii booleene compuse din expresii relaţionale, constante
booleene, False şi True, identificatori (nume de coloane) şi operatorii booleeni And, Or,
Not, Xor, etc.
Expresiile relaţionale sunt compuse din două expresii aritmetice separate de un operator
relaţional, <, <=, >, >=, <>, = şi Between … And.

11
Expresiile aritmetice pot conţine constante numerice şi funcţii standard, vezi Tabelul
5. Operatorii aritmetici pentru numere reale sunt +, -, * şi /, iar pentru numere întregi +, -,
*, \ şi Mod. Există de asemenea operatorul ^ de ridicare la putere.
In scrierea expresiilor se pot utiliza paranteze rotunde. Operatorii aritmetici au priorităţile
cunoscute: ridicarea la putere, apoi înmulţirea şi împărţirea, apoi adunarea şi scăderea.
Sirurile de caractere se scriu între ghilimele, “ şi “. Pentru testarea şirurilor de caractere
există constanta predefinită Null ce semnifică un şir vid.
Constantele tip Date / Time se scriu între #.
Expresiile de validare a câmpurilor nu pot conţine nume de câmpuri. De ce ?
La validarea şirurilor de caractere trebuie să se ţină cont dacă se memorează doar
caracterele introduse sau şi cele din mască.
In cele ce urmează sunt prezentate exemple de expresii utilizate la validarea diverselor
tipuri de câmpuri.

1.2.1 Validarea câmpurilor numerice


La validarea câmpurilor numerice se utilizează de regulă o expresie relaţională sau
expresii relaţionale conectate de operatorii And, Or, Not şi Between … And …. Câteva
exemple de asemenea expresii sunt arătate în tabelul Tabelul 6.

Expresie Semnificaţie
> 438 Test valoare câmp > 438
< 227.35 Test valoare câmp < 227.35
> 0 And < 420 Test valoare câmp > 0 şi < 420
<> 0 Test valoare diferită de 0
0 Or > 200 Test valoare 0 sau > 200
>= 0 And <= 240
Test valoare câmp >= 0 şi <= 420
Between 0 And 240
Tabelul 6. Exemple de validări de câmpuri numerice.

1.2.2 Validarea datelor calendaristice


Datele calendaristice au forma LL/ZZ/AAAA, unde LL este luna între 1 şi 12, ZZ este
ziua între 1 şi 31, iar AAAA este anul. Ele se scriu în expresii sub forma
#LL/ZZ/AAAA#
Timpul are forma hh:mm:ss PM, unde hh este ora, mm sunt minutele din oră, între 0 şi
59, ss sunt secundele din minut, între 0 şi 59. AM sau PM indică ora înainte sau după
amiază.
Pentru testarea datelor calendaristice se utilizează funcţiile :
 Date(), ce furnizează data curentă,
 Time(), ce furnizează timpul current,
 Now(), ce furnizează data şi timpul curent,
 Year(dată), ce furnizează anul din dată,
 Month(dată), ce furnizează luna din dată,
 Day(dată), ce furnizează ziua din dată,
 Hour(dată), ce furnizează ora din dată,
 Minute(dată), ce furnizează minutul din dată,
 Second(dată), ce furnizează secunda din dată.

12
Expresiile de validare conţin funcţiile de mai sus şi operatorii relaţionali. Tabelul 7
prezintă exemple de expresii de validare a câmpurilor de tip Date/Time ce conţin date
calendaristice.

Expresie Semnificaţie
Date() Data curentă
Test pentru data anterioară zilei de
<Date()-1
ieri
Time() Timpul curent
Now() Data şi timpul curent
Year(dată) Anul din dată
Month(dată) Luna din dată
Between #2/27/2004# And #10/14/2009# Test pentru data cuprinsă între
Between ‘2/27/2004’ And ‘10/14/2009’ Feb/27/2004 şi Oct/14/2009
>= #2/27/2004# And <= #10/14/2009#
Test pentru data anterioară
< #3/19/2005#
Mar/19/2005
Tabelul 7. Exemple de validări de date calendaristice.

1.2.3 Validarea câmpurilor tip text


In expresiile de validare a câmpurilor tip text intervin şiruri de caractere. Sirurile de
caractere se scriu în expresii între ghilimele, “” sau între apostrofuri, ‘’. De exemplu şirul
abc se scrie “abc” sau ‘abc’. Literele mici nu sunt deosebite de cele mari.
Descrierea şirurilor de caractere se face cu ajutorul expresiilor regulate ce definesc
şabloane de şiruri de caractere. In descrierea expresiilor regulate, caracterele din Tabelul
8 au semnificaţii speciale.

Caracter Semnificaţie
* zero, unu sau mai multe caractere
? un caracter
[…] un caracter din şirul intre paranteze
- specifică un domeniu de caractere
Tabelul 8. Caractere pentru descrierea expresiilor regulate.
Sirul de caractere între [ şi ] poate fi specificat prin domenii de caractere de forma c1-c2,
unde c1 şi c2 pot fi litere sau cifre. Vezi Tabelul 9.

Sir Semnificaţie
[A-Z] orice literă din alfabet
[0-9] orice cifră
[a-n3-7] orice literă de la a la n sau orice cifră de la 3 la 7
[b-dm-s] orice literă de la b la d sau de la m la s
[a-dms] orice literă de la a la d sau m sau s
[2-7ac] orice cifră de la 2 la 7 sau a sau c
Tabelul 9. Exemple de expresii regulate ce definesc domenii de caractere.

13
Orice alt caracter într-o expresie regulată corespunde lui însuşi într-un şir.
Tabelul 10 conţine exemple de expresii regulate.

Expresie regulată Şirul corespunzător


A* orice şir ce începe cu A
xyc* orice şir ce începe cu xyc
*ab* orice şir ce conţine ab
*b orice şir ce se termină cu b
A??? orice şir de patru caractere ce începe cu A
?a orice şi de două caractere ce se termină cu a
[a-c]* orice şir ce începe cu a, b, c
Tabelul 10. Exemple de expresii regulate.
Pentru testarea şirurilor de caractere se utilizează operatorul Like şi o expresie regulată
sub forma
Like “expresie regulata”
sau
Not Like “expresie regulata”
Exemplu. Pentru a permite ca un şir de caractere ce reprezintă numere de telefon să
înceapă doar cu 0251 sau 0351 vom utiliza expresia
Like “0251*” Or Like “0351*”
Exemplu. Pentru a permite un şir de patru caractere dintre care primul este A vom utiliza
expresia
Like "A???"
Exemple. Pentru ca un şir de caractere să înceapă cu literele A, B, C vom utiliza expresia
Like “[A-C]*”
Pentru ca un şir de caractere să nu înceapă cu literele A, B, C vom utiliza expresia
Not Like “[A-C]*”
In unele cazuri trebuie să testăm dacă un câmp tip text conţine un şir de lungime zero
(conţine valoarea Null). Acest lucru se face cu expresiile

Expresie Semnificaţie
Is Null Test câmpul este vid
Is Not Null Test câmpul este nevid
Tabelul 11. Testarea unui câmp vid.
Menţionăm că există operatorul & pentru concatenarea şirurilor.
Vom exemplifica definirea regulilor de validare pentru tabela FACTURI din Figura 12.
Regulile de validare sunt următoarele:
1. codul facturii este un număr mai mare ca 1000,
2. valoarea facturii este un număr mai mare ca zero,
3. data emiterii facturii este anterioară datei curente.

14
Figura 12. Tabela FACTURI.
Regulile de validare pentru cele trei câmpuri sunt cele din Tabelul 12. In rubrica
Validation Text se poate introduce mesajul dorit, vezi cazul câmpului VALOARE.

a) validarea câmpului COD_FACTURA

b) validarea câmpului VALOARE

15
c) validarea câmpului DATA
Tabelul 12. Regulile de validare pentru tabela FACTURI din Figura 12.
Pentru coloana DATA s-a definit o mască de forma LL/ZZ/AAAA. Caracterele 99 din
mască permit să introducem luna şi ziua cu o singură cifră.
In cazul introducerii de date eronate se afişază mesajele din Tabelul 13. Mesajul de
eroare afişat este cel din rubrica Validation Text, dacă în această rubrica s-a introdus un
mesaj, în caz contrar se afişază un mesaj standard

One or more values are prohibited by the validation rule ‘xxxx’ set for
‘numetabela.numecâmp’. Enter a value that the expression for this field can accept.

Vezi Tabelul 13 pentru aceste cazuri.

16
Tabelul 13. Mesaje de eroare la validarea datelor introduce.

1.2.4 Adăugarea timpului la care o înregistrare a fost creată


Există cazuri când dorim să adăugăm la fiecare linie a unei tabele momentul de timp când
a fost creată. Pentru aceasta procedăm astfel:
1. definim un câmp de tipul Date / Time,
2. proprietatea Default Value a câmpului se pune la valoarea Now().

1.3 Definirea unei reguli de validare a unei înregistrări


O regulă de validare a unei înregistrări se aplică după completarea tuturor câmpurilor şi
verifică relaţiile între câmpuri. Expresiile de validare pot conţine şi nume de câmpuri,
pe lângă constante şi funcţii standard din vezi Tabelul 5. Inregistrarea este scrisă în tabelă
doar dacă regula de validare este satisfăcută.
Reamintim că, în cazul regulilor de validare a câmpurilor, expresiile nu pot conţine nume
de câmpuri. De ce ?
Pentru exemplificare fie tabela COMENZI a cărei proiectare este cea din Figura 13.

Figura 13. Proiectarea tabelei VALIDARE.


Câmpul Data Comanda este data primirii comenzii şi are ca regulă de validare o dată mai
mică decât data curentă (vezi Tabelul 12 pentru un exemplu).
Câmpul Data Livrare este data livrării comenzii. Presupunem că această dată trebuie să
fie mai mică decât 30 zile de la data comenzii.Inregistrarea va avea ca regulă de validare
Data Livrare < Data Comanda + 30
Pentru a introduce această regulă procedăm astfel:
1. se afişază caseta de proprietăţi a tabelei, Table Properties din Figura 14 cu clic pe
butonul Properties, , al barei de instrumente sau clic pe opţiunea Properties a
meniului contextual al tabelei,

17
Figura 14. Caseta Table Properties.
2. clic pe proprietatea Validation Rule. Se introduce regula de validare în caseta
text direct sau cu aplicaţie Expression Builder din Figura 15.
Aplicaţia Expression Buider scrie numele de câmpuri între paranteze drepte deoarece
acestea pot conţine şi spaţii.
Menţionăm că în caseta Expression Builder apar şi câmpurile tabelei doar la
validarea înregistrărilor.

Figura 15. Caseta Expression Builder.

1.4 Formatul de afişarea datelor


Pentru a defini formatul de afişare a datelor (proprietatea Format), se defineşte o mască
similar celeia de la introducerea datelor.

18
1.4.1 Afişarea datelor calendaristice
Aplicaţia Access are următoarele formate predefinite pentru afişarea câmpurilor de tipul
Date / Time, arătate în Tabelul 14.

Denumire Exemplu
General 6/23/2008 6:23:47 PM
Long Date Saturday, December 24, 2011
Medium Date 23-Jun-08
Short Date 6/23/2008
Long Time 07:23:46 PM
Medium Time 01:23 PM
Short Time 18:25
Tabelul 14. Formate predefinite de afişare a datelor calendaristice.
Alegerea unui format predefinit se face cu clic în lista proprietăţii Format, ca în Figura
16.

Figura 16. Alegerea formatului de afişare a datelor calendaristice.


Menţionăm că masca de introducere a datelor (Input Mask), poate fi diferită de formatul
de afişare ales (Format). Aplicaţia converteşte data în formatul de afişare ales.
Putem defini propriul format de afişare a datelor calendaristice. Pentru aceasta utilizăm
simbolurile din Tabelul 15.

Simbol Descriere
: Separator de timp
/ Separator de dată
d Ziua din lună cu una sau două cifre
dd Ziua din lună cu două cifre
ddd Primele trei litere din numele zilei
dddd Numele întreg al zilei
w Ziua din săptămână
ww Săptămâna din an
m Luna din an cu una sau două cifre
mm Luna din an cu două cifre
mmm Primele trei litere din numele lunii
mmmm Numele întreg al lunii
q Data afişată ca trimestru în an
y Numărul zilei în an

19
yy Ultimele două cifre din an
yyyy Anul întreg
h Ora cu una sau două cifre
hh Ora cu două cifre
n Minutul cu una sau două cifre
nn Minutul cu două cifre
s Secunda cu una sau două cifre
ss Secunda cu două cifre
AM /PM Ceas de 12 ore cu AM, PM
Tabelul 15. Simboluri utilizate pentru a defini formatul datelor calendaristice.
Se pot include separatori în aceste formate. Separatorii se introduce între ghilimele.
Exemple de măşti de afişare a datelor sunt arătate în Tabelul 16.

Format Afişare
ddd”,” mmm d”,”yyyy Sat, Dec 24, 2011
mmmm dd”,” yyyy December 24, 2011
“Saptamana nr ” ww Saptamana nr 50
“Astazi este “dddd Astazi este Saturday
Tabelul 16. Exemple de măşti de afişare a datelor calendaristice.
Vom exemplifica formatele predefinite de afişare a datelor pe exemplul de mai jos. Fie
tabela TEST TIME DATE proiectată ca în Figura 17.

Figura 17. Proiectarea tabelei TEST TIME DATE.


Măştile de introducere a datelor sunt
 pentru câmpul General Date 99/99/0000\ 99:00:00\ >LL;0;_
 pentru câmpul Long Date 99/99/0000;0;_
 pentru celelalte câmpuri cele din Tabelul 4.
Datele sunt afişate ca în Figura 18.

Figura 18. Afişarea datelor tabelei TEST TIME DATE.

20
Vom exemplifica formate de afişare a datelor calendaristice create cu simbolurile din
Tabelul 15. Tabela de date AFISARE DATE are proiectarea din Figura 19.

Figura 19. Proiectarea tabelei AFISARE DATE.


Masca de introducere a datelor este
99/99/0000;0;_
Formatul de afişare (proprietatea Format) este cel din Tabelul 17.
Câmp Format
DATE1 Short Date
DATE2 Long Date
DATE3 ww
DATE4 dddd
DATE5 q
Tabelul 17. Formate de afişare a datelor.
In toate câmpurile s-a introdus aceeaşi dată. Modul de afişare este cel din Figura 20.

Figura 20. Tabela AFISARE DATE.


In cazul câmpurilor DATE3, DATE4, DATE5 am completat proprietatea Caption a
câmpului la valorile Saptamana, Ziua, Trimestrul.

1.4.2 Afişarea câmpurilor numerice


Aplicaţia Access are formatele predefinite pentru afişarea câmpurilor din Figura 21. Ele
au fost prezentate intr-o lucrare anterioară.

21
Figura 21. Alegerea formatului de afişare a numerelor.
Putem defini propriul nostru format pentru afişarea câmpurilor numerice. Pentru aceasta
utilizăm simbolurile din Tabelul 18.

Simbol Descriere
. Punct zecimal
, Separator de mii
0 Afişază o cifră sau 0
# Afişază o cifră sau nimic
$ Afişază $
% Afişază valoarea înmulţită cu 100 şi %
E-, e- Afişază numărul cu exponent. Semnul
exponentului se afişază doar dacă este -
E+, e+ Afişază numărul cu exponent. Semnul
exponentului se afişază în orice caz
Tabelul 18. Simboluri utilizate pentru a defini formatul numerelor.
Formatul numerelor conţine patru secţiuni: prima pentru numere pozitive, a doua pentru
numere negative, a treia pentru valoarea 0 şi a patra pentru valoarea Null. Secţiunile sunt
separate de ;.

Figura 22. Proiectarea tabelei AFISARE NUMERE.


Câmpul CNP este de tipul Decimal. El are 13 cifre. Masca de afişare va fi
0000000000000
Câmpul NUMAR INTREG este de tipul Long Integer şi trebuie să afişeze numere întregi
în $. Numerele negative se vor afişa în paranteze în roşu. Numerele pozitive se afişază în
verde. El are masca de afişare
$#,##0[Green];($#,##0)[Red];" Zero";"Null"
Câmpul NUMAR REAL este de tipul real in simpla precizie (Single) şi trebuie să afişeze
numere cu două zecimale în $. El are masca de afişare
$#,##0.00[Green];($#,##0.00)[Red];" Zero";"Null"

22
Câmpul VALUTA are tipul Currency, vezi Figura 21 pentru modul de afişare.
Tabela cu date este cea din Figura 23.

Figura 23. Tabela cu date AFISARE NUMERE.

1.5 Probleme propuse


In tabelele de mai jos coloana ce reprezintă cheia primară este subliniată.
1. Fie tabela FACTURA_TELEFONICA de mai jos, ce conţine codul numeric personal,
numele şi prenumele abonaţilor, numărul de telefon , valoarea facturii şi luna
facturării.

FACTURA_TELEFONICA

CNP Nume Prenume Numar_Telefon Valoare Luna

Câmpurile CNP, Valoare şi Luna sunt numerice, celelalte tip text. Numerele de telefon
sunt formate din prefix de patru cifre urmat de şase cifre. Se cere:
 să se proiecteze o mască pentru câmpul Numar_Telefon,
 să se definească următoarele reguli de validare: câmpul Numar_Telefon să înceapă cu
prefixul 0251, câmpul Valoare să conţină o valoare strict pozitivă, câmpul Luna, să
conţină numere între 1 şi 12. Se va impune şi condiţia câmpurile Nume şi Prenume să
nu fie vide,
 CNP conţine 13 cifre. Se va defini o mască pentru introducerea CNP cu 13 cifre
obligatorii (proprietatea Input Mask). Formatul de afişare (proprietatea Format) va
conţine 13 cifre,
 se vor introduce cinci linii în tabelă.
2. Fie tabela FACTURI de mai jos ce conţine codul, data si valoarea facturii.

FACTURI

COD_FACTURA DATA_FACTURA VALOARE_FACTURA

Codul şi valoarea facturii sunt numere întregi, data facturii este de tipul Date / Time. Se
cere:
 să se definească următoarele reguli de validare: codul facturii este un număr mai mare
ca 1000, data facturii este cu cel mult 30 zile înainte de data curentă, valoarea facturii
este mai mare ca zero.
 se vor introduce cinci linii în tabelă.

23
3. Fie tabela TELEFON de mai jos ce conţine date despre convorbiri telefonice. Tabela
conţine câmpurile NUMAR de tip text cu numărul de telefon, DATA şi TIMP de tip
Date/Time ce conţin data şi timpul efectuării convorbirii şi câmpul ACHITAT de tip
Yes/No. Câmpul NUMAR va conţine un număr de telefon format din şase cifre,
câmpul DATA o dată calendaristică, iar câmpul TIMP o oră.

TELEFON

NUMAR DATA TIMP ACHITAT

Se cere:
 să se definească o mască de forma ###-### pentru câmpul NUMAR, o mască de
forma ##/##/#### pentru câmpul DATA cu semnificaţia LL/ZZ/AAAA şi o mască de
forma ##:##:## PM pentru câmpul TIMP cu semnificaţia hh:mm:ss PM,
 să se definească reguli de validare pentru câmpuri: numărul de telefon nu poate începe
cu cifra 0, data trebuie să fie anterioară datei curente, timpul trebuie să fie anterior
orei curente,
 se vor introduce cinci linii în tabelă.

1.6 Intrebări de control


1. Care este rolul caracterelor * şi ? descrierea şirurilor de caractere?
2. Care sunt funcţiile pentru validarea datelor calendaristice?
3. Care este tipul câmpurilor pentru care putem defini o mască de introducere a datelor?
4. Care sunt proprietăţile câmpurilor care conţin măşti de introducere a datelor, reguli de
validare şi formate de afişare a valorilor?
5. Care este diferenţa între validarea unui câmp şi validarea unei înregistrări?
6. Care sunt formatele de afişare a datelor calendaristice?

24

S-ar putea să vă placă și