Documente Academic
Documente Profesional
Documente Cultură
CURS7BD
CURS7BD
Formularele asigură:
• Interfaţă prietenoasă cu utilizatorul final, realizată prin intermediul diferitelor controale
(butoane, casete text, etc.) sau alte elemente grafice incorporate;
• Actualizarea concomitentă a mai multor tabele prin intermediul subformularelor;
Formular Datasheet
Cursul 10 BD 1 / 10
• Chart Form - afişează
date sub forma unor
grafice generate cu
ajutorul utilitarului
Microsoft Graph Chart.
Acest tip de formulare nu
permit actualizarea
datelor afişate.
Cursul 10 BD 2 / 10
Un formular are următoarea
structură:
Bara de titlu
a. Bara de titlu
b. Bordura
c. Barele de defilare
d. Antetul formularului
Secţiuni
(Form Header)
e. Antetul de pagină (Page Header) – este o zonă ce apare numai când formularul este tipărit la
imprimantă. Pentru a fi disponibilă în cursul proiectării, se selectează opţiunea View-
PageHeader/Footer din meniul Access.
f. Secţiunea de detaliu (Detail) - va conţine toate controalele necesare afişării/editării înregistrărilor.
În timpul execuţiei, formularul poate conţine în această zonă un control numit selector de
înregistrare (record selector) situat în marginea din stânga a formularului. Acest control permite:
• afişarea stării înregistrării curente (în curs de editare, înregistrare nouă, înregistrare blocată etc.)
• selectarea înregistrării curente în vederea ştergerii sau copierii acesteia.
Cursul 10 BD 3 / 10
limbajul VBA. Metodele pot fi accesate (atât la proiectare, cât şi în cursul execuţiei) numai prin
acţiuni macro sau din cadrul unor proceduri/funcţii VBA.
În cadrul ferestrei Properties, proprietăţile formularului curent sunt împărţite în patru categorii:
• Format – conţine atribute privitoare la dimensiune, aspect, coordonatele de afişare ale
formularului etc.;
• Data – grupează proprietăţi referitoare la sursa de date şi înregistrările aferente;
• Event – conţine evenimentele ce pot fi tratate fie prin proceduri sau funcţii scrise în limbajul
VBA, fie prin macro-uri. Proprietăţile acestei categorii se numesc proprietăţi eveniment şi au
denumiri asemănătoare cu cele ale evenimentelor cărora le sunt ataşate.
• Other – conţine diverse alte proprietăţi.
Caseta de elecţie a
formularului
Build
Wizard
Cursul 10 BD 4 / 10
• Control Box – indică prezenţa meniului sistem în bara de titlu;
• Min Max Buttons – dezactivează sau activează fie ambele, fie unul din butoanele de minimizare
şi maximizare din bara de titlu;
• Close Button – indică prezenţa butonului de închidere (Close) în bara de titlu;
2. Din categoria Data:
• Record Source – conţine sursa de date a formularului (tabel sau interogare). Această proprietate
poate conţine chiar şi o comanda SQL (sunt admise numai cererile de selecţie).
Notă: Un formular va avea ca sursă de date o interogare dacă:
> afişează în format Datasheet sau Tabular, controale nelegate;
> afişează câmpuri din mai multe tabele.
• Filter – conţine criteriul de selecţie care se va aplica înregistrărilor din formular. Condiţia de
filtrare este o clauză SQL WHERE, însă fără să conţină cuvântul WHERE.
Notă: Pentru ca filtrul să fie activ, proprietatea FilterOn trebuie setată pe valoarea True
(setare ce se poate face numai din VBA).
• Order By – permite specificarea câmpurilor după care vor fi sortate înregistrările din formular.
Sintaxa este identică cu sintaxa clauzei SQL – OrderBy.
Notă: Pentru ca operaţia de ordonare să se execute automat la deschiderea formularului,
proprietatea OrderByOn trebuie setată pe True (proprietatea este disponibilă numai din
VBA !).
• Data Entry – dacă este setată pe valoarea Yes, formularul nu va afişa, la deschidere,
înregistrările existente. Proprietatea este utilă pentru formularele ce vor permite numai
adăugarea de înregsitrări.
• Record Locks – specifică dacă şi ce înregistrări vor fi blocate pentru alţi utilizatori (blocarea se
poate face fie pentru toate înregistrările, fie numai pentru înregistrarea curentă).
3. Proprietăţi din categoria Event: conţin denumiri de funcţii, proceduri eveniment sau macro-uri ce vor
fi executate la apariţia evenimentelor respective. Apar astfel trei posibilităţi:
Funcţie utilizator
Procedură
eveniment
Macro
Cursul 10 BD 5 / 10
b) eveniment tratat printr-o procedură eveniment - proprietatea eveniment va conţine expresia
EventProcedure, iar editarea procedurii se poate face prin acţionarea butonului BuildWizard, la
invocarea căruia Access deschide editorul de module, în care generează o procedură vidă sub
forma:
Private Sub Form_numeEveniment ([ListăParametriiFormali])
End Sub
Între cele două linii, utilizatorul poate insera propriile instrucţiuni.
c) eveniment tratat printr-un macro: proprietatea eveniment va conţine numele macro-ului.
Notă: În momentul apariţiei lor, anumite evenimente pot fi abandonate. Acest lucru este posibil
din cadrul:
• Procedurilor eveniment, prin atribuirea valorii 1 (True) parametrului Cancel
(dacă acesta există în lista de parametrii a procedurii eveniment);
• Funcţiilor utilizator, prin apelarea metodei CancelEvent a obiectului DoCmd
(vezi capitolul destinat VBA);
• Macro-lor, prin acţiunea CancelEvent (vezi capitolul Obiecte de tip macro)
Controale în formulare
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.
Cursul 10 BD 6 / 10
Buton Control Descriere
Butonul- Sunt controale folosite pentru editarea unor valori de tip
comutator (Toggle logic (Yes/No, On/Off, True/False).
Button),
Butonul de
opţiune
(Option Button),
Caseta de
validare
(Check Box)
Grupul de opţiune Este un control container folosit pentru afişarea unui set
(Option Group) de alternative şi poate grupa mai multe tipuri de
controale (buton de opţiune, casetă de validare etc.)
Delimitator de Controlul Page Break împarte formularul în mai multe
pagină pagini care pot fi vizualizate cu ajutorul tastelor
(Page Break) <PageUp> şi <PageDown>. Poate fi, de asemenea,
folosit pentru salt la pagină nouă, în cazul tipăririi
formularului.
Index Controlul de tip Tab este un control container ce permite
(Control Tab) gruparea altor controale în mai multe pagini, atunci
când formularul conţine un număr prea mare de
controale.
Dreptunghi Controalele servesc la trasarea diverselor figuri
(Rectangle) geometrice.
Linie
(Line)
Un control selectat poate fi mutat, redimensionat şi şters. Poziţionarea unui control selectat se
poate face fie folosind combinaţiile de taste <CTRL> + Í / Î / Ï / Ð , fie cu ajutorul mouse-lui.
În acest ultim caz, pointer-ul mouse-lui 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-ul 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.
Cursul 10 BD 7 / 10
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:
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:
Poate fi Proprietate
Eveniment abandonat a Descriere
? eveniment
Apare înaintea salvării datelor din control în
BeforeUpda BeforeUpd câmpul ataşat acestuia. Evenimentul poate fi
Da
te ate folosit pentru validarea datelor introduse în
control.
Cursul 10 BD 8 / 10
Poate fi Proprietate
Eveniment abandonat a Descriere
? eveniment
Se declanşează în momentul în care datele
Change Nu On Change din control (casetă text sau casetă
combinată) sunt modificate.
Evenimentul este înregistrat în momentul
Enter Nu On Enter accesării controlului în vederea editării datelor
(înaintea activării sale).
Declanşat, atunci când se părăseşte controlul
curent în vederea accesării altui control din
Exit Da On Exit formular. Acest eveniment 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 evenimentul On Enter prin aceea
On Got
Got Focus Nu că se declanşează chiar şi atunci când
Focus
utilizatorul comută între o altă fereastră şi
formularul curent.
Evenimentul este înregistrat la defocalizarea
On Lost controlului (fie prin trecerea la alt control din
Lost Focus Nu
Focus 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.: TextBox5). Utilizatorul poate modifica acest nume,
schimbându-l 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;
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;
Cursul 10 BD 9 / 10
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.
Orice modificare făcută ulterior asupra subformularului, ca obiect de tip formular, se va reflecta
automat şi în formularul principal. Sincronizarea formular-subformular se realizează prin
intermediul câmpurilor de legătură: cheia primară din sursa de date aferentă formularului principal
şi cheia externă din sursa de date aferentă subformularului. Denumirile acestor câmpuri sunt
înscrise automat de Access în proprietăţile Link Master Field şi Link Child Field ale controlului de
tip subform din formularul principal.
Cursul 10 BD 10 / 10