Sunteți pe pagina 1din 65

1

Chapter
D E S I G N C U S T O M I Z A T I O N

Microsoft Access

M icrosoft Access este un sistem de gestiune a bazelor de date din pachetul de aplicaţii Microsoft
Office care permite dezvoltarea de aplicaţii într-o manieră uşoară şi prietenoasă atât pentru
utilizatori individuali, cât şi multiutilizator ceea ce face posibilă utilizarea la firme şi instituţii
de dimensiuni mici şi mijlocii. Asemănarea meniurilor şvi comenzilor disponibile în Access cu cele din
restul aplicaţiilor Office oferă un mediu de lucru familiar şi comod.

Microsoft Access este accesibil atât utilizatorilor care nu au cunoştinţe vaste în domeniul bazelor de date,
care pot realiza aplicaţii prin utilizarea şabloanelor predefinite, cât şi programatorilor care pot crea soluţii
complexe folosind limbajul de programare Visual Basic for Application. Tabelele din bazele de date
Access suportă numeroase tipuri de câmpuri, declararea indicilor şi stabilirea restricţiilor de integritate
refereţială, în timp ce pentru crearea şi manipularea altor componente, cum ar fi interogări, formulare,
rapoarte există metode de lucru variate de la simple, modul asistat, la complexe, modul proiect. De
asemenea, operaţiunile simple şi repetitive pot fi automatizate prin utilizarea macro-urilor ceea ce reduce
volumul de muncă al utilizatorului final.

Ca organizare, Microsoft Access combină într-un singur fişier, de tip .accdb tabelele, formularele,
rapoartele, interogările, macro-urile şi codul Visual Basic for Application ceea ce asigură accesul rapid şi
uşor al utilizatorului la orice componentă. Un avantaj important este posibilitatea extinderii bazei de date pe
Internet pentru a fi accesată de alţi utilizatori, iar modificările se pot sincroniza automat.

Pentru a împiedica vizualizarea şi/sau modificarea codului sursă al unei aplicaţii, Microsoft Access permite
transformarea ei în executabilă prin operaţiuni simple protejând-o astfel de intruşi sau de modificări
involuntare.

Enunţul aplicaţiei
În vederea bunei desfăşurări a Conferinţei GEBA 2011, este necesară realizarea unei baze de date pentru
gestiunea informaţiilor despre participanţi. Informaţiile sunt destinate atât gestiunii comunicărilor, cât şi
gestiunii cazărilor/rezervărilor şi participării la diversele activităţi conexe evenimentului. În afara bazei de
date propriu-zisă se doreşte, de asemenea, realizarea unui formular care să permită introducerea şi
modificarea datelor iniţiale despre participanţi (când este cazul) şi o serie de rapoarte care să permită
obţinerea de informaţii despre participanţii la fiecare secţiune şi opţiunile pentru cazare în vederea
rezervării locurilor la hoteluri.

1
D E S I G N C U S T O M I Z A T I O N

Rezolvare
Înainte de construirea aplicaţiei este necesară proiectarea structurii bazei de date pe hârtie cu următoarele
componente: tabele, inclusiv câmpurile din fiecare tabel cu precizarea tipului, dimensiunii şi altor
proprietăţi specifice (valori implicite, reguli de validare etc.), relaţii dintre tabele şi regulile de integritate
refenţială, interogări, formulare, rapoarte, dar şi alte elemente, dacă este cazul, cum ar fi meniuri.

Pentru început, în vederea rezolvării aplicaţiei, se va realiza structura bazei de date sub forma unui tabel ce
va conţine informaţiile necesare (tip, lungime, indecşi) acesteia (tabelul nr. 1).
Structura bazei de date pentru conferinţă

Tabel Denumire câmp Tip Lungime Observaţii


Ţări Cod ţară AutoNumber Long Integer Cheia primară este Cod ţară
Nume ţară Text 50 Cheia candidat este Nume
ţară
Localităţi Cod localitate AutoNumber Long Integer Cheia primară este Cod
Denumire localitate Text 60 localitate
Cod ţară Number Long Integer
Participanţi Cod participant AutoNumber Long Integer Cheia primară este Cod
Nume participant Text 40 participant
Prenume participant Text 40
Adresă Text 100
Telefon Text 14
E-mail Text 60
Cod localitate Number Long Integer
Cod funcţie Number Long Integer
Secţiuni Cod secţiune AutoNumber Long Integer Cheia primară este Cod
Denumire secţiune Text 150 secţiune
Comunicări Cod comunicare AutoNumber Long Integer Cheia primară este Cod
Titlu comunicare Text 255 comunicare
Abtract Memo
Funcţii Cod funcţie AutoNumber Long Integer Cheia primară este Cod
Denumire funcţie Text 30 funcţie
Organizaţii Cod organizaţie AutoNumber Long Integer Cheia primară este Cod
Denumire organizaţie Text 150 organizaţie
Adresă Text 100
Cod localitate Number Long Integer
Activităţi Cod activitate AutoNumber Long Integer Cheia primară este Cod
sociale Denumire activitate Text 100 activitate
Descriere activitate Memo 255
Locuri activităţi Cod loc activitate AutoNumber Long Integer Cheia primară este Cod loc
Denumire loc activitate Text 50
Tip loc activitate Text 20
Adresă Text 40
Telefon Text 14
Fax Text 14
Capacitate Number Byte
Persoana de contact Text 40
Fotografie Ole Object

2
D E S I G N C U S T O M I Z A T I O N

Tabel Denumire câmp Tip Lungime Observaţii


Observaţii Memo 255
Hoteluri Cod hotel AutoNumber Long Integer Cheia primară este Cod
Denumire hotel Text 50 hotel
Adresa Text 40
Telefon Text 14
E-mail Text 60
Fax Text 14
Categorie Number Byte
Capacitate Number Integer
Persoana contact Text 40
Rezervări Cod participant Number Long Integer Cheia primară este formată
Cod hotel Number Long Integer din Cod participant şi Cod
Dată rezervare Date/Time hotel
Dată sosire Date/Time
Număr locuri Number Byte
Dată plecare Date/Time
Tip cameră Text 15
Confirmare rezervare Yes/No
Participare Cod activitate Number Long Integer Cheia primară este formată
activităţi Cod participant Number Long Integer din Cod activitate şi Cod
Dată activitate Date/Time participant
Oră activitate Date/Time
Confirmare participare Yes/No
Cod loc activitate Number Long Integer
Detalii Cod comunicare Number Long Integer Cheia primară este formată
comunicări Cod participant Number Long Integer din Cod comunicare şi Cod
Pozitie participant Number Byte participant

Pentru a sprijini utilizatorul în introducerea datelor şi pentru a asigura acurateţea informaţiilor


introduse în anumite câmpuri se stabilesc următoarele proprietăţi la nivel de atribut şi de înregistrare:

 Valoarea implicită a câmpului Tip loc activitate este Restaurant;

 Dată rezervare are ca valoarea implicită data curentă a sistemului;

 Câmpurile Confirmare rezervare şi Confirmare participare au valoarea implicită Yes;

 Prima literă pentru informaţiile introduse în câmpurile Denumire localitate, Denumire ţară,
Denumire hotel va fi majusculă;

 Titlul comunicării trebuie să fie scris în întregime cu litere mari.

 Câmpul Categorie, din tabelul Hoteluri, conţine informaţii privind numărul de stele ale
hotelului şi poate lua valori între 1 şi 5;

3
D E S I G N C U S T O M I Z A T I O N

 Câmpurile Capacitate, Număr locuri, Număr nopţi trebuie să fie completate cu numere
pozitive, diferite de zero;

 Toate câmpurile de tip dată sunt ulterioare zilei curente completării informaţiilor în tabele;

 Dată sosire din tabelul Rezervări nu poate fi anterioară valorii din Dată rezervare;

 Formatul utilizat pentru câmpurile de tip dată calendaristică este Short Date, iar pentru oră
Short Time;

 Următoarele câmpuri trebuie completate obligatoriu cu informaţii: Denumire ţară, Denumire


localitate, Titlu comunicare, Nume participant, Denumire hotel, Denumire organizaţie,
Denumire activitate, Denumire loc activitate;

 Tip loc activitate poate lua urmatoarele valori: "Restaurant", "Aulă", "Amfiteatru",
"Muzeu","Mânăstire".

Pot aparea situaţii când informaţiile despre participanţi se introduc manual, cazul formularelor de
participare completate doar pe hârtie, sau trebuie modificate, în cazul participanţilor care retrimit
formularule de participare şi se doreşte să nu mai fie importate din nou. Pentru a rezolva asemenea situaţii
este necesară realizarea unui formular în Microsoft Access într-o formă cât mai apropiată de cea a
formularului de participare prezentat în capitolul xxx.

Pentru a realiza anumite statistici, dar şi pentru a construi rapoartele trebuie să se răspundă la următoarele
întrebări prin intermediul interogărilor din Microsoft Access:

