Teorie Access

76
DESIGN CUSTOMIZATION Microsoft Access 1 Chapter 1

Transcript of Teorie Access

Page 1: Teorie Access

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

Microsoft Access

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.

MMicrosoft 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

1

Chapter

1

Page 2: Teorie Access

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

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.

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ă

Nume ţarăAutoNumberText

Long Integer50

Cheia primară este Cod ţarăCheia candidat este Nume ţară

Localităţi Cod localitateDenumire localitateCod ţară

AutoNumberTextNumber

Long Integer60Long Integer

Cheia primară este Cod localitate

Participanţi

Cod participantNume participantPrenume participantAdresăTelefonE-mailCod localitateCod funcţie

AutoNumberTextTextTextTextTextNumberNumber

Long Integer40401001460Long IntegerLong Integer

Cheia primară este Cod participant

Secţiuni Cod secţiuneDenumire secţiune

AutoNumberText

Long Integer150

Cheia primară este Cod secţiune

Comunicări

Cod comunicareTitlu comunicareAbtract

AutoNumberTextMemo

Long Integer255

Cheia primară este Cod comunicare

Funcţii Cod funcţieDenumire funcţie

AutoNumberText

Long Integer30

Cheia primară este Cod funcţie

Organizaţii Cod organizaţieDenumire organizaţieAdresăCod localitate

AutoNumberTextTextNumber

Long Integer150100Long Integer

Cheia primară este Cod organizaţie

2

Page 3: Teorie Access

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ţiiActivităţi sociale

Cod activitateDenumire activitateDescriere activitate

AutoNumberTextMemo

Long Integer100255

Cheia primară este Cod activitate

Locuri activităţi

Cod loc activitateDenumire loc activitateTip loc activitateAdresăTelefonFaxCapacitatePersoana de contactFotografieObservaţii

AutoNumberTextTextTextTextTextNumberTextOle ObjectMemo

Long Integer5020401414Byte40

255

Cheia primară este Cod loc

Hoteluri Cod hotelDenumire hotelAdresaTelefonE-mailFaxCategorieCapacitatePersoana contact

AutoNumberTextTextTextTextTextNumberNumberText

Long Integer5040146014ByteInteger40

Cheia primară este Cod hotel

Rezervări Cod participantCod hotelDată rezervareDată sosireNumăr locuriDată plecareTip camerăConfirmare rezervare

NumberNumberDate/TimeDate/TimeNumberDate/TimeTextYes/No

Long IntegerLong Integer

Byte

15

Cheia primară este formată din Cod participant şi Cod hotel

Participare activităţi

Cod activitateCod participantDată activitateOră activitateConfirmare participareCod loc activitate

NumberNumberDate/TimeDate/TimeYes/NoNumber

Long IntegerLong Integer

Long Integer

Cheia primară este formată din Cod activitate şi Cod participant

Detalii comunicări

Cod comunicareCod participantPozitie participant

NumberNumberNumber

Long IntegerLong IntegerByte

Cheia primară este formată din Cod comunicare şi Cod 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;

3

Page 4: Teorie Access

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

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;

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.

4

Page 5: Teorie Access

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

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:

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

Page 6: Teorie Access

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

6

Page 7: Teorie Access

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

Șabloane pentru bazele de date

Denumirea bazei 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

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

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ă.

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,

7

Page 8: Teorie Access

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

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).

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ă

8

Page 9: Teorie Access

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

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

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.

9

Page 10: Teorie Access

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

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. ???).

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.

10

Page 11: Teorie Access

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

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.

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,

11

Page 12: Teorie Access

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

Caracter

Descriere

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ă.

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ă);

12

Page 13: Teorie Access

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

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. ???).

13

Page 14: Teorie Access

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

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

14

Page 15: Teorie Access

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

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.

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

15

Page 16: Teorie Access

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

mouse-ului în câmpul Denumire ţară şi din zona General, în dreptul proprietăţii Indexed este selectată opţiunea Yes (No Duplicates).

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. ??).

16

Page 17: Teorie Access

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. ???).

17

Page 18: Teorie Access

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. ???).

18

Page 19: Teorie Access

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.

19

Page 20: Teorie Access

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;

20

Page 21: Teorie Access

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

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. ???).

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.

21

Page 22: Teorie Access

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

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. ???).

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.

22

Page 23: Teorie Access

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. ???).

23

Page 24: Teorie Access

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).

24

Page 25: Teorie Access

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. ???).

25

Page 26: Teorie Access

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. ???).

