Sunteți pe pagina 1din 16

Curs 7 –3 SGBD-ul MICROSOFT ACCESS

Formulare
În cadrul aplicaţiilor cu baze de date, tabelele sunt actualizate prin intermediul unor machete
specializate numite formulare (forms). Formularele asigură:
a. Interfaţă prietenoasă cu utilizatorul final, realizată prin intermediul diferitelor controale
(butoane, casete text, etc.) sau alte elemente grafice incorporate;
b. Actualizarea concomitentă a mai multor tabele prin intermediul subformularelor;
c. Reguli de validare suplimentare celor definite la nivelul tabelelor.
Formularele din Access crează interfaţa cu utilizatorul pentru tabele, având avantajul
prezentării datelor într-un mod atrăgător şi organizat. Formularele sunt compuse dintr-o colecţie de
elemente constructive individuale denumite controale sau obiecte de control. Formularele pot conţine şi
subformulare.
Formularele se pot crea în două moduri: folosind Form Wizard sau prin proiectare cu Form
Design.

1. Crearea unui formular simplu cu Form Wizard


Această opţiune permite crearea unui formular care conţine câmpuri din unul sau mai multe
tabele sau interogări. Form Wizard creează structura generală a formularului şi adaugă controale de tip
casetă de text pentru afişarea şi editarea datelor.
Exemplu:
Crearea unui formular pentru introducerea notelor în tabela „Note” a bazei de date „Studenti”.
Se alege opţiunea Form Wizard, apoi din lista ascunsă Tables/Queries se selectează tabelele care vor
constitui sursa de date a formularului (Studenti, plane, note); din fiecare tabel se selectează din lista de
câmpuri disponibile, doar acele câmpuri care ne interesează:
Câmpurile selectate provin din trei tabele, aşa că Access va solicita modul în care dorim să fie afişate
datele:

Dacă se doreşte afişarea datelor organizate după studenţi, se va accepta opţiunea „by studenti” şi
opţiunea „Form with subform”. În acest caz Access va crea un formular principal în care este inclus un
subformular. Acest subformular este legat de formularul principal prin intermediul unui câmp comun
(Marca în acest caz). Selectând în continuare opţiunea Next, va fi solicitat aspectul subformularului:

care poate fi ales, în acest caz, „Tabular”.


Se va solocita în continuare stilul întregului formular, prin selectarea unui stil predefinit:
În continuare se vor solicita denumirile celor două formulare (cel principal şi cel secundar):

Subrutina Form Wizard creează automat şi formularul principal şi subformularul. După crearea
formularului aplicaţia Form Wizard afişează formularul în mod view:
Acest formular poate fi folosit imediat, dar de obicei se fac anumite modificări legate de aspectul
formularului.

2. Folosirea ferestrei Form Design


Pentru a modifica aspectul formularului creat se poate alege opţiunea Design View, pentru a deschide
Form Design. Fereastra conţine o bară cu instrumente „Toolbox”, care permite adăugarea în formular a
unor elemente de control.

Elementele ferestrei Form Design.

Sunt cinci secţiuni într-un formular: Form Header (antetul formularului), Page Header (antetul
paginii), Detail, Page Footer (subsolul paginii) şi Form Footer (subsolul formularului).
Fereastra Form Design conţine următoarele elemente principale:
- bara cu instrumente Form Design
- bara cu instrumente de formatare
- rigla gradată verticală şi orizontală
- bara de derulare verticală şi orizontală
- bara Form Header care defineşte înălţimea secţiunii care defineşte antetul formularului; această
bară va fi afişată doar dacă formularul conţine un antet şi un subsol. Secţiunea Form Header conţine
text, imagini şi alte controale în partea superioară a formularului. Ea apare numai pe prima pagină a
unui formular cu mai multe pagini; celelalte pagini ale formularului pot conţine opţional o secţiune
Page Header. (Secţiunile Page Header şi Form Header nu sunt vizibile în modul de afişare Form).
Pentru aplicarea acestor secţiuni se pot alege opţiunile din meniul View, Form Header/Footer
respectiv Page Header/Footer.
- Bara Form Detail desparte secţiunea Form Header de restul formularului. Pe această bară se
găsesc controale care pot afişa date din tabele şi interogări, plus elemente de date statice.
- Bara Form Footer determină înălţimea secţiunii subsolului formularului, având u rol asemănător
secţiunii Form Header. Dacă se tipăreşte un formular cu mai multe pagini, secţiunea Form Footer apare
numai în partea de jos a ultimei pagini; pentru paginile anterioare tipărite pot apărea opţional secţiuni
Page Footer.