4
D E S I G N C U S T O M I Z A T I O N

 Cine participă la secţiunea Globalization and Business Information Systems a conferinţei?

 Cine participă la fiecare secţiune a conferinţei?

 Cine a rezervat cameră dublă la hotelurile Traian sau Unirea?

 Câţi participanţi sunt din fiecare organizaţie?

 La ce hoteluri trebuie rezervate mai mult de cinci locuri?

În săptămâna care precede conferinţa va fi afişată, pe site-ul acesteia, o listă cu participanţii la fiecare
secţiune care trebuie realizată sub forma unui raport în Microsoft Access. De asemenea, tot ca rapoarte vor
fi obţinute informaţii despre opţiunile de cazare care vor fi trimise la fiecare hotel în vederea rezervării
camerelor.

5
D E S I G N C U S T O M I Z A T I O N

a) Construirea bazei de date pentru conferinţa GEBA 2011

Deschiderea aplicaţiei de gestiune a bazelor de date Microsoft Access se realizează din meniul Start
 All Programs  Microsoft Office  Microsoft Access 2007 sau din pictograma corespunzătoare
de pe suprafaţa de lucru (Desktop) dacă aceasta a fost creată anterior. Ca rezultat se deschide o
fereastră din care va fi selectată modalitatea de creare a bazei de date, respectiv dintr-un şablon
predefinit (Assets, Contacts, Issues, Events, Marketing Projects, Sales Pipeline, Tasks, Faculty,
Students) sau ”de la zero” (Blank Database). Pentru crearea bazei de date conferinţa_FEAA este
utilizată opţiunea Blank Database. În partea dreaptă a ferestrei este introdusă denumirea menţionată şi
se finalizează operaţiunea prin acţionarea butonului Create (vezi figura nr. ???). În cazul în care
utilizatorul doreşte să schimbe calea unde va fi salvată baza da date trebuie acţionată opţiunea Browse
for a location to put your database ( ) din aceeaşi fereastră.

6
D E S I G N C U S T O M I Z A T I O N

Opţiune pentru crearea unei baze de date “de la zero”


Denumirea bazei de date

Șabloane pentru bazele de date

Alegerea locului de pe harddisk-ul calculatorului unde va fi salvată baza de date


Crearea propriu-zisă a bazei de date conferinţa_FEAA

Fereastră pentru create bazei de date

b) Construirea tabelelor din baza de date pentru conferinţa GEBA 2011

Crearea tabelelor din baza de date conferinţă_FEAA se realizează, în modul de lucru proiect (Design
View), prin selectarea opţiunii Table Design din meniul Create. În urma acestei acţiuni, apare
fereastra aferentă modului de vizualizare proiect, în care se introduc denumirile câmpurilor,
dimensiunea lor, o descriere, dacă este cazul, şi se stabilesc proprietăţile lor (vezi figura nr. ???).
Fereastra are, în partea de sus, trei coloane:

 Field name – denumirea câmpului;

 Data type – tipul câmpului;

 Description – descrierea câmpului.

În partea de jos este zona Field Proprieties, unde vor fi stabilite proprietăţile pentru fiecare câmp al
tabelului, cu două componente:

 General – proprietăţile generale ale câmpului;

 Lookup – tipul de control în care va fi afişat acest câmp într-un formular (Text Box, List Box,
Combo Box).

7
D E S I G N C U S T O M I Z A T I O N

Fereastră pentru crearea unui


tabel nou

În prima celulă, denumită Field Name, sunt introduse denumirile câmpurilor, de lungime maximă 64
caractere (litere, cifre, spaţii, caractere speciale).

Notă

Nu pot fi folosite în denumirea câmpurilor următoarele simboluri: semnul exclamării (!),