26

Page 27: Teorie Access

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. ???).

27

Page 28: Teorie Access

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

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

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. ???).

28

Page 29: Teorie Access

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;

29

Page 30: Teorie Access

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

30

Page 31: Teorie Access

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

31

Page 32: Teorie Access

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

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.

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

32

Page 33: Teorie Access

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

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

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.

33

Page 34: Teorie Access

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

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.

Î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);

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

34

Page 35: Teorie Access

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

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?

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

35

Page 36: Teorie Access

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

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.

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. ???).

36

Page 37: Teorie Access

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

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. ???).

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. ????).

37

Page 38: Teorie Access

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

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.

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. ???).

38

Page 39: Teorie Access

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

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

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. ???).

39

Page 40: Teorie Access

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

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.

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:

40

Page 41: Teorie Access

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

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

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. ???).

41

Page 42: Teorie Access

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

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 RWHERE 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:

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.

42

Page 43: Teorie Access

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

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. ???)

43

Page 44: Teorie Access

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:

44

Page 45: Teorie Access

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 PWHERE 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:

45

Page 46: Teorie Access

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

SELECT [Denumire hotel], Sum([Numar locuri]) AS [Numar locuri de rezervat]FROM Hoteluri H, Rezervari RWHERE 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:

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

46

Page 47: Teorie Access

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

o Form Wizard – utilizatorul va fi asistat pas cu pas în realizarea formularului;

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. ???).

47

Page 48: Teorie Access

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. ???);

48

Page 49: Teorie Access

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

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.

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;

49

Page 50: Teorie Access

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

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

5. Ascunderea controlului Cod participant necesită selectarea opţiunii No la proprietatea Visible aferentă controlului respectiv (vezi figura nr. ???).

Ascunderea controlului Cod participant

50

Page 51: Teorie Access

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

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:

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

51

Page 52: Teorie Access

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

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;

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

52

Page 53: Teorie Access

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

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. ????).

53

Page 54: Teorie Access

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.

54

Page 55: Teorie Access

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. ???).

55

Page 56: Teorie Access

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ă

56

Page 57: Teorie Access

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 DescriereRecord Navigation(butoane de navigare)

Find Next Caută înregistrarea care conţine următoarea valoare identică cu cea selectată

Find Record Caută înregistrările care îndeplinesc un criteriu 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 Record

Poziţionează cursorul pe înregistrarea precedentă

57

Page 58: Teorie Access

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

Categorie Operaţiune DescriereRecord Operations(operaţiuni asupra înregistrărilor)

Add New Record

Adaugă o nouă înregistrare

Delete Record Şterge înregistrarea selectatăDuplicate Record

Creează o înregistrare identică cu cea selectată

Print Record Tipăreşte înregistrarea curentă la imprimantă

Save Record Salvează o înregistrareUndo Record Anulează ultima înregistrare introdusă

Form Operations (operaţiuni asupra formularelor)

Apply Form Filter

Aplică un filtru

Close Form Închide formularul curentEdit Form Filter

Editează un filtru

Open Form Deschide un formularOpen 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 Operations (operaţiuni asupra rapoartelor)

Mail Report Trimite raportul ca ataşament la un e-mail

Preview Report Afişează raportul in modul previzualizare

Print Report Tipăreşte raportul la imprimantă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(operatiuni pentru aplicaţii)

Quit Application

Închide aplicaţia curentă

Run Application

Deschide o aplicaţie externă

Run MS Excel Deschide Microsoft ExcelRun MS Word Deschide Microsoft Word

Miscellaneous(alte operaţiuni)

Auto Dialer Apelează automat un număr de telefonPrint Table Tipăreşte tabelul selectat la

imprimantăRun Macro Apelează şi execută o

macroinstrucţiuneRun Query Execută o interogare

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

58

Page 59: Teorie Access

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;

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

59

Page 60: Teorie Access

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

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

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], ParticipantiWHERE 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. ???.

60

Page 61: Teorie Access

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. ???).

61

Page 62: Teorie Access

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. ???).

62

Page 63: Teorie Access

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

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):

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

63

Page 64: Teorie Access

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

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

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. ???).

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.

64

Page 65: Teorie Access

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

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.

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

65

Page 66: Teorie Access

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

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. ???).

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. ???).

66

Page 67: Teorie Access

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. ????.

67

Page 68: Teorie Access

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

Caseta de dialog pentru denumirea hotelului

Lista rezervărilor la Hotel Unirea

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

68