Documente Academic
Documente Profesional
Documente Cultură
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.
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.
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.
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,
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.
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.
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.
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.
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.
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.
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 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.
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.
16
Tabelul 13. Mesaje de eroare la validarea datelor introduce.
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.
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.
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.
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.
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 ;.
22
Câmpul VALUTA are tipul Currency, vezi Figura 21 pentru modul de afişare.
Tabela cu date este cea din Figura 23.
FACTURA_TELEFONICA
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
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
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ă.
24