Bara cu instrumente Form Design. Butoane standard

Buton Funcţie Opţiune din meniu


Afişare formular în mod Run View, Form View
Salvare File, Save
Tipăreşte toate înregistrările din tabel, folosind formularul afişat Nu există
pe ecran pentru formatarea datelor tipărite şi atributele curente
pentru tipărire
Previzualizare înainte de tipărire File, Print Preview
Verificare ortografie Tools, Spelling
Tăiere, copiere, lipire Edit, Cut, Copy,
Paste
Copiază atributele obiectelor selectate la un alt obiect de acelaşi Nu există
tip
Anulează ultima modificare făcută în formular Edit, Undo
Inserează un nou control Hyperlink sau modifică unul existent Insert, Hyperlink
Afişare listă câmpuri – sursă de date pentru formular View, Field List
Afişează sau închide caseta cu instrumente View, Toolbox
Aplică mai multe atribute de formatare predefinite pentru formular Format, Autoformat
Deschide editorul VBA View, Code
Afişează fereastra Properties ale unui control, sau pentru una View, Properties
dintre cele două secţiuni ale formularului
Afişează casetele Build Wizard pentru obiectul sau proprietatea Nu există
selectate de pe formular.
Afişează fereastra Database Window, 1 Database
Crează un nou obiect; pentru a vedea lista derulantă cu obiectele Nu există
ce pot fi create, se efectuează un click cu butonul din dreapta a
mouse-ului
Folosirea funcţiei Autoformat

Această funcţie permite aplicarea unui format predefinit unui întreg formular. Microsoft Access
are mai multe formate predefinite însă se poate defini şi un format propriu care apoi se va aplica cu
opţiunea Autoformat.
Crearea, personalizarea şi ştergerea stilurilor Autoformat
Pentru a crea un nou stil Autoformat sau pentru a modifica unul existent se efectuează următorii
paşi:
1. Se creează un formular modificându-i aspectul
2. Se selectează opţiunea Autoformat
3. Se selectează opţiunea Customize
4. Se selectează opţiunea “Create a new Autoformat based on the Form ‘studenti’

5. Se salvează noul stil creat care se va putea utiliza în continuare ca şi celelalte stiluri
predefinite.

Fereastra Properties a formularului

Se pot selecta proprietăţile unui formular cu ajutorul opţiunii properties, dar având formularul
selectat. Formularul se poate selecta de la opţiunea Select Form (meniul Edit), sau efectuând un clic de
mouse pe colţul stânga sus al formularului ca în figura următoare:
După selecţia formularului şi alegerea opţiunii “Properties” pentru formular, pe ecran va apare
fereastra Properties:

În această fereastră se pot vizualiza şi


modifica toate proprietăţile formularului.
Proprietăţile sunt grupate pe categorii:
- Proprietăţi referitoare la formatul
formularului (Pagina Format)
- Proprietăţi legate de sursa de date a
formularului (Pagina Data)
- Proprietăţi legate de evenimentele care
au loc asupra formularului când acesta
este activ (Pagina Event)
- Alte proprietăţi (Pagina Other).
Toate aceste proprietăţi se regăsesc în pagina All.

Modificarea culorii unui obiect


Culoarea de fundal Back Color se poate modifica cu ajutorul opţiunii Fill/Back Color de pe
bara cu butoane de formatare (Butonul ).
Schimbarea imaginii de fundal
Se poate folosi o imagine bitmap pentru fundal folosind orice fişier grafic (bmp, gif, jpg, pcx,
etc) Capacitatea de a folosi fişiere comprimate este nouă în Access 2000. Pentru a schimba
imaginea fundal a formularului se allege opţiunea Picture din fereastra de proprietăţi a
formularului (pagina Format).
Culoarea de prim plan (proprietatea Fore Color – butonul Font/Fore Color ) nu se poate
aplica decât controalelor.
Butonul Special Effects permite simularea unor efecte speciale pentru obiectele de
control de pe formular.
Butonul Line/Border Width permite stabilirea grosimii chenarului butoanelor.

