Académique Documents
Professionnel Documents
Culture Documents
Formulare
105
4. Formulare
Fig. 4.2.
106
4. Formulare
5. se alege tipul de formular i anume opiunile privind forma de poziionare a datelor din formular; opiunile sunt: Columnar Tabular Datasheet Justified PivotTable PivotChart 6. se stabilete imaginea de fundal pentru formular (Stone, Standard etc.); 7. n ultima etap se definete titlul formularului, precum i modul n care va fi deschis formularul (figura 4.3.):
Fig. 4.3. Exist posibilitatea opiunii asupra deschiderii noului formular: Open the form to view or enter information pentru execuie; Modify the form's design pentru eventuale modificri.
107
4. Formulare
Unele din tipurile Autoform existente: Columnar prezint valorile cmpurilor selectate n rubrici ncolonate (figura 4.4.); Tabular prezint valorile n mod tabelar (pe coloane) (figura 4.5.); Datasheet este identic cu forma Design View de la crearea tabelelor (figura 4.6.); Justified prezint valorile cmpurilor selectate n rubrici ncolonate (figura 4.7.);
108
4. Formulare
109
4. Formulare
Fig. 4.8. Tabelele bazei de date S se completeze tabelele ageni i proprietari utiliznd tipurile de formulare formularele de tip Columnar, Tabular sau Justified prezentate (cte un formular pentru fiecare tabel).
110
4. Formulare
S presupunem c se dorete graficul proporiei dintre apartamentele i garsonierele existente n baza de date, ca cele dou alternative n cadrul cmpului tip_mobil. Pentru obinerea unui asemenea grafic, n primul pas se va selecta, n zona Selected Fields, cmpul tip_mobil. Considerm c n pasul al doilea s-a optat pentru tipul de grafic Pie (sub form de disc). n pasul al treilea, se va draga cmpul tip_mobil, afiat n partea dreapta a tabloului Chart Wizard, peste caseta Series din partea stnga a tabloului. Se solicit suma preurilor de vnzare obinute n cadrul unor intervale calendaristice (luni). Pentru aceasta, au fost selectate cmpurile pre_vnzare i data_vnzrii. n funcie de tipul cmpului (text, numeric, dat calendaristic), sistemul organizeaz casetele Data i Series. Pentru cazul exemplificat, cmpul rezervat preului de vnzare va lua iniial expresia Sum (of pre_vnzare) i cmpul rezervat datei calendaristice a vnzrii va lua iniial expresia By month. Ambele expresii pot fi comutate diferit, prin executarea unui dublu click pe identificatorul expresiei. Astfel, Sum poate fi comutat la: Average, Min, Max, Count (valoare medie, minima, maxima, numrare), iar By month poate fi comutat la By year, Quarter, Week, Day, Hour, Minute (an, trimestru, sptmn, zi, or, minut).
Lista cmpurilor
Zona formularului
111
4. Formulare
Coninutul formei
Bordura definete chenarul ce va delimita formularul pe ecran. Antetul formularului (Form Header) este folosit, de regul, pentru a afia titlul formularului. Aceast zon nu este vizibil n modul Datasheet. Dac formularul este afiat n format Tabular, coninutul zonei de antet nu va fi derulat. Pentru ca aceast zon s fie disponibil n timpul proiectrii, se selecteaz opiunea View > Form Header/Footer, din meniul Access. Antetul de pagin (Page Header) este o zon ce apare numai cnd formularul este tiprit la imprimant. Pentru a fi disponibil n cursul proiectrii, se selecteaz opiunea View > Page Header/Footer din meniul Access. Seciunea de detaliu (Detail) va conine toate controalele necesare afirii/editrii nregistrrilor. n timpul execuiei, formularul poate conine n aceast zon un control numit selector de nregistrare (record selector) situat n marginea din stnga a formularului (figura 4.11.).
112
afiarea strii nregistrrii curente (n curs de editare, nregistrare nou, nregistrare blocat etc.) selectarea nregistrrii curente n vederea tergerii sau copierii acesteia. Subsolul de pagin (Page Footer) este afiat numai la tiprirea formularului i poate conine data curent, numrul de pagin, etc. h. Subsolul formularului (Form Footer) are aceleai caracteristici cu zona de antet i poate s conin, spre exemplu, totalul general sau diverse alte controale (butoane pentru salvare, adugare, tergere de nregistrri etc.). Butoane de navigare sunt afiate numai n timpul execuiei formularului i pot fi folosite pentru deplasri n cadrul nregistrrilor.
Selector de nregistrare
Butoane de navigare
113
4. Formulare
tastarea valorii respective; selectarea valorii dintr-o list derulant (dac aceasta este disponibil); cu ajutorul asistentului, care poate fi invocat prin apsarea butonului Build Wizard (atunci cnd acest buton este disponibil).
n cadrul ferestrei Properties, proprietile formularului curent sunt mprite n patru categorii:
1. Format conine atribute privitoare la dimensiune, aspect, coordonatele de afiare ale formularului etc.; Caption conine titlul formularului ce va aprea n bara de titlu a acestuia; Default View specific modul implicit de afiare, folosit la execuia formularului (Single Form, Tabular Form, Datasheet); Views Allowed reprezint modurile de afiare ce sunt disponibile n timpul execuiei; Scroll Bars seteaz barele de defilare vizibile n cursul execuiei (bara orizontal, bara vertical, amndou sau nici una); Record Selectors afieaz sau nu selectorul de nregistrare n timpul execuiei formularului; Navigation Buttons specific dac formularul va conine butoanele de navigare n cursul execuiei sale; Dividing Lines precizeaz dac se afieaz linii pentru delimitarea seciunilor formularului sau a nregistrrilor la execuie; Auto Center dac este setat pe valoarea Yes, formularul va fi afiat, la execuie, n centrul ecranului; Border Style specific tipul bordurii. Setarea acestei proprieti va avea efect i asupra comportamentului formularului: None formular fr bordur (formularul nu va putea fi redimensionat la execuie); Thin bordur subire (formularul nu va putea fi redimensionat); Sizable bordura implicit (formularul poate fi redimensionat); Dialog bordura subire (formularul nu poate fi redimensionat iar bara de titlu va conine doar butonul pentru nchidere Close obinndu-se astfel un formular de tip Dialog Box). Control Box indic prezena 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 prezena butonului de nchidere (Close) n bara de titlu;
114
4. Formulare
Width specific limea formularului i implicit a tuturor seciunilor. Aceast proprietate poate fi modificat n timpul proiectrii formularului, dar i n cursul execuiei acestuia (dac bordura este de tip Sizable), cu ajutorul mouse-lui. Picture poate conine specificatorul unui fiier grafic, al crui coninut va fi afiat pe fundalul formularului; Picture Type specific varianta OLE folosit: Embedded (nglobat) imaginea este inclus n formular; Linked (legat) se creeaz doar o legtur ctre fiierul grafic (formularul nu va afia imaginea respectiv dac fiierul este ters, mutat etc.). Grid X conine numrul de subdiviziuni orizontale pe unitatea de msur (cm, inch, etc.). Grila (Grid) servete la alinierea automat a controalelor. Grid Y conine numrul de subdiviziuni verticale pe unitatea de msur (intervalul 1-64).
2. Data grupeaz proprieti referitoare la sursa de date i nregistrrile aferente; Record Source conine sursa de date a formularului (tabel sau interogare). Aceast proprietate poate conine chiar i o comanda SQL (sunt admise numai cererile de selecie).
Un formular va avea ca surs de date o interogare dac:
afieaz n format Datasheet sau Tabular, controale nelegate; afieaz cmpuri din mai multe tabele. Filter conine criteriul de selecie care se va aplica nregistrrilor din formular. Condiia de filtrare este o clauz SQL WHERE, ns fr s conin cuvntul WHERE.
Pentru ca filtrul s fie activ, proprietatea Filter On trebuie setat pe valoarea True (setare ce se poate face numai din VBA).
Order By permite specificarea cmpurilor dup care vor fi sortate nregistrrii din formular. Sintaxa este identic cu sintaxa clauzei SQL, OrderBy.
Pentru ca operaia 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 afia, la deschidere, nregistrrile existente. Proprietatea este util pentru formularele ce vor permite numai adugarea de nregistrri. Record Locks specific dac i ce nregistrri vor fi blocate pentru ali utilizator (blocarea se poate face fie pentru toate nregistrrile, fie numai pentru nregistrarea curent).
115
4. Formulare
3. Event conine evenimentele ce pot fi tratate fie prin proceduri sau funcii scrise n limbajul VBA, fie prin macro-un. Proprietile acestei categorii se numesc proprieti eveniment i au denumiri asemntoare cu cele ale evenimentelor crora le sunt ataate. Apar astfel trei posibiliti: eveniment tratat printr-o funcie proprietatea eveniment va conine o expresie de forma: NumeFuncie([ListaParametrii]) eveniment tratat printr-o procedur eveniment proprietatea eveniment va conine expresia EventProcedure, iar editarea procedurii se poate face prin acionarea butonului BuildWizard, la invocarea cruia Access deschide editorul de module, n care genereaz o procedur vid sub forma: Private Sub Form_numeEveniment([ListParametriiFormali]) End Sub eveniment tratat printr-un macro
Cele mai uzuale evenimente sunt:
Eveniment Current
Poate fi abandonat ?
Nu
Descriere
Este nregistrat n momentul trecerii de la o nregistrare la alta. Apare naintea salvrii nregistrrii curente i tabel. Acest eveniment este frecvent folosit pentru validarea datelor curente. Evenimentul apare naintea tergerii nregistrrii curente i poate fi folosit pentru obinerea unei confirmri din partea utilizatorului cu privire la aceast operaie. Dac se dorete tergerea unui bloc de nregistrri, atunci evenimentul se va declana pentru fiecare nregistrare. Apare naintea afirii pe ecran a formularului, la deschiderea acestuia. Poate fi folosit pentru activarea criteriului de selecie definit i proprietatea Filter, pentru setarea unor controale naintea afirii acestora, pentru citirea argumentului transmis formularului, etc.. Este un eveniment declanat naintea nchiderii formularului. Evenimentul poate fi folosit pentru a cere confirmarea utilizatorului cu privire la nchiderea formularului, atunci cnd datele nu au fost salvate.
BeforeUpdate
Da
BeforeUpdate
Delete
Da
On Delete
Open
Da
On Open
Unload
Da
On Unload
116
4. Formulare Evenimentul este nregistrat n timpul nchiderii formularului (formularul este afiat pe ecran) i poate fi folosit pentru deschiderea altor formulare, pentru tergerea obiectelor temporare generate "n timpul execuiei formularului, etc.. Este declanat la activarea formularului (fie la deschiderea lui, fie la selectarea lui dintr-o alt fereastr) i poate fi folosit, de exemplu, pentru refacerea valorilor unei liste derulante, n urma actualizrii tabelei surs printr-un alt formular. Apare la efectuarea unui click pe selectorul de nregistrare sau pe zona liber a formularului (zona aflat n afara seciunilor). Evenimentul este declanat la apariia unei erori n cursul execuiei formularului (de exemplu, eroarea generat la introducerea unei valori ce nu respect condiiile de validare sau restricia de integritate). Utilitatea acestui eveniment apare atunci cnd se dorete interceptarea erorilor generate de Access h vederea tratrii lor. Este un eveniment care apare la o anumit perioad de timp, stabilit de utilizator prin proprietatea Timer Interval (valoarea atribuit este n milisecunde). Poate fi utilizat pentru crearea diferitelor efecte vizuale, pentru citirea/setarea unor variabile globale etc..
Close
Nu
On Close
Activate
Nu
On Activate
Click
Nu
On Click
Error
Nu
On Error
Timer
Nu
On Timer
4. Other conine diverse alte proprieti. Pop Up dac se dorete ca, n cursul execuiei sale, formularul s fie permanent vizibil (va fi poziionat permanent deasupra celorlalte ferestre, chiar dac nu este activ), aceast proprietate se va seta pe valoarea Yes; Modal specific dac formularul va fi modal sau nemodal; Cycle descrie efectul apsrii tastei Tab pe ultimul cmp din formular: salt la urmtoarea nregistrare (All records), revenire la primul cmp (Current record), revenire la primul cmp din pagina curent (Current Page); Menu Bar conine numele unui meniu creat de utilizator, ce va fi afiat la lansarea n execuie a formularului; Toolbar indic toolbar-ul propriu ce va fi disponibil n cursul rulrii.
117
4. Formulare
din fereastra Toolbox se selecteaz butonul aferent controlului dorit; se descrie, cu ajutorul mouse-lui, o zon dreptunghiular pe suprafaa formularului, definind astfel poziia i dimensiunea noului control.
Control
Indicator (Select Objects) Asisteni (Control Wizards) Eticheta (Label) Caseta text (Text Box) Butonul de comand (Command Button) Caseta list (List Box) Caseta combinat (Combo Box) Butonul-comutator (Toggle Button), Butonul de opiune (Option Button), Caseta de validare (Check Box)
Descriere
Instrument folosit la proiectarea controalelor (selecie, repoziionare, redimensionare, etc.) Activeaz/dezactiveaz utilitarele Wizards folosite la generarea unor controale mai complexe (casete combinate, casete list, grupuri de opiune, etc.). Control cu coninut fix, folosit pentru afiarea unor mesaje. n general, Access genereaz cte o etichet pentru majoritatea controalelor definite de utilizator. Control utilizat pentru afiarea i editarea datelor.
Permite selectarea unei valori dintr-o list. mbin proprietile unei casete text cu cele ale unei casete de tip list (permite att editarea unei valori, ct i selectarea acesteia dintr-o list derulant). Caseta combinat este un control ce se folosete frecvent pentru actualizarea cheilor externe.
Sunt controale folosite pentru editarea unor valori de tip logic (Yes / No, On / Off, True / False).
118
4. Formulare Este un control container folosit pentru afiarea unui set de alternative i poate grupa mai multe tipuri de controale (buton de opiune, caset de validare etc.) Controlul Page Break mparte formularul n mai multe pagini care pot fi vizualizate cu ajutorul tastelor PageUp i PageDown. Poate fi, de asemenea, folosit pentru salt la pagin nou, n cazul tipririi formularului Controlul de tip Tab este un control container ce permite gruparea altor controale n mai multe pagini, atunci cnd formularul conine un numr prea mare de controale. Controalele servesc la trasarea diverselor figuri geometrice. Permite afiarea coninutului unor fiiere grafice (.bmp, .gif, .wmf, .pcx, etc.), pe fundalul formularului. Este un control ce va conine un obiect (grafic, multimedia, document etc.), importat dintr-o alt aplicaie Windows (Word, Excel, Paint, Sound Recorder etc.) prin tehnologia OLE (Object Linking and Embedding). Conine un obiect stocat ntr-un cmp de tip OLE din tabela surs Permite definirea unui subformular n cadrul formularului curent. Afieaz alte controale nregistrate, ce pot fi ataate formularului (controale ActiveX etc.)
Grupul de opiune (Option Group) Delimitator de pagin (Page Break) Index (Control Tab) Linie (Line) Dreptunghi (Rectangle) Imagine (Image) Obiect cadru nelegat (Unbound Object Frame) Obiect cadru legat (Bound Object Frame) Subformular (Subform) Alte controale (More Controls)
1. Proprieti din categoria Format: Format specific modelul (masca) de afiare a datelor (numai pentru casetele text); Decimal Places indic numrul de zecimale cu care vor fi afiate datele (numai pentru casete text);
Nchil Ctlin laborator Access 119
4. Formulare
Caption conine textul afiat de control (numai pentru controalele needitabile: etichete, butoane etc.); Visible determin afiarea sau nu a controlului n timpul execuiei formularului; Left stabilete coordonata orizontal a colului stnga-sus al controlului; Top indic poziia pe vertical a colului stnga-sus; Width stabilete limea controlului: Height stabilete nlimea obiectului; Back Style determin modul de afiare: control normal sau transparent; Back Color stabilete 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; Fore Color culoarea textului afiat de control; Font Name tipul fontului aferent textului din control; Font Size dimensiunea fontului; Picture specific numele i calea fiierului grafic ce va fi afiat n interiorul controlului (numai pentru butoane i controale de tip imagine); Text Align stabilete modul de aliniere a textului n interiorul controlului.
2. Proprieti din categoria Data: Control Source conine sursa de date a controlului i poate fi:
Numele unui cmp (pentru controale legate); O expresie de calcul precedat de semnul "=" (pentru casete text nelegate).
Exemplu: o caset text ce va afia valoarea unui material contractat, pe baza preului i a cantitii contractate, va conine n proprietatea control source expresia: =[Cantitate]*[Pre] unde [Cantitate] i [Pre] sunt denumirile a dou cmpuri (sau controale) din formular; Input Mask indic formatul folosit la introducerea datelor (numai pentru casete text)
120
4. Formulare
Default value specific valoarea implicit (valoarea prin lips) a controlului. Exemplu: pentru o caset text destinat actualizrii unui cmp de tip Date/Time, aceast proprietate poate conine funcia Date(), care returneaz data sistemului: =Date() Validation Rule conine regula dup care se face validarea datelor introduse n control. La execuia formularului, mai nti se verific regula de validare a controlului i apoi cea a cmpului ataat. Proprietatea validation rule poate fi folosit pentru definirea unor restricii asupra cmpurilor din tabele diferite; Validation Text specific mesajul ce va fi afiat, atunci cnd regula de validare este nclcat; Enabled activeaz sau dezactiveaz controlul. Un control dezactivat va fi inaccesibil la execuia formularului; Locked servete la protejarea datelor afiate de control (controlul va deveni read-only). 3. Proprieti din categoria Event: conin denumirile funciilor, procedurilor eveniment sau macro-urilor, ce vor fi executate la declanarea evenimentelor ataate.
Cele mai uzuale evenimente sunt:
Eveniment
Poate fi abandonat?
Proprietatea eveniment
Descriere
Apare naintea salvrii datelor din control i cmpul ataat acestuia. Evenimentul poate fi folosit pentru validarea datelor introduse i control. Se declaneaz h momentul i care datele din control (caset text sau caset combinat) sunt modificate. Evenimentul este nregistrat n momentul accesrii controlului n vederea editrii datelor (naintea activrii sale). Declanat, atunci cnd se prsete controlul curent n vederea accesrii altui control din formular. Acest eveniment nu apare n cazul i care controlul este n curs de editare i se activeaz o alt fereastr.
BeforeUpdate
Da
BeforeUpdate
Change
Nu
On Change
Enter
Nu
On Enter
Exit
Da
On Exit
121
4. Formulare Apare i momentul focalizrii controlului. Difer de evenimentul On Enter prin aceea c se declaneaz chiar i atunci utilizatorul comut ntre o alt fereastr i formularul curent. Evenimentul este nregistrat la defocalizarea controlului (fie prin trecerea la alt control din cadrul formularului, fie prin activarea altei ferestre).
Got Focus
Nu
On Got Focus
Lost Focus
Nu
On Lost Focus
Ordinea n care sunt declanate evenimentele la activarea/dezactivarea unui control este urmtoarea:
4. Proprieti din categoria Other: Name conine numele controlului. La creare, fiecare control primete un nume unic, format din tipul su plus un numr de ordine (ex.: TextBox5). Utilizatorul poate modifica acest nume, schimbndu-1 cu unul mai sugestiv. Controalele legate, generate automat de Wizards, au numele identice cu denumirile cmpurilor ataate; Status Bar Text specific mesajul afiat n bara de stare, n momentul selectrii controlului; Tab Stop dac este setat pe valoarea Yes, atunci controlul poate fi accesat cu ajutorul tastei Tab; Tab Index specific numrul de ordine al controlului, n funcie de care acesta va fi accesat cu ajutorul tastei Tab. Toate controalele editabile vor primi un numr de ordine unic, la creare. Acest numr poate fi modificat fie prin aceast proprietate, fie prin opiunea View-TabOrder din meniul Access; Control Tip Text conine mesajul afiat ntr-o fereastr ToolTip.
Pentru crearea unor controale complexe (casete combinate, casete de tip list etc.), proiectantul poate fi asistat de programele control wizards.
122
4. Formulare
123
4. Formulare
124
4. Formulare
Se dorete ca la adugarea imobilului, proprietarul i agentul (numerele acestora) s se fac prin selectarea acestora din liste ce conin toi proprietari, respectiv toi agenii. Pentru cmpurile ce ndeplinesc rolul de cheie extern, este recomandat ca n formulare s se creeze controale de tip combo box sau list box, deoarece, datorit referinei de integritate, cheile externe nu admit dect valori comune cu cheile primare pe care le refer (sau valoarea nuli). Pentru combo box-un 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 urmtoarele etape:
1. se activeaz butonul Control Wizards din fereastra toolbox (dac nu este deja activat); 2. n aceeai 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 (figura 4.14.), se selecteaz prima variant.
Lista va conine valorile unui cmp dintr-o tabel sau interogare. Controlul este utilizat de regul, pentru actualizarea cheilor externe. Caseta combinat conine valori definite de utilizator. Acest tip este utilizat pentru cmpuri ce prezint un numr relativ redus de valori standard (unitate de msur, valuta etc.). Selectarea unei valori din list determin saltul la nregistrarea aferent n sursa de date a formularului. Acest control este folosit n scopul facilitrii operaiilor de regsire a nregistrrilor dintr-un formular.
125
4. Formulare
5. Se specific tabela sau interogarea ce va furniza date listei de valori a controlului (tabelele proprietari n cazul primului combo box respectiv agenti n cazul celui de al doilea combo box) 6. Se aleg cmpurile tabelei ce vor fi afiate n lista de valori. 7. Se ajusteaz dimensiunea fiecrei coloane din lista de valori (prima coloana este implicit ascuns). 8. Se alege cmpul din sursa de date a formularului ce va fi actualizat cu valoarea selectat din list (cmpul ataat controlului). 9. Se specific eticheta ataat controlului caset combinat.
Dac, din diferite motive, Wizard Controls nu funcioneaz (de exemplu, nu este setat aceast opiune le instalarea programului Access), proiectantul va fi nevoit s seteze singur proprietile controlului combo box:
Column Widths specific dimensiunea fiecrei coloane din list (valorile sunt separate de caracterul ";") List Width conine limea total a listei derulante Row Source Type specific tipul sursei de date pentru valorile din list (tabel sau interogare, valori definite de utilizator, realizrile unui cmp) Row Source conine denumirea tabelei, a interogrii (sunt admise i fraze SQL Select) sau valorile predefinte de utilizator (separate de caracterul ";") Bound Column va conine numrul de ordine al coloanei care va actualiza cmpul ataat controlului (coloana respectiv poate fi ascuns) Limit To List permite sau nu utilizatorului s introduc valori ce nu exist n lista controlului. Setarea acestei proprieti pe Yes va conduce la declanarea evenimentului On Not in List ori de cte ori se introduce o valoare inexistent n list.
Cele trei butoane se creaz tot prin intermediul Control Wizards (figura 4.15.), de unde se alege pentru fiecare n parte aciunile corespunztoare.
126
4. Formulare
4.4. 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 cmpul comun este cheie extern), din cadrul unei relaii de tip 1n. 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:
Posibilitatea actualizrii mai multor tabele printr-un singur formular. Sincronizarea subformularului cu formularul principal, operaie care const n: actualizarea automat a cmpului cheie extern din subformular, cu valoarea deinut de cmpul cheie primar din formularul principal; filtrarea automat a nregistrrilor din subformular, n funcie de valoarea cheii primare din formularul principal.
Pentru definirea unui subformular n modul Design se procedeaz astfel:
se deschide n modul Design, formularul ce se dorete a fi formular principal; se activeaz fereastra bazei de date; folosind tehnica drag&drop, se aduce depune formularul, ce se dorete a fi subformular, n interiorul formularului principal; se salveaz formularul principal.
Tot pentru definirea unui subformular se poate utiliza i controlul subform cadrul formularului principal. Modificare fcut ulterior asupra subformularului, ca obiect de tip formular, se va reflecta automat i n formularul principal. Sincronizarea formularsubformular se realizeaz prin intermediul cmpurilor de legtur cheia primar din sursa de date aferent formularului principal i cheia extern din sursa de date aferent subformularului. Denumirile acestor cmpuri sunt nscrise automat de Access n proprietile Link Master Field i Link Child Field ale controlului de tip subform din formularul principal. Completarea acestor proprieti este realizat automat de Access, atunci cnd ntre cele dou surse de date sunt definite relaii sau cnd acestea conin dou cmpuri cu aceeai denumire. Se recomand totui verificarea acestor proprieti chiar i n cazul completrii lor de ctre Access.
127
4. Formulare
Aplicaia 4.3: Fie baza de date de la aplicaia 4.1. S se creeze un formular cu subformular n modul Form Wizard pentru tabelele ageni i imobil(figura 4.16.)
Fig. 4.16. 1. se acioneaz butonul New din fereastra bazei de date pentru activarea asistentului New Form; 2. se opteaz pentru varianta Form Wizard; 3. se selecteaz cmpurile din tabela ageni sau apoi din tabela imobil; 4. pentru tabelul ageni se selecteaz opiunea form with subform(s); 5. se alege un model de prezentare pentru subformular; 6. se stabilete imaginea de fundal pentru formular (Stone, Standard etc.); 7. se stabilete denumirea formularului i a subformularului. Aplicaia 4.4: Fie baza de date de la aplicaia 4.1. S se creeze un formular cu subformular n modul Design View pentru tabelele proprietari i imobil (figura 4.17.) 1. se acioneaz butonul New din fereastra bazei de date pentru activarea asistentului New Form; 2. se opteaz pentru varianta Design View; 3. se selecteaz tabela proprietari n rubrica derulant solicitat; prin click pe butonul Ok, 4. se aduc pe form toate cmpurile tabelei proprietari; 5. verificm dac este activ Control Wizards din Toolbox; 6. din Toolbox (View > Toolbox dac nu este activ) selectm controlul Subform/Subreport;
128
4. Formulare
7. desenm dreptunghiul pe form; 8. din fereastra nou deschis alegem Use existing Tables and Queries; 9. din tabelul imobil alegem toate cmpurile sale; 10. din fereastra nou deschis alegem Choose from a list; 11. se stabilete denumirea subformularului.
Fig. 4.17.
Aplicaia 4.5: Se cere obinerea unui formular care s afieze (pe coloane) preurile solicitate i preurile de vnzare ale imobilelor din tabela imobile. n finalul formularului se cere obinerea sumelor preurilor solicitate, respectiv a preurilor de vnzare (figura 4.18.)
Prin modul n care este solicitat imaginea formularului (date dispuse pe diverse coloane), proiectantul va fi orientat spre a opta pentru modul Tabular de execuie. Sistemul Tabular nu este recomandat, n principiu, pentru c, n cazul multor coloane, afiarea datelor este imposibila pe un ecran. Dar, n cazul exerciiului propus, existnd numai trei coloane, modul Tabular devine convenabil.
129
4. Formulare
Fig. 4.18.
Operaiile de efectuat sunt urmtoarele:
n fereastra New Form va fi accesat opiunea "Autoform: Tabular" i va fi selectat tabela imobile (ca surs de date). ca urmare, sistemul va afia formularul final, coninnd coloane care cuprind toate cmpurile (toi indicatorii) din tabela-surs. Se va putea remarca faptul c, din cauza lipsei unui spaiu disponibil pe limea ecranului, datele sunt trunchiate, cele numerice (de lungime mai mare) sunt afiate n form exponenial etc. trecem n modul Design; se terg toate cmpurile inutile, cu excepia cmpurilor solicitate prin exerciiu; se redimensioneaz coloanele respectiv titlurile acestora;
130
4. Formulare
se genereaz un spaiu necesar pentru seciunea Form Footer (prin tragerea mouse-ului pe limita inferioar a titlului acestei seciuni). se copiaz textbox-ul pret_solicitat n se partea Form Footer; se copiaz textbox-ul pret_vnzare n se partea Form Footer; completm cele dou textbox-uri cu:
= sum ([pret_solicitat]) = sum ([pret_vnzare])
se acceseaz pictograma Label din Toolbox; se fixeaz (prin clic cu mouse-ul) locul de debut al etichetei n seciunea Form Footer; se scrie textul dorit (de exemplu: Total Preturi).
131