Sunteți pe pagina 1din 10

CURSUL 7(Obiecte tip formular)

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;

• Reguli de validare suplimentare celor definite la nivelul tabelelor.

Clasificarea formularelor se poate face în funcţie de următoarele criterii:


a. După sursa de date:
• Formulare legate (bound)- permit afişarea sau actualizarea datelor din tabele;
• Formulare nelegate (unbound)- destinate afişării sau editării unor date care nu sunt stocate în
tabele (mesaje, informaţii despre sistem, date necesare afişării unui raport etc.)
b. În funcţie de modul de afişare, sunt
disponibile următoarele tipuri de formulare:
• Single form- afişează, în scopul
actualizării, o singură înregistrare la un
moment dat (înregistrarea curentă);
• Tabular form- permit vizualizarea
concomitentă a mai multor înregistrări
(înregistrarea curentă putând fi actualizată)

Formular de tip Single

Formular de tip Tabular


• Datasheet form- afişează datele în vederea actualizării într-un format asemănător foilor de
calcul. Deosebirea fundamentală dintre acest tip şi formularele Tabular constă în aceea că
formularele Datasheet nu permit decât afişarea controalelor asociate câmpurilor (nu sunt afişate
spre exemplu butoane de comandă, casete de opţiuni etc.)

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.

Formular tip Chart

b. După modul de interacţiune cu alte ferestre:


• Formulare modale – nu permit accesarea obiectelor conţinute în alte ferestre până când nu sunt închise
(close) sau ascunse (hide). Se mai numesc şi formulare de dialog.
• Formulare nemodale – permit activarea/deschiderea altor ferestre
Crearea şi modificarea formularelor
Etapele necesare creării unui formular
sunt următoarele:
1. Se acţionează butonul New din
fereastra bazei de date pentru
activarea asistentului New Form.
2. Se optează pentru una din
variantele: Design View,Form
Wizard, AutoForm: Columnar,
AutoForm: Tabular, AutoForm:
Datasheet, Chart Wizard sau
Pivot Table Wizard.
3. Se stabileşte sursa de date (tabel Asistentul New Form
sau interogare).
Tehnica cea mai utilizată la crearea unui formular este următoarea: într-o primă fază, formularele
sunt generate prin Form Wizard sau AutoForm, după care sunt deschise în modul Design pentru a fi
modificate, astfel încât să corespundă cât mai bine cerinţelor utilizatorului final.
Proiectarea formularelor prin varianta Form Wizard presupune următoarele etape (atunci când sursa
de date este o tabelă):
1. Se selectează câmpurile din sursa de date, ce vor fi afişate în formular:
2. Se alege tipul de formular (Columnar, Tabular etc.):
3. Se stabileşte imaginea de fundal pentru formular (Stone, Standard etc.)
4. În ultima etapă se defineşte titlul formularului, precum şi modul în care va fi deschis
formularul (pentru execuţie sau pentru modificare):

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)

Pentru ca această zonă să


fie disponibilă în timpul
proiectării, se selectează
Bare de
optiunea View- defilare
FormHeader/Footer, din
meniul Access.
Elementele unui formular

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.

g. Subsolul de pagină Selector de


(Page Footer) – este afişat înregistrare
numai la tipărirea
formularului şi poate
conţine data curentă,
numărul de pagină etc.
Butoane de
h. Subsolul formularului navigare
(Form Footer) – are aceleaşi
caracteristici cu zona de
antet şi poate să conţină, spre
exemplu, totalul general sau
diverse alte controale
(butoane pentru salvare, Structura unui formular la execuţie
adăugare, ştergere de
înregistrări etc).
i. Butoane de navigare - sunt afişate numai în timpul execuţiei formularului şi pot fi folosite pentru
deplasări în cadrul înregistrărilor.
Proprietăţile obiectelor Forms
Proprietăţile formularelor pot fi accesate fie prin intermediul ferestrei Properties (activată prin
opţiunea View-Properties, din meniul Access), fie prin intermediul obiectelor de tip macro sau

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

Zona din afara


formularului

Posibilităţi de selecţie a formularului Fereastra Properties

Pentru ca fereastra Properties să afişeze proprietăţile formularului, acesta trebuie în prealabil