Alinierea controalelor pe un formular

În fereastra Form Design există o grilă care poate fi utilizată pentru menţinerea alinierii pe
orizontală a obiectelor şi a controalelor. Pentru a determina alinierea controalelor la grilă se poate
selecta opţiunea Snap to Grid din meniul Format, chiar dacă grila nu este vizibilă. Pentru a determina
adaptarea dimensiunilor obiectelor de control la spaţierea grilei se poate alege Format, Size, To Grid.
Pentru adaptarea controlului la conţinut se poate alege opţiunea Format, Size, To Fit.
Alinierea unui grup de controale se poate face la stânga, la dreapta, sus, jos sau la grilă, alegând
opţiunea Align to din meniul Format.
Controalele pot fi grupate, degrupate, sau trimise în fundal (Back) cu opţiunile Group,
Ungroup, Send To Back din meniul Format.
Afişarea sau neafişarea grilei poate fi efectuată din meniul View, Grid. Pentru modificarea
spaţierii grilei unui formular se pot selecta din fereastra Properties a formularului opţiunile Grid X şi
Grid Y.

3. Prezentarea casetei cu instrumente Access. Controale în formulare.


Am văzut că controalele sunt obiecte grafice (elemente vizuale) ce sunt incluse în formulare
sau rapoarte, în scopul editării/afişării datelor sau executării unor acţiuni (ex.: etichete, casete text,
butoane, etc.). Adăugarea controalelor se poate face numai în etapele de creare sau modificare a
formularelor, astfel:
a) Din fereastra Toolbox se selectează butonul aferent controlului dorit;
b) Se descrie, cu ajutorul mouse-lui, o zonă dreptunghiulară pe suprafaţa formularului, definind astfel
poziţia şi dimensiunea noului control.
Controalele pot fi clasificate în funcţie de următoarele criterii:
a. Rol :
• Controale pentru editarea şi afişarea datelor (ex.: casetele text, etichetele etc.);
• Controale pentru executarea unor acţiuni (ex :butonul de comandă);
• Controale pentru afişarea graficelor (ex.: imagini, obiectele cadru etc.).
b. Sursa de date:
• Controale legate (bounds) - sunt controale ce afişează sau editează datele din câmpuri (ex.:
o casetă text ce va actualiza câmpul Data factură din tabela Factură)',
• Controale nelegate (unbounds) - sunt independente de realizările câmpurilor, aşadar, nu
permit actualizarea acestora, în general, din această categorie fac parte controalele calculate
(ex.: o casetă text ce va afişa totalul facturii), dar şi controalele care, prin însuşi specificul lor,
nu pot fi ataşate câmpurilor (ex.: butoanele de comandă, etichetele, cadrele etc.).
c. Structură:
• Controale elementare (butoane, casete text, etichete etc.)
• Controale container - înglobează alte controale (ex.: grup de opţiuni, Control Tag etc.).
Principalele controalele disponibile în fereastra Toolbox sunt prezentate mai jos:
Instrument Denumire Funcţie
Select Objects Permite selecţia unuia sau a mai multor obiecte de pe
formular
Control Wizards Activează sau dezactivează subrutinele Control Wizard,
care ajută la configurarea unor controale complexe
Label Crează un text static (descriptiv)
TextBox Crează o casetă pentru afişarea şi editarea datelor de tip
text
Option Group Crează un cadru în care se pot pune mai multe butoane
de comutare, de validare sau de opţiune
Toggle Button Crează un buton care trece din starea On (Yes) în Off
(No)
Option Button Crează un buton rotund care se comportă ca un Toggle
Button
Check Box Crează o casetă de validare care comută din starea On în
starea Off
Combo Box Crează o casetă combinată cu o casetă de text editabilă în
care se poate introduce o valoare, precum şi o listă
derulantă din care se poate selecta o valoare
List Box Crează o casetă cu listă derulantă din care se poate
selecta o valoare
Command Button Crează un buton care declanşează un eveniment care
poate executa o procedură VBA
Image Afişează o imagine statică într-un formular sau raport
Unbound Object Adaugă un obiect creat cu o altă aplicaţie, de ex. Paint
Bound Object Afişează conţinutul unui camp OLE dintr-o înregistrare,
dacă este un camp grafic
Page Break Produce un salt la pagină nouă la imprimantă
Tab Control Inserează un control cu etichete pentru crearea
formularelor cu etichete
Subform Introduce un subfromular în formularul principal sau un
subraport în raportul principal
Line Creează o linie dreaptă
Rectangle Creează un dreptunghi
More Controls Deschide o listă derulantă cu controale ActiveX,
controale care nu fac parte din Access