punctul (.), accentul grav (`) şi parantezele pătrate ([ ]).

După introducerea denumirii câmpului, se trece la stabilirea tipului datelor pe care le va conţine
acesta, Data Type. În Microsoft Access pot fi utilizate următoarele tipuri de date (vezi figura nr. ???).

Tipuri de date în Microsoft Access

8
D E S I G N C U S T O M I Z A T I O N

 Text – texte sau combinaţii de texte şi numere. Dimensiunea implicită şi maximă a unui câmp
de acest tip este de 255 caractere, dar poate fi modificată de utilizator prin intermediul
proprietăţii FieldSize.

 Memo – texte de mare dimensiune, cum sunt descrierile şi notele (aproximativ 10 pagini de
text scris la un rând). Dimensiunea maximă este de 63 999 caractere.

 Number – date numerice utilizate în calcule matematice. Tipul este stabilit prin proprietatea
FieldSize şi poate fi: Byte, Integer, Long Integer, Single, Double, Replication ID. Diferenţa
între ele este dată de mărimea acceptată şi de utilizarea sau neutilizarea zecimalelor, cu
excepţia ultimului tip, care este identificator de multiplicare.

 Date/Time – valori pentru dată şi oră, în intervalul 100-9999;

 Currency – valori monetare cu precizie de 15 cifre în stânga separatorului zecimal şi 4 în


dreapta lui;

 AutoNumber – un număr secvenţial unic care se incrementează cu 1 la fiecare nouă


înregistrare introdusă în tabel. Câmpurile de acest tip nu pot fi modificate, iar o tabelă poate
conţine un singur câmp AutoNumber.

 Yes/No – conţine numai valori logice de tipul Da/Nu.

 OLE Object – obiecte provenite din programe server înregistrate, cum ar fi documente Word,
foi de calcul Excel, imagini etc.

 Hyperlink – poate conţine legături către o adresă Internet, un document aflat pe calculatorul
utilizatorului, un document din reţeaua locală, la o adresă electronică sau la un obiect al bazei
de date curente.

 Lookup Wizard – un program de tip asistent care ajută la crearea unui câmp ale cărui valori
sunt selectate dintre valorile altui tabel, altei interogări sau dintr-o listă de valori.

Fiecare câmp al unui tabel are un număr de proprietăţi, care depind de tipul său. Configurarea proprietăţilor
se realizează, în zona Field Propereties, prin deschiderea tabelului în modul de lucru proiect. Design View
(vezi figura nr. ???).

9
D E S I G N C U S T O M I Z A T I O N

Proprietăţile unui câmp de tip Text în Microsoft Access

Proprietăţile generale care pot fi stabilite pentru un câmp sunt:

 Field Size – specifică numărul maxim de caractere care pot fi introduse într-un câmp. În cazul
câmpurilor de tip Text, valoarea implicită şi maximă este 255 caractere, pentru cele Number
proprietatea poate lua valorile: Byte, Integer, Long Integer, Single, Double, Replication ID, iar
pentru cele AutoNumber: Long Integer sau Replication ID. Dimensiunea nu trebuie specificată
pentru câmpurile de tip: Currency, Date/Time, Yes/No, OLE Object, Hypelink, Memo.

 Format – stabileşte modul în care programul va afişa informaţiile introduse în câmp şi depinde
de tipul câmpului. Formatul poate fi unul predefinit, selectat din lista care apare la click pe
săgeata din dreptul liniei Format sau unul personalizat, definit de utilizator. În figura
următoare este exemplificată proprietatea Format pentru un câmp de tip Number.

Stabilirea formatului pentru un câmp de tip Number

 Decimal Places – stabileşte numărul de zecimale afişate. Această proprietate poate fi utilizată
pentru câmpurile numerice şi de tip valoare monetară şi afectează doar modul de afişare a
informaţiilor, nu şi conţinutul lor. Valorile posibile sunt: Auto – preia valoarea specificată prin
proprietatea Format sau un număr de la 0 la 15, selectat de utilizator.

10
D E S I G N C U S T O M I Z A T I O N

 Input Mask – este un şir de caractere care specifică un format sau un şablon pe care trebuie să-l
respecte datele dintr-un câmp. Această proprietate poate fi utilizată pentru următoarele tipuri de
câmpuri: text, număr, dată calendaristică/oră, valoare monetară. Pentru fiecare caracter tastat, ea
stabileşte dacă este obligatoriu sau opţional, precum şi tipul acceptat: alfabetic, numeric,
alfanumeric sau arbitrar. Simbolurile ce pot fi utilizate pentru stabilirea caracteristicilor unui câmp
cu proprietatea Input Mask sunt prezentate în tabelul următor (Tabelul nr. ???).
Simboluri pentru masca de intrare

Caracter Descriere
0 Cifre de la 0 la 9 – obligatorii.
9 Cifre de la 0 la 9 – opţionale.
A Litere sau cifre – obligatorii.
a Litere sau cifre – opţionale.
C Orice caracter sau spaţiu – opţionale.
L Litere de la A la Z – obligatorii.
? Litere de la A la Z – opţionale.
# Cifre sau spaţii.
& Orice caracter sau spaţiu – obligatorii.
> Următoarele caractere sunt afişate cu majuscule.
< Următoarele caractere sunt afişate cu litere mici.
\ Caracterul care urmează va fi afişat ca un caracter literal.
.,:-/ Caractere utilizate pentru separarea zecimalelor, a miilor, orelor / minutelor /
secundelor, datelor calendaristice.

Stabilirea unei caracteristici ca mască de intrare pentru un câmp din baza de date se poate realiza şi cu
asistentul care se lansează prin accesarea butonului din dreptul proprietăţii Input Mask.

 Caption – stabileşte o etichetă pentru un câmp dacă acesta va fi utilizat într-un formular. În
cazul în care nu se specifică nici o valoare la Caption titlul câmpului coincide cu numele lui.

 Default Value – specifică o valoare ce va fi introdusă automat în câmpul pentru care a fost
stabilită. Această proprietate nu poate fi utilizată pentru câmpurile de tip AutoNumber şi OLE,
iar pentru cele de tip Number şi Currency valoarea implicită este iniţial zero, dar poate fi
modificată.

 Validation Rule – este o expresie logică care limitează valorile ce pot fi introduse într-un
câmp. Ea poate avea cel mult 2048 de caractere. Proprietatea nu poate fi utilizată în cazul
câmpurilor AutoNumber, OLE şi Memo.

 Validation Text – este un şir de maxim 255 caractere afişat când nu este respectată regula de
validare introdusă la Validation Rule.

 Required – specifică dacă este obligatorie introducerea unei valori într-un câmp. Aceasta
proprietate poate lua două valori, Yes – este obligatorie introducerea de valori în câmpul
respectiv şi No – completarea cu valori a câmpului este opţională.

11
D E S I G N C U S T O M I Z A T I O N

 Allow Zero Lenght – specifică dacă în câmpul respectiv utilizatorul poate introduce un şir de
lungime zero (şir vid). Acesta va fi introdus prin tastarea de două ori a caracterului ghilimele
(”), iar câmpul va păstra această proprietate chiar dacă atunci când este părăsit câmpul
ghilimelele tastate nu sunt afişate. Proprietatea este activă numai pentru câmpurile de tip Text,
Memo şi Hyperlink şi poate lua valorile Yes şi No.

 Indexed – indică dacă programul va păstra un index al valorilor câmpului şi se utilizează


pentru a accelera operaţiunile de căutare, sortare, grupare, filtrare a înregistrărilor. Proprietatea
poate avea următoarele valori:

o No – câmpul nu este indexat (valoare implicită);

o Yes (No duplicates) – câmpul este indexat şi nu permite ca două înregistrări din tabel
să aibă aceeaşi valoare. Este utilizată mai ales pentru declararea cheilor candidat;

o Yes (Duplicates OK) – câmpul este indexat şi permite ca două sau mai multe
înregistrări din tabel să aibă aceeaşi valoare în câmpul respectiv.

 Unicod Compression – indică dacă se doreşte ca programul să economisească spaţiu în cazul


în care sunt introduse numai texte. Se poate aplica câmpurilor de tip Text, Hyperlink şi Memo
şi poate lua valorile Yes şi No.

 Smart Tag – ajută la integrarea, direct în Microsoft Access, a unor acţiuni efectuate în mod
normal de alte programe, de exemplu adăugarea numelui şi adresei unei persoane dintr-o bază
de date la lista de contacte din Microsoft Outlook.

 Display Control – stabileşte controlul folosit la afişarea valorii unui câmp pentru tabele,
interogări sau formulare. În cazul câmpurilor Text sau Number proprietatea poate fi Text Box
(căsuţă text), List Box (listă simplă) sau Combo Box (listă combinată), iar pentru câmpurile de
tip Yes/No: Check Box (casetă de validare), Text Box sau Combo Box.

Notă

În funcţie de tipul stabilit pentru un câmp, Data Type, sunt disponibile numai anumite
proprietăți. Cele prezentate anterior sunt cele mai utilizatate la dezvoltarea aplicaţiilor în
Microsoft Access.

Pentru crearea tabelului Țări, după acţionarea opţiunii Table Design din meniul Create, grupul
Tables este introdusă denumirea primului câmp, Cod ţară şi este selectat tipul câmpului, AutoNumber
(vezi figura nr. ???).

12
D E S I G N C U S T O M I Z A T I O N

Crearea câmpului Cod ţară şi stabilirea tipului de informaţii pe care le stocheză

Ulterior, este creat câmpul Denumire ţară pentru care este selectat tipul Text cu dimensiunea 50,
introdusă la proprietatea Field Size (vezi figura nr. ???).

Crearea câmpului Denumire ţară, stabilirea tipului şi dimensiunii câmpului

După crearea câmpurilor se declară cheia primară şi, unde este cazul, cheia candidat.

Cheia primară a unei relaţii (tabele) este un atribut sau grup de atribute care identifică fără ambiguitate
fiecare tuplu (linie) al relaţiei (tabelei).1 Cheia candidat este un atribut sau grup de atribute care îndeplineşte
condiţia de cheie primară, dar a fost preferat un alt câmp pentru aceasta.

1
Fotache, M., SQL. Dialecte DB2, Oracle şi Visual FoxPro, Editura Polirom, Iaşi, 2001, p. 30

13
D E S I G N C U S T O M I Z A T I O N

Pentru a declara câmpul Cod ţară cheie primară se poate proceda în două moduri:

 click dreapta pe marcatorul de linie corespunzător câmpului Cod ţară şi selectarea opţiunii Primary
Key din meniul contextul (vezi figura nr. ???)

Declararea cheii primare din meniul contextual al câmpului selectat

 poziţionarea cursorul mouse-ului în câmpul Cod ţară şi selectarea opţiunii Primary Key din grupul
Tools, meniul Design (vezi figura nr. ??).

Declararea cheii primare din meniul Design, opţiunea Primary Key

În stânga câmpului va apărea simbolul unei chei: .

Atributul Denumire ţară este cheie candidat în tabelul Țări. Pentru declararea ei se va crea un index care să
nu permită două valori identice: se poziţionează cursorul mouse-ului în câmpul Denumire ţară şi din zona
General, în dreptul proprietăţii Indexed este selectată opţiunea Yes (No Duplicates).

14
D E S I G N C U S T O M I Z A T I O N

Stabilirea indexului pentru câmpul Denumire ţară

După alegerea acestei opţiuni, în câmpul respectiv nu va putea fi introdusă aceeaşi denumire de ţară de
două ori.

Notă

Pentru declararea cheilor primare compuse trebuie selectate toate câmpurile care fac parte din
cheia primară prin una din următoarele metode: (1) prin tragerea mouse-ului cu click stânga
apăsat, (2) prin utilizarea tastelor Shift şi ↓ sau (3) prin ţinerea apăsată a tastei Ctrl şi click
stânga pe fiecare câmp care formează cheia, urmată de selectarea opţiunii Primary Key din
meniul contextual sau din meniul Design, grupul Tools (vezi figura nr. ??).

15
D E S I G N C U S T O M I Z A T I O N

Declararea cheii primare compuse în tabelul Rezervări

După introducerea tuturor câmpurilor, stabilirea tipului şi dimensiunii lor, tabelul este salvat cu denumirea
Țări prin accesarea opţiunii Save afişată la click pe butonul Office. Similar pot fi salvate toate obiectele
create în Microsoft Access.

c) Declararea valorilor implicite, regulilor de validare, câmpurilor obligatorii şi


parametrilor de format

O valoare implicită este o valoare introdusă automat de aplicaţie, dar care poate fi modificată de utilizator
în momentul introducerii informaţiilor în tabele. Proprietatea care stabileşte această caracteristică pentru un
câmp este Default Value.

În cerinţele aplicaţiei, prezentate la începutul capitolului, s-a solicitat stabilirea următoarelor valori
implicite:
 “Restaurant” pentru câmpul Tip loc activitate din tabelul Locuri activităţi;
 Data curentă a sistemului pentru câmpul Dată rezervare din tabelul Rezervări;
 “Yes” pentru câmpurile Confirmare rezervare şi Confirmare participare.
Pentru a stabili valoarea implicită în tabelul Locuri activităţi trebuie deschis în modul de vizualizare
Design View, se poziționează cursorul mouse-ului pe câmpul Tip loc activitate şi, la proprietatea
Default Value, este scrisă valoarea corespunzătoare, respectiv, “Restaurant” (vezi figura nr. ???).

16
D E S I G N C U S T O M I Z A T I O N

Stabilirea valorii implicite Restaurant pentru câmpul Tip loc activitate

Pentru câmpul Dată rezervare , din tabelul Rezervări, se va declara ca valoare implicită data curentă a
sistemului. Funcţia care returnează această valoare este Date(). Pentru a declara această valoare se deschide
tabelul Rezervări în modul Design View, se poziționează cursorul mouse-ului pe câmpul Dată rezervare şi
la proprietatea Default Value este scrisă funcţia menţionată (vezi figura nr. ???).

17
D E S I G N C U S T O M I Z A T I O N

Stabilirea datei curente ca valoare implicită

Similar se declară şi valoarea implicită Yes pentru câmpurile Confirmare rezervare din tabelul
Rezervări (vezi figura nr. ???), respectiv, Confirmare participare din tabelul Participare activităţi.

18
D E S I G N C U S T O M I Z A T I O N

Declararea valorii imlicite Yes pentru câmpul Confirmare rezervare

Regulile de validare specifică anumite expresii care limitează valorile introduse într-un câmp. Ele pot
fi stabilite la nivel de atribut, caz în care restricţionează numai valorile introduse într-un câmp, sau la
nivel de înregistrare, când limitează valorile din mai multe câmpuri ale tabelului prin stabilirea unor
dependenţe între ele. Proprietatea care stabileşte regulile este Validation Rule. În baza de date
conferinţa_FEAA vor fi declarate următoarele reguli de validare:

 Prima literă pentru informaţiile introduse în câmpurile Denumire localitate, Denumire ţară,
Denumire hotel va fi majusculă;

 Titlul comunicării trebuie să fie scris în întregime cu litere mari.

 Câmpul Categorie, din tabelul Hoteluri, conţine informaţii privind numărul de stele ale
hotelului şi poate lua valori între 1 şi 5;

 Câmpurile Capacitate, Număr locuri, Număr nopţi trebuie să fie completate cu numere
pozitive, diferite de zero;

 Toate câmpurile de tip dată sunt ulterioare zilei curente completării informaţiilor în tabele;

 Dată sosire din tabelul Rezervări nu poate fi anterioară valorii din Dată rezervare;

 Tip loc activitate poate lua urmatoarele valori: "Restaurant", "Aulă", "Amfiteatru",
"Muzeu","Mânăstire".

Notă

Se recomandă ca orice regulă de validare să fie însoţită de un mesaj corespunzător care să


semnaleze explicit utilizatorului eroarea.

În continuare, este exemplificată crearea unora dintre aceste reguli de validare.

Pentru a stabili regula de validare conform căreia denumirea localităţii trebuie să înceapă cu
majusculă se deschide tabelul Localităţi în Design View, se poziţionează cursorul mouse-ului pe
câmpul Denumire localitate şi este scrisă următoarea regulă la proprietatea Validation Rule (vezi
figura nr. ???):
StrComp(Left(UCase([Denumire localitate]),1),Left([Denumire localitate],1),0)=0

Dacă utilizatorul nu respectă această condiţie, va fi avertizat prin afişarea mesajului “ Denumirea
localității trebuie să înceapă cu literă mare.” scris la proprietatea Validation Text a aceluiaşi câmp
(vezi figura nr. ???).

19
D E S I G N C U S T O M I Z A T I O N

Introducerea regulii şi mesajului de validare pentru câmpul Denumire localitate

Similar, se procedează pentru câmpurile Denumire ţară şi Denumire hotel din tabelele Țări, respectiv,
Hoteluri.

Pentru a stabili regula de validare conform căreia titlul comunicării trebuie să fie scris cu majuscule se
deschide tabelul Comunicări în Design View, se poziţionează cursorul mouse-ului pe câmpul Titlu
cumunicare şi este scrisă următoarea regulă la proprietatea Validation Rule:
StrComp(UCase([titlu comunicare]),[titlu comunicare],0)=0

Și în acest caz utilizatorul va fi averizat printr-un mesaj dacă încalcă regula, respectiv, “Titlul
comunicării trebuie scris cu majuscule.” scris la proprietatea Validation Text (vezi figura nr. ???).

20
D E S I G N C U S T O M I Z A T I O N

Introducerea regulii şi mesajului de validare pentru câmpul Titlu comunicare

Pentru a implementa condiţia conform căreia în câmpul Categorie, din tabelul Hoteluri, pot fi
introduse numai valori din intervalul 1 şi 5 se scrie la Validation Rule una din următoarele două reguli
(vezi figura nr. ???):

 [Categorie] Between 1 And 5 sau


 [Categorie]>=1 And [Categorie]<=5.

21
D E S I G N C U S T O M I Z A T I O N

Introducerea regulii şi mesajului de validare pentru câmpul Categorie

În acelaşi tabel, pentru a restricţiona ca valorile introduse în câmpul Capacitate să fie numere
positive, diferite de zero se scrie la Validation Rule regula [Capacitate]>0, iar la Validation Text
mesajul “Introduceți un număr pozitiv diferit de zero.” (vezi figura nr. ???).

22
D E S I G N C U S T O M I Z A T I O N

Introducerea regulii şi mesajului de validare pentru câmpul Capacitate

Similar, se procedează pentru câmpurile Număr locuri şi Număr nopţi din tabelul Rezervări.

Pentru a restricţiona introducerea unei date anterioare celei curente în câmpul Dată activitate, din
tabelul Participare evenimente, la proprietatea Validation Rule, se scrie regula [Data
activitate]>=Date(), iar la Validation Text mesajul “Data activitatii trebuie sa fie ulterioara zilei
curente.” (vezi figura nr. 20).

23
D E S I G N C U S T O M I Z A T I O N

Introducerea regulii şi mesajului de validare pentru câmpul Dată activitate

Pentru ultima regulă de validare stabilită, restricţionarea domeniului de valori ale câmpului Tip loc
activitate la "Restaurant", "Aulă", "Amfiteatru", "Muzeu", "Mânăstire", se scrie la proprietatea
Validation Rule a câmpului respectiv regula In ("Restaurant", "Aulă", "Amfiteatru", "Muzeu",
"Mânăstire"), iar la Validation Text mesajul este “Locul de desfășurare a activității poate fi aula, un
amfiteatru, un muzeu sau o mânăstire.” (vezi figura nr. ???).

24
D E S I G N C U S T O M I Z A T I O N

Introducerea regulii şi mesajului de validare pentru câmpul Tip loc activitate

Pentru a stabili regula de validare la nivel de înregistrare prin care data rezervării trebuie să fie
anterioară datei sosirii, se deschide tabelul Rezervări în Design View şi se accesează opţiunea
Property Sheet (vezi figura nr. ???).

25
D E S I G N C U S T O M I Z A T I O N

Opţiune pentru afişarea proprietăţilor tabelului curent

În fereastra Property Sheet afişată în drepta ecranului se completează condiţia [Data


rezervare]<=[Data sosire] la proprietatea Validation Rule, iar la Validatin Text este scris mesajul
corespunzător “Data rezervării trebuie să fie anterioară celei la care sosesc participanţii.” (vezi
figura nr. ???).

Regula de validare la nivel de înregistrare pentru câmpurile Data sosire şi Data rezervare

Similar, se realizează restricţia prin care data sosirii trebuie să preceadă data plecării.

În orice bază de date anumite informaţii nu trebuie să lipsească şi pentru această este disponibilă
proprietatea Required. Ea permite utilizatorului să treacă de câmpul pentru care este stabilită abia
după ce îl completează cu informaţii. Pentru a defini această proprietate pentru câmpul Denumire ţară
din tabelul Ţări, se deschide tabelul în Design View şi este selectată opţiunea Yes la proprietatea
Required (vezi figura nr. ???).

Stabilirea valorii Yes pentru proprietatea Required la câmpul Denumire ţară

26
D E S I G N C U S T O M I Z A T I O N

Similar se procedează cu restul câmpurile menţionate în cerinţa problemei, respectiv, Denumire ţară,
Denumire localitate, Titlu comunicare, Nume participant, Denumire hotel, Denumire organizaţie,
Denumire activitate şi Denumire loc activitate.

Stabilirea formatului Short Date şi Short Time pentru câmpurile de tip dată calendaristică, respectiv,
oră se realizează la proprietatea Format. De exemplu , pentru Dată activitate, se deschide
tabelul Participare activităţi în modul Design View, se poziţionează cursorul mouse-ului pe câmpul
Dată activitate şi la proprietatea Format este selectată opţiunea Short Date (vezi figura nr. ???).

Selectarea formatului pentru câmpul Dată activitate

Pentru câmpul Oră activitate din acelaşi tabel se va selecta la proprietatea Format opţiunea Short
Time (vezi figura nr. ???).

27
D E S I G N C U S T O M I Z A T I O N

Selectarea formatului pentru câmpul Oră activitate

d) Stabilirea relaţiilor dintre tabele şi a restricţiilor de integritate referenţială


După crearea tabelelor se stabilesc relaţiile dintre ele conform regulilor specifice bazelor de date relaţionale.
Există următoarele tipuri de relaţii care pot fi stabilite între două tabele:

 unu-la-unu (one-to-one) – fiecărei înregistrări din tabelul părinte îi corespunde o singură


înregistrare în tabelul copil;

 unu-la-multe (one-to-many) – unei înregistrări din tabelul părinte îi corespunde una sau mai multe
înregistrări în tabelul copil. Acest tip de relaţie este cel mai frecvent întâlnit în bazele de date
relaţionale;

 multe-la-multe (many-to-many) – mai multor înregistrări din tabelul părinte le corespund mai multe
înregistrări în tabelul copil.

Relaţiile dintre tabele trebuie să respecte anumite reguli de integritate referenţială care controlează modul
în care pot fi modificate şi şterse înregistrările şi care protejează informaţiile de eventualele erori în cazul
efectuării unor asemenea operaţiuni. Integritatea referenţială impune următoarele condiţii:

 înainte de a insera o înregistrare în tabelul copil în tabelul părinte trebuie să existe o înregistrare
corespondentă;

 valoarea cheii primare din tabelul părinte nu poate fi ştearsă dacă există înregistrări corespondente
în tabelul copil;

28
D E S I G N C U S T O M I Z A T I O N

 dacă este modificată valoarea cheii primare pentru o înregistrare în tabelul părinte, înregistrările
corespondente din tabelul copil vor lua noua valoare.

Pentru aplicarea acestor reguli trebuie îndeplinite, în primul rând, următoarele trei condiţii2:

 câmpul comun este cheie primară în tabelul părinte;

 câmpurile de legătură au acelaşi format;

 ambele tabele aparţin aceleiaşi baze de date.


Relaţiile dintre tabele se stabilesc din meniul Database Tools, opţiunea Relationships (vezi figura nr. ???)

Opţiunea Relationships pentru stabilirea relaţiilor dintre tabele

Această opţiune deschide fereastra Relationships şi fereastra Show Tables care conţine toate tabelele bazei
de date (vezi figura nr. ???).

2
Johnson, S., Microsoft Office. Access 2003, Editura Teora, Bucureşti, 2004, p. 59

29
D E S I G N C U S T O M I Z A T I O N

Tabelele din baza de date între care pot fi stabilite relaţii

Adăugarea tabelelor în fereastra Relationships se realizează prin selectarea lor şi acţionarea butonului Add.
Relaţia dintre două tabele se realizează prin „tragere” (Drag&Drop) cu butonul stâng al mouse-ului apăsat
de pe câmpul cheie primară în tabelul părinte până la câmpul cheie străină în tabelul copil. După ce este
eliberat butonul mouse-ului, între cele două tabele apare o linie care simbolizează legătura dintre ele şi pe
ecran este afişată fereastra de dialog Edit Relationships, în care va fi confirmată, modificată sau anulată
relaţia (vezi figura nr. ???).

Fereastra pentru editarea relaţiilor dintre tabele

Activarea opţiunii Enforce Referential Integrity face disponibile opţiunile Cascade Update Related Fields
şi Cascade Delete Related Records pentru propagarea în cascadă a modificărilor din tabelul părinte în
tabelul copil, respectiv, pentru ştergerea în cascadă a înregistrărilor din tabelul părinte în copil . În acest caz
interesează numai restricţia la inserare şi modificarea în cascadă (vezi figura nr. ???). În partea de jos a
ferestrei este precizat tipul relaţiei, respectiv Relationship Type: One-To-Many.

Pentru crearea relaţiei şi confirmarea restricţiilor se apasă butonul Create.

30
D E S I G N C U S T O M I Z A T I O N

Resticţiile de integritate pentru tabelele Țări şi Localități

În mod similar, vor fi create şi restul relaţiilor dintre tabelele bazei de date conferinţă_FEAA. Baza de date
în formă finală este prezentată în figura nr. ???.

Fereastra Relationship după stabilirea tuturor relaţiilor dintre tabele

Modificarea unei relaţii se poate realiza cu click dreapta pe linia de legătură şi selectarea opţiunii Edit
Relationship.... din meniul contextul sau prin dublu click pe aceeaşi linie. Ştergerea unei relaţii se face prin
selectarea opţiunii Delete.

e) Introducerea informaţiilor despre participanţi (organizatori) la conferinţa GEBA 2011

31
D E S I G N C U S T O M I Z A T I O N

După realizarea tabelelor şi a legăturilor, urmează introducerea înregistrărilor. Deschiderea tabelului


pentru introducerea datelor se realizează cu dublu-click pe numele lui sau cu opţiunea Open din meniul
contextual (vezi figura nr. ???).

Deschiderea tabelului Țări pentru introducerea înregistrărilor

Notă

Legăturile dintre tabele sunt foarte importante: mai întâi trebuie populate tabelele părinte,
ulterior cele copil. În cazul în care nu se ţine cont de această condiţie, va fi afişat mesajul de
eroare din figura nr. ???, care avertizează utilizatorul că nu există o înregistrare
corespunzătoare în tabelul părinte.

Mesajul de eroare care apare la încălcarea resticţiei de integritate

Ştergerea unei înregistrări presupune selectarea acesteia prin click pe marcatorul de linie şi alegerea
opţiunii Delete  Delete Record din grupul Records, meniul Home.

32
D E S I G N C U S T O M I Z A T I O N

În cazul câmpurilor pentru care s-au declarat reguli de validare sau măşti de intrare, dacă nu sunt respectate
condiţiile la introducerea înregistrărilor vor apărea mesaje de eroare (vezi figura nr. ???).

Mesaj de eroare care apare la încalcarea regulii de validare pentru denumirea localităţii

f) Realizarea de interogări pentru extragerea informaţiilor despre participanţii la


Conferinţa GEBA 2011
O interogare este o metodă de extragere sau actualizare a informaţiilor dintr-o bază de date, care permite
vizualizarea, modificarea şi analiza datelor. Ele pot fi utilizate, ca şi tabelele, ca sursă pentru realizarea
rapoartelor şi formularelor şi permit utilizatorului să specifice câmpurile pe care doreşte să le consulte,
ordinea de afişare a câmpurilor, criteriile de filtrare şi sortare a înregistrărilor, precum şi să realizeze
anumite calcule în grupurile de articole afişate. În funcţie de efectul lor, interogările în Microsoft Access
pot fi3:

 interogări de selecţie (Select Query, Make Table Query, Crosstab Query);

 interogări de inserare (Append Query);

 interogări de modificare (Update Query);

 interogări de ştergere (Delete Query).


Cele mai utilizate interogări, inclusiv cele prezentate în continuare, sunt cele de tip selecţie, care permit
extragerea înregistrărilor pe baza criteriilor specificate de utilizator. Opţiunile pentru realizarea lor sunt
disponibile în grupul Other din meniul Create (vezi figura nr. ???).

Grupul de opţiuni pentru


crearea interogărilor

Interogările specificate în cerinţe vor fi realizate în modul de lucru proiect şi/sau cu limbajul SQL.

Cine participă la secţiunea Globalization and Business Information Systems a conferinţei?

3
Airinei, D. (coord.), Instrumente software pentru afaceri. Aplicaţii practice, Editura Sedcom Libris, Iaşi, 2010, p. 323

33
D E S I G N C U S T O M I Z A T I O N

Pentru a răspunde la această întrebare putem utiliza modul de lucru proiect cu următoarele etape:

1. Se deschide utilitarul Query Design prin acţionarea opţiunii cu acelaşi nume din grupul de opţiuni
Other, meniul Design. Pe ecran sunt afişate fereastrele Query1, nume atribuit implicit interogării de
Microsoft Access, şi Show Table (vezi figura nr. ???).

Fereastrele deschise la acţionarea opţiunii Query Design

2. Din fereastra Show Table se adaugă, pe rând, tabelele din care se va realiza interogarea, prin
selectarea fiecăruia şi accesarea butonului Add. Acestea vor apărea în zona de lucru (vezi figura
???).

Notă

Fereastra Show Table poate fi afişată prin selectarea opţiunii cu acelaşi nume din meniul
contextual al interogării.

34
D E S I G N C U S T O M I Z A T I O N

Fereastra Query Design completată cu tabelele necesare pentru realizarea interogării

În parte inferioară a ferestrei Query Design trebuie/pot fi specificate:

 Field – denumirea câmpurilor folosite în interogare;

 Table – tabelul din care este preluat fiecare câmp;

 Sort – ordonarea rezultatului după unul sau mai multe criterii, crescător sau descrescător;

 Show – afişarea sau ascunderea unui câmpului în/din rezultat;

 Criteria şi OR– condiţiile pe care trebuie să le îndeplinească rezultatul (în funcţie de locul unde
sunt poziţionate pot fi obligatorii sau opţionale).

3. Sunt selectate câmpurile ce vor apărea în interogare pe linia Fields, respectiv Nume participant,
Prenume participant şi Denumire secţiune, prin dublu click pe denumirea lui sau prin poziţionarea
cursorului într-o coloană liberă din dreptul liniei Fields şi selectarea câmpului din lista afişată la
click stânga pe săgeata ( ) din dreptul lui. (vezi figura nr. ???).

Selectarea câmpurilor din interogare

4. Este formulată condiţia prin scrierea denumirii secţiunii, Globalization and Business
Information Systems la intersecţia liniei Criteria cu coloana corespunzătoare câmpului
Denumire secţiune (vezi figura nr. ???).

35
D E S I G N C U S T O M I Z A T I O N

Stabilirea condiţiei pentru denumirea secţiunii

5. Execuţia interogării şi afişarea rezultatului se realizează prin utilizarea butonului Run ( ) din
meniul Design, grupul de opţiuni Results (vezi figura nr. ????).

Lista paticipanţilor la secţiunea Globalization and Business Information Systems

Notă

Pentru ascunderea unui câmp din rezultatul interogării este dezactivată opțiunea Show
corespunzătoare lui. În figura nr. ??? este exemplificat pentru câmpul Denumire secțiune.

36
D E S I G N C U S T O M I Z A T I O N

Ascunderea câmpului Denumire secţiune şi rezultatul obţinut

Pentru realizarea acestei interogări în modul SQL, după deschiderea utilitarului Query Design se închide
fereastra Show Table şi este selectată opţiunea SQL View din meniul Design, grupul Results (vezi figura nr.
???).

Opţiunea pentru realizarea interogării în limbajul SQL

Pe ecran se deschide o fereastră în care trebuie scrisă interogarea (vezi figura nr. ???).

Interogarea anterioară scrisă în SQL

37
D E S I G N C U S T O M I Z A T I O N

Cine participă la fiecare secţiune a conferinţei?

Pentru a răspunde la această întrebare, interogarea anterioară va fi trasformată în dinamică prin scrierea
denumirii câmpului care trebuie introdus de utilizator, urmat de semnul două puncte, [Denumire secţiune:]
în acest caz pe linia Criteria, ca în figura următoare:

Interogare dinamică pentru afişarea participanţiilor la fiecare secţiune

La executarea interogării utilizatorului i se solicită să introducă denumirea secţiunii pentru care va fi afişată
lista participanţilor (vezi figura nr. ???).

Fereastra de dialog în care utilizatorul introduce denumirea secţiunii

În funcţie de secţiunea introdusă este afişată lista paticipanţilor. În figura următoare este exemplificat
rezultatul pentru Globalization and Business Information Systems (pentru a se vedea ca acesta coincide
cu cel obţinut la interogarea anterioară) şi pentru secţiunea Higher Education: Trends, Challenges
and Emerging Opportunities.

38
D E S I G N C U S T O M I Z A T I O N

Rezultatul interogărilor pentru cele două secţiuni

Cine a rezervat cameră dublă la hotelurile Traian sau Unirea?

Etapele pentru realizarea acestei interogări sunt:

1. Selectarea tabelelor şi câmpurilor din interogare cu ajutorul utilitarului Query Design (vezi figura
nr. ??).

39
D E S I G N C U S T O M I Z A T I O N

Tabelele şi câmpurile din interogare

2. Stabilirea condiţiilor: tipul camerei să fie Double, iar hotelul Unirea sau Traian (vezi figura nr. ???)

Scrierea condiţiilor

3. Afişarea rezultatului interogării ca în figura următoare (vezi figura nr. ???).

Rezultatul interogării: participanţii care au solicitat camere duble la hotelurile Unirea şi Traian

Fraza SQL prin care se poate realiza această interogare este următoarea:

SELECT [Nume participant], [Prenume participant], [Denumire hotel], [Data sosire], [Data
plecare], [Tip camera], [Numar locuri]

FROM Participanti P, Hoteluri H, Rezervari R


WHERE P.[Cod participant]=R.[Cod participant] AND R.[Cod hotel]=H.[Cod hotel] AND
([Denumire hotel]="Unirea" OR [Denumire hotel] ="Traian") AND [Tip camera]="Double";

Câţi participanţi sunt din fiecare organizaţie?

Pentru realizarea acestei interogări, în modul de lucru proiect, sunt necesare următoarele etape:

40
D E S I G N C U S T O M I Z A T I O N

1. Deschiderea utilitarului Query Design, selectarea tabelelor din care se va realiza interogarea,
respectiv, Organizaţii şi Participanţi, a câmpurilor necesare Denumire organizaţie şi Participanţi
(vezi figura nr. ???) prin operaţiuni similare celor explicate în etapele 1-3 la exemplul anterior.

Tabelele şi câmpurile din care va fi realizată interogarea

2. Afişarea liniei Totals în partea de jos a ferestrei prin acţionarea opţiunii cu acelaşi nume ( )
din grupul Show/Hide, meniul Design.

3. Selectarea operatorului pentru numărare Count pentru câmpul Nume participant şi gruparea datelor
după câmpul Denumire organizaţie (vezi figura nr. ???)

41
D E S I G N C U S T O M I Z A T I O N

Opţiunile de grupare şi numărare selectate pe linia Total

4. Afişarea rezultatelor prin utilizarea opţiunii Run (vezi figura nr. ???).

Rezultatul interogării: numărul de participanţi de la fiecare organizaţie

Fraza SQL pentru această interogare este următoarea:

42
D E S I G N C U S T O M I Z A T I O N

SELECT [Denumire organizatie], Count([Nume participant]) AS [Numar participanti]

FROM Organizatii O, Participanti P

WHERE O.[Cod organizatie] = P.[Cod organizatie]


GROUP BY [Denumire organizatie];

La ce hoteluri trebuie rezervate mai mult de cinci locuri?

Pentru a afla câte locuri trebuie rezervate la fiecare hotel se folosesc câmpurile Denumire hotel şi Număr
locuri din tabelele Hoteluri şi Rezervări grupate după Denumre hotel pentru care se însumează valorile din
coloana Număr locuri şi se aplică condiţia ca rezultatul să fie cel puţin cinci (vezi figura nr. ???).

Interogarea în modul Design View

Rezultatul interogării este prezentat în figura următoare.

Numărul de locuri care trebuie rezervate la fiecare hotel

Fraza SQL prin care se poate realiza această interogare este următoarea:

SELECT [Denumire hotel], Sum([Numar locuri]) AS [Numar locuri de rezervat]

43
D E S I G N C U S T O M I Z A T I O N

FROM Hoteluri H, Rezervari R

WHERE R.[Cod hotel]=H.[Cod hotel]


GROUP BY [Denumire hotel]

g) Realizarea formularului pentru actualizarea informaţiilor despre participanţii la


Conferinţa GEBA 2011

Formularele sunt utilizate pentru a asigura actualizarea informaţiilor din baza de date într-o manieră
prietenoasă şi plăcută, dar în acelaşi timp, mai rapidă deoacere permit introducerea, modificarea sau
ştergerea informaţiilor din mai multe tabele dintr-o singură fereastră.

Pentru realizarea formularelor în Microsoft Access pot fi utilizate una din următoarele modalităţi de
lucru existente în grupul de opţiuni Forms din meniul Create4 (vezi figura nr. ???):

Opţiuni pentru crearea formularelor în Microsoft Access

 Form – aplicaţia va genera automat un formular pentru tabela selectată care afişează implicit o
singură înregistrare pe ecran;

 Split Form – aplicaţia va genera automat un formular pentru tabela selectată care afişează, în
partea de sus a ferestrei, formularul cu o singură înregistrare, iar în partea de jos tabelul din
care a fost realizat;

 Multiple Items – generează automat un formular care afişează mai multe înregistrări pe ecran
(defineşte câte o linie pentru fiecare înregistrare);

 Pivot Chart – generează un formular sub forma unui grafic;

 Blank Form – crează un formular gol în care utilizatorul va putea “aduce” câmpurile dorite
din tabele;

 More Forms:
o Form Wizard – utilizatorul va fi asistat pas cu pas în realizarea formularului;

4
Airinei, D. (coord.), Instrumente software pentru afaceri. Aplicaţii practice, Editura Sedcom Libris, Iaşi, 2010, p. 398

44
D E S I G N C U S T O M I Z A T I O N

o Datasheet – generează un formular care afişează datele sub formă de tabel, similar
unei foi de calcul tabelar;

o Modal Dialog – crearea unui formular de tip ferestră de dialog care conţine implicit
butoanele OK şi Cancel;

o Pivot Table generează un formular sub forma unei tabele pivot;

 Form Design – realizarea formularului în modul de lucru proiectare fără asistenţa oferită
de Access.

Pentru formularul Actualizare informaţii participanţi este necesar să se realizeze două formulare, unul
principal care va conţine informaţii despre participanţi şi un subformular pentru informaţiilor despre
cazare.

Pentru construirea subformularului se parcurg următoarele etape:

1. Realizarea unui formular nou cu opţiunea Form Design din grupul de opţiuni Forms, meniul
Create;

2. Afişarea câmpurilor disponibile pentru a fi inserate în formular cu opţiunea Add Existing

Fields din grupul de opţiuni Tools, meniul Design. În partea dreaptă apare fereastra
Field List unde vor fi afişate tabelele şi câmpurile disponibile prin activarea butonului Show
all tables (vezi figura nr. ???).

45
D E S I G N C U S T O M I Z A T I O N

Afişarea tabelelor şi câmpurilor disponibile pentru realizarea formularului

3. Inserarea câmpurilor în formular se realizează prin tragere, tehnica Drag&Drop, din fereastra
Field List în fereastra formularului Form1 (vezi figura nr. ???).

Câmpurilde din suformular

4. Transformarea controlului Cod hotel din Text Box în Combo Box şi înlocuirea lui se realizează
prin alegerea opţiunii Change To...  Combo Box din meniul contextual al controlului
respectiv (vezi figura nr. ???);

Transformarea câmpului Cod hotel din Text Box în Combo Box

Înlocuirea codului hotelului cu denumirea sa se realizează utilizând proprietatea Row Source (vezi

figura nr. ???) după activarea ferestrei cu proprietăţi a controlului Property Sheet ( ) din
opţiunea cu aceeaşi denumire, grupul Tools.

46
D E S I G N C U S T O M I Z A T I O N

Selectarea sursei datelor pentru controlul curent

Sursa datelor pentru acest control este interogarea următoarea realizată în modul de lucru Design
View (vezi figura nr. ???):

SELECT Hoteluri.[Denumire hotel], Hoteluri.[Cod hotel]

FROM Hoteluri;

Interogarea care permite înlocuirea codului hotelului cu denumirea lui

Pentru a definitiva operaţiunea se scrie valoarea 2 în dreptul proprietăţii Bound Column care
realizează legătura dintre forumalar şi interogare (vezi figura nr. ????) şi se modifică explicaţia dată
informaţiilor afişate prin controlul respectiv din Cod hotel în Denumire hotel.

Stabilirea valorii câmpului de legătură la proprietatea Bound Column

47
D E S I G N C U S T O M I Z A T I O N

5. Ascunderea controlului Cod participant necesită selectarea opţiunii No la proprietatea Visible


aferentă controlului respectiv (vezi figura nr. ???).

Ascunderea controlului Cod participant

6. Dezactivarea liniei Record din partea


de jos a formularului se realizează prin selectarea opţiunii No la proprietea Record Navigation
(vezi figura nr. ???).

Dezactivarea liniei Record a formularului

7. Subformularul este salvat cu numele Rezervări şi este prezentat în formă finală în figura nr.
????.

Subformularul Rezervări în formă finală

Formularul principal conţine informaţii din tabelele Participanţi, Funcţii şi Organizaţii. Inserarea
câmpurilor în formular şi transformarea controalelor corespunzătoare câmpurilor Cod funcţie şi Cod
organizaţie din Text Box în Combo Box care să preia denumirea funcţiei, respectiv, denumirea
organizaţiei se realizează prin operaţiuni similare celor derulate pentru subformularul Rezervări.
Etapele care urmează sunt:

48
D E S I G N C U S T O M I Z A T I O N

1. Încadrarea datelor de identificare ale participanţilor într-un dreptunghi se realizează prin


selectarea controlului corespunător Rectangle ( ) din grupul Controls, meniul Design şi
desenarea lui pe formular. Titlul atribuit grupului creat prin intermediul controlului de tip Text

Box ( ) este Date de identificare participant (vezi figura nr. ???) şi este scris cu font
Calibri, dimensiunea 11 şi culoarea siglei FEAA prin utilizarea opţiunilor corespunzătoare din
grupul Font, meniul Design.

Particularizarea zonei care conţine datele de identifcare a participanţilor

2. Realizarea zonei de titlu a formularului prin următoarea succesiune de operaţiuni:

a. activarea zonei de titlu a formularului prin utilizarea opţiunii Title din grupul Controls,
meniul Design (vezi figura nr. ???).

Afişarea zonei de titlu a formularului

b. scrierea denumirii conferinţei Globalization and Higher Education in Economics and


Business Administration (GEBA) în controlul de tip Text Box afişat şi particularizarea lui
cu font Calibri, dimensiune 13, culoare gri;

49
D E S I G N C U S T O M I Z A T I O N

c. inserarea siglei FEAA în partea de sus a formularului prin utilizarea controlului Image
din grupul Controls meniul Design.

d. încadrarea titlului între două linii paralele prin utilizarea controlui Line ( ) din grupul
Controls, meniul Design. Îngroşarea liniilor se realizează prin alegerea dimensiunii de 6 pt
la proprietatea Border Width, iar schimbarea culorii prin alegerea ei la proprietatea Boder
Color (vezi figura nr. ???).

Particularizarea dimensiunii şi culorii liniei din antetul formularului

e. în final antetul formularului arată ca în figura nr. ???.

Antetul formularului în formă finală

3. Inserarea subformularului creat anterior în formularul principal se realizează prin utilizarea


opţiunii Subform/Subreport din grupul de opţiuni Controls. Din fereastra afişată se alege
opţiunea Use an existing form şi subformularul Rezervări şi se acţionează butonul Next (vezi
figura nr. ????).

50
D E S I G N C U S T O M I Z A T I O N

Selectarea subformularului Rezervări

În fereastra următoare poate fi atribuit un nume cu care va fi afişat subformularul în forumularul


principal Informaţii despre cazare, în acest caz (vezi figura nr. ???), şi se finalizează operaţiunea
acţionând butonul Finish.

51
D E S I G N C U S T O M I Z A T I O N

Atribuirea unui nume subformularului

4. Crearea butoanelor de comandă pentru adăugarea unui participant nou se realizează prin

utilizarea controlului Button ( ) din grupul de opţiuni Controls, meniu Design. Pe ecran
apare prima fereastră a Wizard-ului pentru crearea butoanelor de comandă din care se alege
categoria de acţiuni şi acţiunea pe care o va realiza butonul, Record Operation şi, respectiv,
Add New Record (vezi figura nr. ???).

52
D E S I G N C U S T O M I Z A T I O N

Alegerea categoriei de acţiuni şi acţiunii pe care o va realiza butonul de comandă

În următorul ecran este scris textul care va fi afişat pe buton, respectiv, Adăugare participant (vezi
figura nr. ???).

Scrierea textului de afişat pe butonul de comandă

53
D E S I G N C U S T O M I Z A T I O N

Urmează ultimul ecran care permite atribuirea unui nume butonului de comandă şi finalizarea
operaţiunilor.

Atribuirea unui nume butonului de comandă

Similar sunt create celelalte butoane de comandă pentru Ștergere participant, Activităţi sociale şi
divertisment (va deschide un formular pentru selectarea preferinţelor participanţilor la activităţile
respective), Listă participanţi (deschide un raport cu toţi participanţii), Salvare, Închidere şi pentru
navigare printre înregistrări.

Operaţiunile pentru care pot fi create butoane de comandă în Microsoft Access sunt prezentate în
tabelul următor (vezi Tabelul nr. ????).
Descrierea butoanelor de comandă ce pot fi utilizate în Microsoft Access

Categorie Operaţiune Descriere


Record Find Next Caută înregistrarea care conţine următoarea
Navigation valoare identică cu cea selectată
(butoane de Find Record Caută înregistrările care îndeplinesc un criteriu
navigare) specificat
Go To First Record Poziţionează cursorul pe prima înregistrare
Go To Last Record Poziţionează cursorul pe ultima înregistrare
Go To Next Record Poziţionează cursorul pe următoarea înregistrare
Go To Previous Poziţionează cursorul pe înregistrarea precedentă
Record
Record Add New Record Adaugă o nouă înregistrare
Operations Delete Record Şterge înregistrarea selectată
(operaţiuni asupra Duplicate Record Creează o înregistrare identică cu cea selectată
înregistrărilor) Print Record Tipăreşte înregistrarea curentă la imprimantă
Save Record Salvează o înregistrare

54
D E S I G N C U S T O M I Z A T I O N

Categorie Operaţiune Descriere


Undo Record Anulează ultima înregistrare introdusă
Form Operations Apply Form Filter Aplică un filtru
(operaţiuni asupra Close Form Închide formularul curent
formularelor) Edit Form Filter Editează un filtru
Open Form Deschide un formular
Open Page Deschide o pagină creată in Microsoft Access care
permite accesarea bazei de date on-line.
Print a Form Tipăreşte un formular la imprimantă
Print Current Form Tipăreşte formularul curent la imprimantă
Refresh Form Data Actualizarea informaţiilor afişate in formular
Report Mail Report Trimite raportul ca ataşament la un e-mail
Operations Preview Report Afişează raportul in modul previzualizare
(operaţiuni asupra Print Report Tipăreşte raportul la imprimantă
rapoartelor) Send Report to File Exportă raportul într-un alt raport, un document
MS Excel, un document MS Word sau într-un
fişier text
Application Quit Application Închide aplicaţia curentă
(operatiuni pentru Run Application Deschide o aplicaţie externă
aplicaţii) Run MS Excel Deschide Microsoft Excel
Run MS Word Deschide Microsoft Word
Miscellaneous Auto Dialer Apelează automat un număr de telefon
(alte operaţiuni) Print Table Tipăreşte tabelul selectat la imprimantă
Run Macro Apelează şi execută o macroinstrucţiune
Run Query Execută o interogare

5. Formularul este salvat cu numele Actualizare informaţii participanţi şi arată ca în figura


nr. ????.

55
D E S I G N C U S T O M I Z A T I O N

Formularul Actualizare informaţii participanţi

h) Realizarea rapoartelor necesare Conferinţei GEBA 2011

Rapoartele reprezintă rezultatul aplicaţiilor cu baze de date şi sunt utilizate pentru afişarea sau
tipărirea datelor din tabele sau interogări.5 Ele trebuie construite conform cerinţelor funcţionale
exprimate de beneficiarii aplicaţiei şi pot fi vizualizate pe ecran sau tipărite la imprimantă.

Pentru realizarea rapoartelor în Microsoft Access pot fi utilizate următoarele modalităţi de lucru,
disponibile în meniul Create, grupul de opţiuni Reports (vezi figura nr. ???):

Opţiuni pentru crearea rapoartelor în Microsoft Access

 Report – crearea unui raport din tabelul sau interogarea selectată;

 Label – lansarea asistentului pentru crearea de etichete;

 Blank Report – crearea unui raport gol în care pot fi inserate câmpuri şi controale;

5
Airinei, D. (coord.), Instrumente software pentru afaceri. Aplicaţii practice, Editura Sedcom Libris, Iaşi, 2010, p. 365

56
D E S I G N C U S T O M I Z A T I O N

 Report Wizard – crearea unui raport în modul de lucru asistat;

 Report Design – crearea unui raport în modul de lucru proiect.

Pentru realizarea unui raport pot fi utilizate mai multe modalităţi de lucru individuale sau combinate,
dintre cele prezentate anterior.

Etapele pentru realizarea listelor cu participanţii pe secţiuni sunt:

1. Construirea interogării care va sta la baza raportului:

SELECT Sectiuni.[Denumire sectiune], Participanti.[Nume participant], Participanti.[Prenume


participant], Comunicari.[Titlu comunicare]
FROM Sectiuni, Comunicari, [Detalii comunicari], Participanti

WHERE Sectiuni.[Cod sectiune] = Comunicari.[Cod sectiune] AND Comunicari.[Cod


comunicare] = [Detalii comunicari].[Cod comunicare] AND Participanti.[Cod participant] =
[Detalii comunicari].[Cod participant];

Rezultatul interogării este prezentat în figura următoare:

Rezultatul interogării din care va fi creat raportul

2. Construirea raportului prin selectarea interogării şi utilizarea opţiunii Report prezentată


anterior. Se obţine un raport ca în figura nr. ???.

57
D E S I G N C U S T O M I Z A T I O N

Raportul generat cu opţiunea Report

3. Gruparea datelor se realizează prin acţionarea opţiunii Add a group şi selectarea câmpului
Denumire secţiune din caseta afişată (vezi figura nr. ???).

Selectarea câmpului pentru gruparea datelor

Afişarea numărului de lucrări pe secţiune se realizează prin selectarea opţiunii Show in group footer la
categoria More  with Denumire sectiune totaled (vezi figura nr. ???).

58
D E S I G N C U S T O M I Z A T I O N

Afişarea liniei de totaluri pentru fiecare secţiune

Afişarea denumirii secţiunii şi a titlului atribuit controlului în zona de antet se realizează fie prin
mutare (Cut  Paste), fie prin tragere (Drag&Drop).

4. Editarea zonei de titlu (Report Header) prin aceleaşi operaţiuni ca la formulare după
deschiderea raportului în Design View.

5. Modificările la nivelul fontului din opţiunile corespunzătoare din meniul Design, grupul Font.

6. Inserarea unei linii sub denumirea coloanelor din antetul de pagină prin utilizarea controlului
Line din grupul de opţiuni Controls, meniul Design.

7. Raportul în formă finală este prezentat în figura următoare (vezi figura nr. ???).

Lista participanţilor pe secţiuni

Realizarea de liste care vor fi trimise la hoteluri pentru rezervarea locurilor de cazare presupune
următoarelor etape în modul de lucru proiect (Report Design):

59
D E S I G N C U S T O M I Z A T I O N

1. Realizarea interogării care va constitui sursa de date pentru raport. În acest caz se va utiliza o
interogare dinamică pentru a elabora liste individuale pentru fiecare hotel (vezi figura nr. ???).

Interogarea care va sta la baza raportului

2. Accesarea proiectantului de rapoarte prin activarea opţiunii Report Design din meniul Create,
grupul Reports. Se deschide fereastra Report1, denumire implicit atribuită de Microsoft
Access, în care vor fi plasate toate elementele raportului proiectat.

3. Selectarea sursei datelor se realizează, în acest caz, prin click dreapta pe raport şi alegerea
opţiunii Properties, din meniul contextual, sau prin accesarea opţiunii Property Sheet din
meniul Design. Pe ecran este afişată fereastra cu proprietăţile disponibile din care trebuie
selectat obiectul Report şi, ulterior, la proprietatea Record Source interogarea rezervari_2011
care conţine informaţiile ce vor fi introduse în raport (vezi figura nr. ???).

60
D E S I G N C U S T O M I Z A T I O N

Selectarea zonei pentru care se stabilesc proprietăţile

Deschiderea
proiectantului de
interogări pentru a
realiza o
interogare nouă

Selectarea interogării pe baza căreia se va realiza raportul

Selectarea sursei datelor raportului

4. După selectarea sursei datelor, afişarea câmpurilor disponibile din cadrul acesteia se realizează
prin acţionarea opţiunii Add Existing Fields care deschide fereastra Field List. Adăugarea
câmpurilor în raport şi aranjarea acestora se realizează prin tehnica Drag&Drop. Vor fi
inserate toate câmpurile cu excepţia denumirii hotelului care va fi adăugată în zona de titlu.
Raportul obţinut este prezentat în figura nr. ??? în modul de vizualizare Design View.

Raportul cu opţiunile de cazare după adăugarea câmpurilor

5. Afişarea zonei de titlu a raportului prin selectarea opţiunii Report Header/Footer din meniul
contextual al raportului (vezi figura nr. ???) sau din meniul Arrange  grupul de opţiuni
Show/Hide  Report Header/Footer.

61
D E S I G N C U S T O M I Z A T I O N

Afişarea zonelor de antet şi subsol ale raportului

După activarea acestor zone se inserează sigla facultăţii, denumirea şi perioada conferinţei, prin
operaţiuni similare celor prezentate la formular şi denumirea hotelului la care va fi trimisă lista, prin
tehnica Drag & Drop (vezi figura nr. ???). În momentul apelării opţiunii Print Preview pe ecran este
afişată o casetă de dialog prin care se solicită introducerea denumirii hotelului pentru care se
vizualizeză/tipăreşte lista şi care va apărea în zona de titlu a raportului.

Zona de titlu a raportului

6. Personalizarea antetului de pagină la nivel de font, din meniul Design, grupul Font, şi
delimitarea lui de restul raportului cu două linii paralele din acelaşi meniu, grupul Controls,
opţiunea Line.

7. Inserarea numărului de pagină prin utilizarea opţiunii Insert Page Number din meniul Design,
grupul Controls (vezi figura nr. ???).

62
D E S I G N C U S T O M I Z A T I O N

Inserarea numărului de pagină în raport

Din fereastra afişată, Page Numbers (vezi figura nr. ???), poate fi selectat formatul numărului de
pagină (Format), poziţia acestuia, în antetul sau subsolul paginii (Position), respectiv aliniat la stânga,
la dreapta sau centrat (Alignment) şi afişarea sau ascunderea numărului pe prima pagină a raportului
(Show Number on First Page).

Inserarea numărului de pagină centrat, în subsolul fiecărei pagini din raport

Editarea textului afişat la numărul paginii, din Page în Pagina se realizează la proprietate Control
Source (vezi figura nr. ???).

63
D E S I G N C U S T O M I Z A T I O N

Personalizarea textului afişat la numărul de pagină

8. Calcularea şi afişarea numărului total de locuri de rezervat la fiecarea hotel, la sfârşitul


raportului, se realizează prin inserarea unui control de tip Text Box în zona Report Footer. În
raport vor fi afişate două obiecte: o etichetă în care vom atribui un titlu căsuţei în care va fi
preluat rezultatul funcţiei, respectiv, Număr de locuri de rezervat şi o căsuţă text în care se
introduce funcţia pentru determinarea valorii vânzărilor: =Sum([Numar locuri]) ca în figura
nr. ????. În cazul în care nu se cunoaşte exact expresia unei funcţii, poate fi deschisă fereastra
ExpressionBuilder prin click dreapta pe controlul de tip text care trebuie să afişeze rezultatul şi
selectarea, din meniul contextul, a opţiunii Properties  Data  Control Source în care sunt
disponibile toate funcţiile ce pot fi utilizate în raport, câmpurile din tabele şi interogări etc.

Afişarea numărului total de locuri de rezervat în subsolul raportului

9. Salvarea raportului cu denumirea Rezervari hotel se realizează prin click pe butonul Office şi
acţionarea opţiunii Save. Vizualizarea raportului în modul Print Preview presupune selectarea
opţiunii corespunzătoare din meniul Home  View  Print Preview. Pe ecran este afişată o
casetă de dialog în care utilizatorul trebuie să introducă denumirea hotelului pentru care
dorește să vizualizeze/tiparească lista participanţilor (vezi figura nr. ???). Raportul în formă
finală este prezentat în figura nr. ????.

Caseta de dialog pentru denumirea hotelului

64
D E S I G N C U S T O M I Z A T I O N

Lista rezervărilor la Hotel Unirea

http://www.itlearning.ro/tutorials/tutorial/?tutorial=26&chapter=10

65

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