selectat fie prin opţiunea Edit->Select Form din meniul Access, fie printr-un clic pe caseta de
selecţie a formularului (View->Ruler) sau pe zona din afara acestuia.
Cele mai uzuale proprietăţi sunt:
1. Din categoria Format:
• Caption – conţine titlul formularului ce va apărea în bara de titlu a acestuia;
• Default View – specifică modul implicit de afişare, folosit la execuţia formularului (Single
Form, Tabular Form, Datasheet);
• Scroll Bars - setează barele de defilare vizibile în cursul execuţiei (bara orizontală, bara
verticală, amândouă sau nici una);
• Record Selectors – afişează sau nu selectorul de înregistrare în timpul execuţiei formularului;
• Navigation Buttons – specifică dacă formularul va conţine butoanele de navigare în cursul
execuţiei sale;
• Border Style – specifică tipul bordurii. Setarea acestei proprietăţi va avea efect şi asupra
comportamentului formularului:
> None – formular fără bordură (formularul nu va putea fi redimensionat la execuţie);
> Thin – bordură subţire (formularul nu va putea fi redimensionat);
> Sizable– bordura implicită (formularul poate fi redimensionat);
> Dialog – bordura subţire (formularul nu poate fi redimensionat iar bara de titlu va
conţine doar butonul pentru închidere Close obţinându-se astfel un formular de tip
Dialog Box).

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

Posibilităţi de tratare a evenimentelor

a) eveniment tratat printr-o funcţie - proprietatea eveniment va conţine o expresie de forma:


=NumeFuncţie([ListaParametrii])
Exemplu: Funcţia ActualizeazaContor (definită într-un modul) poate fi ataşată proprietăţii On
Current, în vederea afişării înregistrării curente (atunci când formularul nu conţine butoanele de
navigare):
Function ActualizeazaContor(Frm As Form, Ctrl As TextBox)
Ctrl.Value = Frm.CurrentRecord ' Seteaza valoarea controlului
End Function

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.

Principalele controalele disponibile în fereastra Toolbox sunt :


Buton Control Descriere
Indicator Instrument folosit la proiectarea controalelor (selecţie,
(Select Objects) repoziţionare, redimensionare, etc.)

Asistenţi Activează/dezactivează utilitarele Wizards folosite la


(Control Wizards) generarea unor controale mai complexe (casete
combinate, casete listă, grupuri de opţiune, etc.)
Eticheta Control cu conţinut fix, folosit pentru afişarea unor
(Label) mesaje. În general, Access generează câte o etichetă
pentru majoritatea controalelor definite de utilizator.
Caseta text Control utilizat pentru afişarea şi editarea datelor.
(Text Box)
Butonul de Serveşte la declanşarea unor acţiuni:
comandă
(Command Button)
Caseta listă Permite selectarea unei valori dintr-o listă.
(List Box)
Caseta combinată Îmbină proprietăţile unei casete text cu cele ale unei
(Combo Box) casete de tip listă (permite atât editarea unei valori, cât
şi selectarea acesteia dintr-o listă derulantă). Caseta
combinată este un control ce se foloseşte frecvent
pentru actualizarea cheilor externe.

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)

Imagine Permite afişarea conţinutului unor fişiere grafice (.bmp,


(Image) .gif, .wmf, .pcx, etc.), pe fundalul formularului.
Obiect cadru Este un control ce va conţine un obiect (grafic,
nelegat multimedia, document etc.), importat dintr-o altă
(Unbound Object aplicaţie Windows (Word, Excel, Paint, Sound Recorder
Frame) etc.) prin tehnologia OLE (Object Linking and
Embedding).
Obiect cadru legat Conţine un obiect stocat într-un câmp de tip OLE din
(Bound Object tabela sursă.
Frame)
Subformular Permite definirea unui subformular în cadrul formularului
(Subform) curent.

Alte controale Afişează alte controale înregistrate, ce pot fi ataşate


(More Controls) formularului (controale ActiveX etc.)

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:

1. Proprietăţi din categoria Format:


• 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;
• Fore 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, Validation Rule, Validation Text, ca si la tabele;
• 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:
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

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