În timpul proiectării, un control poate fi selectat prin efectuarea unui click pe controlul respectiv
sau prin selectarea lui din lista Object din toolbar-ul Formatting. Selecţia multiplă se poate realiza prin
menţinerea apăsată a tastei <Shift> în timpul selctării fiecărui control.
Un control selectat poate fi mutat, redimensionat şi şters. Poziţionarea unui control selectat se
poate face fie folosind combinaţiile de taste <CTRL> + click pe fiecare obiect, fie cu ajutorul mouse-
ul. În acest ultim caz, pointer-ul mouse-ul trebuie deplasat pe marginea controlului până când va lua
forma  , după care, folosind tehnica drag-drop, obiectul poate fi mutat după voie. în mod similar,
pentru a muta un singur control dintr-un grup de controale selectate, mouse-u\ trebuie poziţionat pe
punctul de mutare, până când pointer-
ul va lua forma , după care controlul poate fi mutat folosind aceeaşi tehnică drag-drop.
Modificarea dimensiunii unui control selectat poate fi realizată fie prin folosirea tastei
<SHIFT> în combinaţie cu una din tastele de direcţionare ( ), fie cu ajutorul mouse-lui.
Ştergerea controlului selectat se face cu ajutorul tastei <Delete> sau prin selectarea opţiunii
Edit/Delete din meniul sistem.

Proprietăţile controalelor
Proprietăţile unui control sunt afişate în fereastra Properties, atunci când controlul respectiv
este selectat. Ca şi în cazul formularelor, metodele aferente controalelor sunt grupate în patru categorii
(Format, Data, Events, Other) şi sunt disponibile numai prin intermediul macro-urilor sau modulelor
VBA.
Cele mai uzuale proprietăţi sunt:
1. Proprietăţi din categoria Format:
• Format - specifică modelul (mască} de afişare a datelor (numai pentru casetele text);
• Decimal Places - indică numărul de zecimale cu care vor fi afişate datele (numai pentru
casete text);
• Caption - conţine textul afişat de control (numai pentru controalele needitabile: etichete,
butoane etc.);
• Visible - determină afişarea sau nu a controlului în timpul execuţiei formularului;
• Left - stabileşte coordonata orizontală a colţului stânga-sus al controlului;
• Top - indică poziţia pe verticală a colţului stânga-sus;
• Width - stabileşte lăţimea controlului;
• Height - stabileşte înălţimea obiectului;
• Back Style - determină modul de afişare: control normal sau transparent;
• Back Color - stabileşte culoarea de fundal a controlului;
• Special efect - specifică efectele tridimensionale ale controlului;
• Border Style - indică tipul linie folosit la trasarea bordurii controlului
(transparent, continuu, punctat etc.);
• Border Color - determină culoarea bordurii;
• Border Width - grosimea bordurii;
• F ore Color - culoarea textului afişat de control;
• Font Name - tipul fontului aferent textului din control;
• Font Size - dimensiunea fontului;
• Picture - specifică numele şi calea fişierului grafic ce va fi afişat în interiorul controlului (numai
pentru butoane şi controale de tip imagine);
• Text Align - stabileşte modul de aliniere a textului în interiorul controlului.
2. Proprietăţi din categoria Data:
• Control Source - conţine sursa de date a controlului şi poate fi:
 Numele unui câmp (pentru controale legate);
 O expresie de calcul precedată de semnul "=" (pentru casete text nelegate). Exemplu: o
casetă text ce va afişa valoarea unui material contractat, pe baza preţului şi a cantităţii
contractate, va conţine în proprietatea control source expresia: =[Cantitate] *[Preţ]
unde [Cantitate] şi [Preţ] sunt denumirile a două câmpuri (sau controale) din formular;
• Input Mask- indică formatul folosit la introducerea datelor (numai pentru casete text)
• Default value - specifică valoarea implicită (valoarea prin lipsă) a controlului. Exemplu:
pentru o casetă text destinată actualizării unui câmp de tip Date/Time, această proprietate poate conţine
funcţia Date(), care returnează data sistemului: =Date()
• Validation Rule - conţine regula după care se face validarea datelor introduse în control. La
execuţia formularului, mai întâi se verifică regula de validare a controlului şi apoi cea a câmpului
ataşat. Proprietatea validation rule poate fi folosită pentru definirea unor restricţii asupra câmpurilor
din tabele diferite;
• Validation Text - specifică mesajul ce va fi afişat, atunci când regula de validare este
încălcată;
• Enabled - activează sau dezactivează controlul. Un control dezactivat va fi inaccesibil la
execuţia formularului;
• Locked - serveşte la protejarea datelor afişate de control (controlul va deveni read-only).
3. Proprietăţi din categoria Event - conţin denumirile funcţiilor, procedurilor eveniment sau macro-
urilor, ce vor fi executate la declanşarea evenimentelor ataşate. Cele mai uzuale evenimente sunt:
Eveniment Poate fi Proprietatea Descriere
abandonat? eveniment
Apare înaintea salvării datelor din control în câmpul ataşat
BeforeUpdate Da Beforeilpdate acestuia. Evenimentul poate fi folosit pentru validarea
datelor introduse în control.
Se declanşează în momentul în care datele din control
Change Nu On Change
(casetă text sau casetă combinată sunt modificate.
Enter Nu On Enter Evenimentul este înregistrat în momentul accesării
Declanşat, atunci când se părăseşte controlul curent în
vederea accesării altui control din formular. Acest eveniment
Exit Da On Exit
nu apare în cazul în care controlul este în curs de editare şi se
activează o altă fereastră.
Apare în momentul focalizării controlului. Diferă de la
evenimentul On Enter prin aceea că se declanşează chiar şi
Got Focus Nu On Got Focus
atunci când utilizatorul comută între o altă fereastră şi
formularul curent.

Evenimentul este înregistrat la defocalizarea


Lost Focus Nu On Lost Focus
controlului (fie prin trecerea la alt control din cadrul
formularului, fie prin activarea altei ferestre).

Ordinea în care sunt declanşate evenimentele la activarea/dezactivarea unui control este următoarea:
Enter->GotFocus->Exit->LostFocus 4. Alte (Other) proprietăţi:
• Name - conţine numele controlului. La creare, fiecare control primeşte un nume unic, format
din tipul său plus un număr de ordine (ex.: TextBoxS). Utilizatorul poate modifica acest nume,
schimbându-1 cu unul mai sugestiv. Controalele legate, generate automat de Wizards, au numele
identice cu denumirile câmpurilor ataşate;
• Status Bar Text - specifică mesajul afişat în bara de stare, în momentul selectării controlului;
• Tab Stop - dacă este setată pe valoarea Yes, atunci controlul poate fi accesat cu ajutorul tastei TAB;
• Tab Index - specifică numărul de ordine al controlului, în funcţie de care acesta va fi accesat cu
ajutorul tastei TAB. Toate controalele editabile vor primi un număr de ordine unic, la creare. Acest
număr poate fi modificat fie prin această proprietate, fie prin opţiunea View-TabOrder din meniul
Access;
• Control Tip Text - conţine mesajul afişat într-o fereastră ToolTip.
Pentru crearea unor controale complexe (casete combinate, casete de tip listă etc.), proiectantul poate fi
asistat de programele control wizards.
Exemplu: Se doreşte ca adăugarea clientului în formularul Contractat să se facă prin selectarea acestuia
dintr-o listă ce conţine toţi clienţii firmei.
Pentru câmpurile ce îndeplinesc rolul de cheie externă, este recomandat ca în formulare să se
creeze controale de tip combo box sau list box, deoarece, datorită referinţei de integritate, cheile
externe nu admit decât valori comune cu cheile primare pe care le referă (sau valoarea nuli). Pentru
combo box-n proprietatea Limit To List trebuie setată pe valoarea Yes (nu se admit valori care nu există
în listă).
Pentru crearea unei casete combinate, prin intermediul Control Wizards, se parcurg următoarele
etape:
1. Se activează butonul Control Wizards din fereastra îoolbox (dacă nu este deja activat);
2. în aceeaşi fereastră, se selectează butonul combo box;
3. Se plasează mouse-ul în zona dorită pe formular şi se execută click;
4. în fereastra Combo Box Wizard, se selectează prima variantă (I want the combo box to look
up...).
Cele trei opţiuni afişate au următoarele semnificaţii:
a. Lista va conţine valorile unui câmp dintr-o tabelă sau interogare. Controlul este utilizat de regulă,
pentru actualizarea cheilor externe.
b. Caseta combinată conţine valori definite de utilizator. Acest tip este utilizat pentru câmpuri ce
prezintă un număr relativ redus de valori standard (unitate de măsură, valuta etc.).
c. Selectarea unei valori din listă determină saltul la înregistrarea aferentă în sursa de date a
formularului. Acest control este folosit în scopul facilitării operaţiilor de regăsire a înregistrărilor dintr-
un formular.
5. Se specifică tabela sau interogarea ce va furniza date listei de valori a controlului (tabela Client)
6. Se aleg câmpurile tabelei ce vor fi afişate în lista de valori.
7. Se ajustează dimensiunea fiecărei coloane din lista de valori (prima coloana este implicit ascunsă).
8. Se alege câmpul din sursa de date a formularului ce va fi actualizat cu valoarea selectată din listă
(câmpul ataşat controlului).
9. Se specifică eticheta ataşată controlului casetă.combinată:
Notă: Dacă, din diferite motive, Wizard Controls nu funcţionează (de exemplu, nu este setată această
opţiune le instalarea programului Access), proiectantul va fi nevoit să seteze singur proprietăţile
controlului combo box:
• Column Widths - specifică dimensiunea fiecărei coloane din listă (valorile sunt separate de
caracterul ";")
• List Width - conţine lăţimea totală a listei derulante.
• Row Source Type- specifică tipul sursei de date pentru valorile din listă (tabelă/interogare,
valori definite de utilizator, realizările unui câmp).
• Row Source- conţine denumirea tabelei, a interogării (sunt admise şi fraze SQL Select} sau valorile
predefinte de utilizator (separate de caracterul ";").
• Bound Column - va conţine numărul de ordine al coloanei care va actualiza câmpul ataşat
controlului (coloana respectivă poate fi ascunsă).
• Limit To List - permite sau nu utilizatorului să introducă valori ce nu există în lista controlului.
Setarea acestei proprietăţi pe Yes va conduce la declanşarea evenimentului On Not in List ori de câte ori
se introduce o valoare inexistentă în listă.
Formulare/subformulare
Rolul subformularelor este de a actualiza mai multe tabele prin intermediul unei singure ferestre
(formular). Subformularele sunt create în general pentru anumite tabele dependente (tabele în care
câmpul comun este cheie externă), din cadrul unei relaţii de tip 1-n.
Definirea unui subformular presupune înglobarea (includerea) unui formular în cadrul altui
formular, primul devenind subformular, iar al doilea, formular principal.
Avantajele oferite de utilizarea subformularelor constau în:
1. Posibilitatea actualizării mai multor tabele printr-un singur formular.
2. Sincronizarea automată a subformularului cu formularul principal, operaţie care constă în:
• actualizarea automată a câmpului cheie externă din subformular, cu valoarea deţinută de câmpul
cheie primară din formularul principal;
• filtrarea automată a înregistrărilor din subformular, în funcţie de valoarea cheii primare din
formularul principal.
Pentru definirea unui subformular se procedează astfel:
1. Se deschide în modul Design, formularul ce se doreşte a fi formular principal;
2. Se activează fereastra bazei de date;
3. Folosind tehnica drag&drop se depune formularul ce se dore;te a fi subformular, ]n interiorul
formularului principal.
4. Se salvează formularul principal.
Formularele conţin controale de mai multe tipuri. Din acest moitiv un formular este considerat
drept o colecţie de controale. În Access, accesarea unui element al unei colecţii , se face prin expresii
de genul:
NumeColecţie!NumeElement (Forms!Produse1....) sau NumeColecţie[Index] sau
NumeColectie(“NumeElement”)
SubFormularele nu apartin acestei colectii, aşa încât pentru a afce referire la un subformular trebuie
folosită expresia:
NumeControlSubform.Form!NumeControl
unde NumeControlSubform este numele controlului de tip

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