Вы находитесь на странице: 1из 37

Relaii ntre tabele

1 Relaii ntre tabele.............................................................................................................2 1.1 Definirea relaiilor ntre tabele...................................................................................4 1.1.1 Definirea grafic a relaiilor ntre tabele.............................................................6 1.1.2 Definirea programatic a relaiilor ntre tabele...................................................9 1.2 Crearea unui formular de interogare a mai multe tabele..........................................11 1.2.1 Crearea unui formular de interogare n modul Design Vie ............................12 1.2.2 !ormatarea tabelei re"ultat................................................................................1# 1.2.$ Crearea unui formular de interogare cu o aplicaie %r&itor..............................1# 1.$ Crearea unui formular cu subformulare...................................................................21 1.$.1 Crearea unui formular cu subformulare cu o aplicaie %r&itor.........................22 1.$.2 Crearea unui formular cu subformulare cu adugarea manual a subformularelor..........................................................................................................2# 1.4 'electarea liniilor din mai multe tabele ce ndeplinesc anumite condiii.................$2 1.# (robleme propuse.....................................................................................................$# 1.6 )ntrebri de control...................................................................................................$*

1 Relaii ntre tabele


+ ba" de date se compune din mai multe tabele. + tabel este o structur logic de date ce conine informaii pe care ba"a de date le repre"int. !iecare tabel are un nume unic. + tabel este constituit dintr,un numr de coloane -atribute.. !iecare tabel are o c/eie primar ce identific liniile tabelei. C/eia primar poate consta dintr,un singur atribut sau din mai multe atribute. + tabel se poate referi la atributele uneia sau mai multor alte tabele din ba"a de date. 0cest lucru se face prin c/eia e1tern. 0tunci c2nd o tabel trebuie s se refere la atributele altei tabele3 unul sau mai multe atribute ale tabelei %or conine c/eia e1tern3 care este c/eia primar a tabelei referite. )n cele ce urmea" %om arta modul n care se descriu grafic 4i programatic relaiile ntre tabele -cum se specific grafic faptul c un atribut al unei tabele este c/eie e1tern.. (entru e1emplificare %om utili"a tabelele de mai &os3 care descriu proiectele unei intreprinderi. )n fiecare tabel3 atributele ce constituie c/eia primar sunt subliniate. tabela (R+)5C65 conine identificatorul unui proiect )D7(R8 4i numele proiectului3 9:;57(R8. 0tributul )D7(R8 este c/eia primar a tabelei3 (R+)5C65 )D7(R8 1<< 2<< $<< 4<< 9:;57(R8 =eb Clienti !urni"ori (ersonal

tabela 09>0806) conine date despre anga&aii intreprinderii care lucrea" la di%erse proiecte. 5a conine identificatorul anga&atului )D709>3 numele anga&atului3 9:;5709> 4i departamentul de care aparine anga&atul3 D(6709>. C/eia primar a tabelei este )D709>3 09>0806) )D709> 129< 129# 1<4# 1192 1$#1 1$4? 12?4 1<6* 1<9# 9:;5709> (opescu )onescu >eorgescu Vasilescu !ilipescu (opa 9icolae ;arinescu >/eorg/e D(6709> )nformatica 'upport Documentare )nformatica 'upport )nformatica 'upport Documentare )nformatica

tabela +R575@5C:6065 conine orele e1ecutate de fiecare anga&at pentru un anumit proiect. 5a conine identificatorul proiectului3 )D7(R83 identificatorul anga&atului3 )D709> 4i numrul de ore prestate pentru un anumit proiect3 +R5. C/eia primar a tabelei este format din atributele )D7(R8 4i )D709>3 +R575@5C:6065 )D7(R8 1<< 1<< 1<< 2<< 2<< $<< $<< $<< 4<< )D709> 129< 129# 1<4# 1192 1$#1 1$4? 12?4 1<6* 1<9# +R5 1< ? 12 2< 1# 2< 14 12 1#

tabela '0A0R): conine salariul pe or al anga&ailor unui departament. 5a conine identificatorul departamentului la care lucrea" anga&atul3 D(6709>3 4i salariul orar3 '0A7+R0. C/eia primar a tabelei este D(6709>. '0A0R): D(6709> )nformatica 'uport Documentare '0A7+R0 6< 4< 2#

C/eia primar a tabelei '0A0R):3 D(6709>3 este c/eie e1tern n tabela 09>0806) -coloana D(6709> din tabela 09>0806).. (roiectarea celor patru tabele este pre"entat mai &os. 9umele departamentului se %a introduce cu o caset combinat -Combo Bo1..

Figura 1. Proiectarea tabelei PROIECTE.

Figura 2. Proiectarea tabelei ANGAJATI.

Figura 3. Proiectarea tabelei ORE_EXECUTATE.

Figura . Proiectarea tabelei !A"ARIU.

Relaiile ntre tabele sunt de regul de tipul unul la mai muli. Vom spune c ntre tabelele 0 4i B e1ist relaia unul la mai muli dac unei linii din tabela 0 i corespund mai mule linii din tabela B3 dar unei linii din tabela B i corespunde o singur linie din tabela 0. De e1emplu3 ntre tabelele '0A0R): 4i 09>0806) e1ist o relaie unul la mai muli.

1.1 Definirea relaiilor ntre tabele


(entru a defini relaia care e1ist ntre tabelele 09>0806) 4i '0A0R):3 -c/eia primar din tabela '0A0R):3 D(6709> este c/eie e1tern n tabela 09>0806). se procedea" astfelC 1. se nc/id toate tabelele desc/ise3 2. clic pe meniul Tool# Relatio$#%i& din !igura #3 care produce afi4area ferestrei Relations/ips din !igura * 4i a casetei '/o 6able din !igura 6D acela4i efect se obine cu clic pe opiunea Relatio$#%i&# a meniului conte1tual al casetei Database sau cu clic pe butonul din bara de instrumenteD caseta '/o 6able se poate afi4a cu clic pe butonul !%o' Table3 3 al barei de instrumente sau cu clic pe opiunea !%o' Table al meniului conte1tual al ferestrei Relations/ips3

Figura (. )e$iul Tool#.

Figura *. Ferea#tra !%o' Table.

$. se selectea" pe r2nd tabelele dorite din caseta '/o 6able 4i se adaug la fereastra Relations/ips cu butonul A++. 'e inc/ide caseta '/o 6able cu clic pe butonul Clo#e. !igura * arat fereastra Relations/ips cu tabelele adugate.

Figura ,. Ferea#tra Relatio$#%i& cu tabele a+-ugate.

+dat cu afi4area ferestrei Relations/ips apare meniul Relatio$#%i& 4i bara de instrumente de%ine cea din !igura ?.

Figura .. )e$iurile /i bara +e i$#tru0e$te ale 1ere#trei Relatio$#%i&.

a. meniul Relations/ips

b. meniul conte1tual al ferestrei Relations/ips

Tabelul 1. )e$iuri la a1i/area 1ere#trei Relatio$#%i&.

'emnificaiile opiunilor acestor meniuri 4i a butoanelor corespun"toare sunt urmtoareleC opiunea !%o' Table 4i butonul afi4a" caseta '/o 6able3 opiunea !%o' All 4i butonul afi4a" toate tabelele ntre care e1ist relaii3 n ca"ul unei tabele selectate3 opiunea !%o' 2irect 4i butonul afi4a" 4i tabele ce sunt n relaii cu tabela selectat3 opiunea 3i+e Table ascunde o tabel selectat3 opiunea E+it Relatio$#%i& afi4a" caseta 5dit Relations/ips din !igura 9 cu care se definesc relaiile ntre tabele.

1.1.1 Definirea grafic a relaiilor ntre tabele


(entru a defini o relaie ntre atributul c/eie primar a unei tabele 4i atributul corespun"tor c/eie e1tern n alt tabel se selectea" atributul c/eie primar din prima tabel 4i se trage cu butonul st2ng al mousului apsat peste atributul c/eie e1tern al celei dea doua tabel. ;enionm c cele dou atribute nu au3 n general3 acela4i nume. )n ca"ul nostru %om defini relaia dintre tabelele 09>0806) 4i '0A0R):3 -coloana D(6709> este c/eia primar din tabela '0A0R): 4i c/eie e1tern n tabela 09>0806).. Vom proceda n felul urmtorC 1. se selectea" atributul D(6709> n tabela '0A0R): unde este c/eie primar3 4i se trage cu butonul st2ng al mousului apsat peste atributul D(6709> al tabelei 09>0806)3 unde este c/eie e1ternD se afi4a" caseta 5dit Relations/ip din !igura 9. )n partea de &os a casetei n seciunea Relations/ip 6Epe apare tipul relaiei3 n ca"ul nostru unu la mai muli.

Figura 4. Ca#eta E+it Relatio$#%i&# +u&- +e1i$irea u$ei rela5ii.

2. clic pe butonul Joi$ T6&e3 care afi4a" caseta 8oin (roperties din !igura 1<3 unde butonul 1 corespunde relaiei unu la mai muliD clic pe butonul O7 al casetei 8oin (roperties3

Figura 18. Ca#eta Joi$ Pro&ertie#.

$. se marc/ea" opiunea E$1orce Re1ere$tial I$tegrit6. )ntegritatea referenial a ba"ei de date nu permite ca ntr,o tabel cu un c2mp c/eie e1tern s e1iste o linie n care c/eia e1tern nu e1ist n tabela primar. )n ca"ul integritii refereniale putem e1ecuta urmtoarele aciuniC Ca#ca+e U&+ate Relate+ Fiel+#3 care atunci c2nd se modific un c2mp n tabela primar3 se modific %aloarea sa n toate tabelele legate 4i Ca#ca+e 2elete Relate+ Recor+#3 care atunci c2nd este 4tears o linie din tabela primar3 se 4terg toate liniile ce se refer la aceast linie din tabele corespun"toare3 4. clic pe butonul Create 4i relaia ntre tabele este creat.

Figura 11. Ferea#tra Relatio$#%i&# cu rela5ia 9$tre tabele.

Relaia unul la mai muli apare desenat ca n !igura 12.

Figura 12. Rela5ie u$u la 0ai 0ul5i.

Relaiile ntre tabele pot fi 4terse grafic n felul urmtorC 1. clic cu butonul drept pe linia ce une4te c/eia primar dintr,o tabel cu c/eia e1tern din cealalt tabel 4i se afi4a" meniul conte1tual din !igura 1$3 2. clic pe opiunea 2elete.

Figura 13. !tergerea gra1ic- a u$ei rela5ii.

Caseta 5dit Relations/ips din !igura 9 se poate afi4a n mai multe feluriC cu clic pe opiunea E+it Relatio$#%i& a casetei din !igura 1$3 cu clic pe meniul Relatio$#%i&# E+it Relatio$#%i& din !igura 14.

Figura 1 . )e$iul Relatio$#%i&#.

Dup definrea relaiei ntre tabelele '0A0R): 4i 09>0806)3 tabela '0A0R): arat ca n !igura 1#.

Figura 1(. Tabela !A"ARIU +u&- +e1i$irea real5iei cu tabela ANGAJATI.

)n st2nga fiecrei coloane e1ist nodul unui arbore cu ramuri ctre nregistrrile din tabela 09>0806) ce au ca c/eie e1tern c/eia primar a tabelei '0A0R):. :n clic pe nodul respecti% e1pandea" arborele ca n !igura 163 cu toi anga&aii departamentului Documentare din tabela 09>0806) 3 %e"i definiia tabelei 09>0806) de mai sus.

Figura 1*. Arbore al tabelei !A"ARIU e:&a$+at.

1.1.2 Definirea programatic a relaiilor ntre tabele


Relaiile ntre tabele se pot crea 4i programatic. (entru aceasta se procedea" astfelC 1. se afi4a" caseta 5dit Relations/ips din !igura 93 2. clic pe butonul Create Ne' care afi4a" caseta de dialog Create 9e din !igura 1*3

Figura 1,. Ca#eta +e +ialog Create Ne'.

$. se selectea" din lista "e1t Table Na0e numele tabelei n care atributul este c/eie primar3 n ca"ul nostru '0A0R):3 4. se selectea" din lista "e1t Colu0$ Na0e numele atributului care este c/eie primar3 n ca"ul nostru D(6709>3 #. se selectea" din lista Rig%t Table Na0e numele tabelei n care atributul este c/eie e1tern3 n ca"ul nostru 09>0806)3 6. se selectea" din lista Rig%t Colu0$ Na0e numele atributului care este c/eie e1tern3 n ca"ul nostru D(6709>3 *. se nc/ide caseta Create 9e cu clic pe butonul O73 ?. se alege tipul relatiei unu la mai muli din caseta 8oin (roperties ca mai sus3 9. se marc/ea" opiunea E$1orce re1ere$5ial I$tegrit6 n caseta 5dit Relations/ips3 1<. clic pe butonul O73 11. clic pe butonul Create al casetei 5dit Relations/ips.

Figura 1.. Ca#eta E+it Relatio$#%i& a1i/;$+ rela5iile e:i#te$te.

De menionat diferena ntre caseta 5dit Relations/ips din !igura 9 4i cea din !igura 1?. !igura 9 arat caseta 5dit Relations/ips dup ce s,a definit o relaie3 grafic sau programatic3 nainte ca relaia s fie creat. Cele dou tabele ntre care s,a definit relaia

1<

sunt afi4ate n culoarea gri. Relaia este creat n ba"a de date cu clic pe butonul Create. )n acest moment butonul Create se transform n buton O7 %e"i !igura 1?. 0tunci c2nd ba"a de date conine prea multe tabele 4i relaii3 fereastra Relations/ips de%ine aglomerat. (utem afi4a doar tabelele de interes cu relaiile ntre ele. (entru aceasta procedm dup cum urmea"C 1. se 4terg toate tabelele din fereastra Relations/ips. Clic pe fereastra Relations/ips 4i apoi pe meniul E+it Clear "a6out sau pe butonul al barei de instrumente3 2. se selectea" din caseta '/o 6able una din tabelele de interes3 $. clic pe meniul Relatio$#%i&# !%o' 2irect sau butonul 4i n fereastr apar toate tabele ce au relaii cu tabela selectat3 %e"i 6abelul 1.

1.2 Crearea unui formular de interogare a mai multe tabele


Vom arta acum modul de creare a fromularelor de interogare a ami multor tabele ntre care e1ist relaii. Ca e1emplu %om a selecta datele despre anga&ai3 )D709>3 9:;5709> 4i D(6709> din tabela 09>0806) 4i salariul lor orar3 '0A7+R0 din tabela '0A0R):. (rima form general a instruciunii '5A5C6 este '5A5C6 coloana713 coloana723 F3 coloana7n !R+; tabela713 F3 tabela7G H=I5R5 condiieJ H+RD5R BK nume7coloana H0'C L D5'CJ H3 nume7coloana H0'C L D5'CJ F JJD )nstruciunea '5A5C6 corespun"toare este urmtoarea '5A5C6 09>0806).)D709>3 09>0806).9:;5709>3 09>0806).D(6709>3 '0A0R):.'0A7+R0 !R+; '0A0R):3 09>0806) =I5R5 09>0806).D(6709> M '0A0R):.D(6709>D + alt form general a instruciunii '5A5C6 ce se poate utili"a c2nd se selectea" coloane din mai multe tabele ntre care e1ist legturi utili"ea" clau"a )995R 8+)9. '5A5C6 coloana713 coloana723 F3 coloana7n !R+; tabela71 )995R 8+)9 tabela72 +9 condiie72 )995R 8+)9 tabela7$ +9 condiie7$ F3 )995R 8+)9 tabela7G +9 condiie7G H=I5R5 condiieJ H+RD5R BK nume7coloana H0'C L D5'CJ H3 nume7coloana H0'C L D5'CJ F JJD !orma instruciunii n ca"ul a dou tabele este '5A5C6 nume7coloana713 nume7coloana723 F3 nume7coloana7G !R+; nume7tabela71 11

)995R 8+)9 nume7tabela72 +9 conditieD )n ca"ul a mai multe tabele3 se repet clau"a )995R 8+)9 pentru c2te condiii este ne%oie. )n ca"ul nostru3 instruciunea '5A5C6 este cea de mai &os. '5A5C6 09>0806).)D709>3 09>0806).9:;5709>3 09>0806).D(6709>3 '0A0R):.'0A7+R0 !R+; '0A0R): )995R 8+)9 09>0806) +9 '0A0R):.D(6709> M 09>0806).D(6709>D "a crearea u$ui 1or0ular +e i$terogare +i$ 0ai 0ulte tabele #e crea<- 0ai 9$t;i leg-turile 9$tre tabele.

1.2.1 Crearea unui formular de interogare n modul Design View


'e crea" legtura ntre tabelele 09>0806) 4i '0A0R):3 c/eia primar D(6709> a tabelei '0A0R): este c/eie e1tern n tabela 09>0806)3 coloana D(6709>. (roiectarea formularului de interogare se face astfelC 1. n caseta Database se selectea" opiunea =uer63 2. clic pe opiunea Create >uer6 i$ 2e#ig$ ?ie' 4i se afi4a" formularul 'elect NuerE din !igura 19 4i caseta '/o 6able din !igura 2<.

Figura 14. For0ularul !elect =uer6.

12

Figura 28. Ca#eta !%o' Table.

$. se selectea" tabelele 09>0806) 4i '0A0R): n caseta '/o 6able 4i se adaug la formularul de interogare cu clic pe butonul A++D se nc/ide caseta cu butonul Clo#e@ tabelele apar n formularul 'elect NuerE ca n !igura 213 cu legturile ntre ele3

Figura 21. For0ularul !elect =uer6 cu tabele #electat.

4. se completea" formularul cu coloanele ce trebuie selectate ca n !igura 22D modul de adugare a c2mpurilor la formular este acela4i ca la crearea formularelor de interogare a unei sigure tabele3

1$

Figura 22. For0ularul co0&letat.

#. se sal%ea" formularul creat cu una dintre opiunile !aAe sau !aAe A# ale meniului File3 sau cu butonul Clo#e al ferestrei formularului3 *. se afi4a" tabela re"ultat cu clic pe butonul al barei de instrumente sau pe meniul =uer6 Ru$3 sau pe meniul ?ie' 2ata#%eet ?ie' sau pe opiunea 2ata#%eet ?ie' a meniului conte1tual al formularului. 6abela re"ultat este cea din !igura 2$.

Figura 23. Tabela re<ultat a 1or0ularului +i$ Figura 22.

)nstruciunea '5A5C6 generat de 0ccess pe ba"a formularului din !igura 22 este cea din !igura 24.

14

Figura 2 . I$#truc5iu$ea !E"ECT core#&u$<-toare 1or0ularului +i$ Figura 22.

1.2.2 Formatarea tabelei rezultat


6abela re"ultat a interogrii se formatea" n acela4i fel cu tabelele ba"ei de date. (entru formatare se utili"ea" opiunile meniului For0at din 6abelul 2a. +piunile meniului For0at afi4a" acelea4i casete de dialog ca 4i n ca"ul tabelor ba"ei de date.

a. meniul !ormat

b. caseta Column =idt/


Tabelul 2. )e$iul For0at.

De e1emplu3 pentru formatarea unei coloane se procedea" astfel. 'e selectea" coloana a crei lime trebuie modificat3 4i clic pe opiunea For0at Colu0$ Bi+t% ce afi4a" caseta Column =idt/. +piunea Ce#t Fit d alege limea optim a coloanei. )nlimea unei linii se modific asemntor. +piunea Fo$t modific tipul3 stilul 4i culoarea fontului coloanel sau liniei selectate.

1.2.

Crearea unui formular de interogare cu o aplicaie !r"itor

(roiectarea unui formular de interogare se poate face 4i cu a&utorul unei aplicaii %r&itor. (entru e1emplificare %om utili"a tabelele de mai &os. CA)596) )D7CA)596 12#$ 44?1 2$96 2$41 19#6 9:;5 )onescu (opescu >eorgescu Vasilescu 9icolae (R59:;5 Vasile >eorge 9icolae )oan Vasile 0DR5'0 Craio%a )asi Bucuresti 6imisoara Clu&

1#

C+;59O) )D7C+;09D0 124 2$? $$1 214 1*4 229 )D7CA)596 44?1 19#6 44?1 2$96 2$41 44?1 D060 1P1<P2<<9 12P2<P2<<? *P14P2<<9 <$P<?P2<<* #P14P2<<9 11P$P2<<? V0A+0R5 22$2 149 $2<< ?44 9?2 #<4

(roiectarea celor dou tabele este artat n !igura 2# 4i n !igura 26.

Figura 2(. Proiectarea tabelei C"IENTI.

Figura 2*. Proiectarea tabelei CO)ENDI.

5tapele crerii formularului sunt urmtoareleC 1. n caseta Database se selectea" opiunea =uer63 2. clic pe opiunea Create >uer6 b6 u#i$g 'i<ar+ care afi4a" caseta din !igura 2*D se aleg pe r2nd tabelele dorite din lista Table#E=uerie#D coloanele fiecrei tabele ce %or aprea n tabele re"ultat se mut n lista 'elected !ields cu butoanele 3F D n ca"ul nostru selectm tabelele CA)596) 4i C+;59O). 9u %om selecta c2mpul )D7CA)596 din tabela C+;59O)3 deoarece conine acelea4i %alori ca 4i c2mpul )D7CA)596 din tabela CA)596)D de ceQ Clic pe butonul Ne:t 4i se afi4a" caseta din !igura 2?3

16

Figura 2,. Pa#ul I. Crearea u$ei i$terog-ri. !electarea c;0&urilor.

Figura 2.. Pa#ul II. Alegerea ti&ului i$terog-rii.

$. se alege tipul interogriiD prima dat se marc/ea" opiunea 2etail -#%o'# eAer6 1iel+ o1 eAer6 recor+.D clic pe butonul Ne:t ce afi4a" caseta din !igura 293

1*

Figura 24. Pa#ul III. Alegerea titlului i$terog-rii.

4. se introduce titlul interogrii n caseta B%at title +o 6ou 'a$t 1or 6our >uer6 D se poate alege ntre a e1ecuta interogarea marc2nd opiunea O&e$ t%e >uer6 to Aie' i$1or0atio$ 4i modificarea interogrii marc2nd opiunea )o+i16 t%e >uer6 +e#ig$D clic pe butonul Ne:t 4i se afi4a" tabela re"ultat din !igura $<.

Figura 38. Tabela re<ultat.

)nstruciunea 'NA '5A5C6 generat de 0ccess pe ba"a formularului proiectat este cea din !igura $1.

Figura 31. I$#truc5iu$ea !E"ECT ge$erat- +i$ 1or0ularul &roiectat.

1?

(utem sumari"a re"ultatele cutrii prin aplicarea unor funcii de agregare. (entru aceasta la pasul ))3 !igura 2?3 alegem opiunea !u00ar6 4i obinem caseta din !igura $2. $. clic pe !u00ar6 O&tio$# 4i se afi4a" caseta 'ummarE +ptions din !igura $$3

Figura 32. Pa#ul II. Alegerea ti&ului i$terog-rii.

4. se alege funcia de agregare 'um. Clic +R 4i se afi4a" caseta din !igura $43

19

Figura 33. Pa#ul III. Alegerea 1u$c5iei +e agregare.

#. se alege modul de grupare a nregistrrilor dup datele calendaristice. Clic !inis/ 4i se afi4a" tabela re"ultat din !igura $#.

2<

Figura 3 . Pa#ul I?. Gru&area +atelor cale$+ari#tice 9$ i$terogare.

Figura 3(. Tabela re<ultat.

)nstruciunea 'NA generat din formularul de interogare este cea din !igura $6

Figura 3*. I$#truc5iu$ea !=" ge$erat- +i$ 1or0ularul &roiectat.

1.3 Crearea unui formular cu subformulare


)n ca"ul tabelelor ntre care e1ist relaii unu la mai muli3 este posibil s crem formulare ce conin subformulare. !ormularul principal afi4a" datele din partea unu a relaiei3 subformularul afi4a" datele din partea mai muli a relaiei. !ormularul principal afi4a" la un moment dat o linie a tabelei din partea unu a relaiei3 subformularul afi4a" numai liniile din tabela din partea mai muli a relaiei legate de linia afi4at de formularul principal.

21

(entru a e1emplifica modul de creare a unui formular cu subformulare %om considera tabelele CA)596) 4i C+;59O) din !igura 2# 4i !igura 263 cu informaii despre clienii unei intreprinderi 4i comen"ile lor. C/eia primar din tabele este subliniat.

1. .1 Crearea unui formular cu subformulare cu o aplicaie !r"itor


Vrem s crem un formular cu un subformular care3 pentru fiecare client3 s afi4e"e comen"ile acestuia. ;enionm c3 atributul )D7CA)596 este c/eie primar n tabela CA)596) 4i c/eie e1tern n tabela C+;59O) 4i aceast relaie a fost creat. Crearea unui formular cu subformular se face cu urmtorii pa4i C 1. n fereastra Database clic pe opiunea For0#3 2. clic pe butonul Ne'3 ce afi4a" caseta de dialog 9e !orm3 $. se selectea" opiunea For0 Bi<ar+3 4. n prima caset de dialog a aplicaiei !orm =i"ard se selectea" tabela CA)596) 4i se mut c2mpurile din aceast tabel ce %or apare n formularul principal3 %e"i !igura $*3 -din tabela din partea unu a relaiei. n lista 'elected !ields cu butoanele . 'e %a obser%a c acest pas este identic cu cel de la crearea unei interogri3 3F

Figura 3,. Pa#ul I. !electarea +atelor ce Aor a&are 9$ 1or0ularul &ri$ci&al.

#. se selectea" tabela C+;59O) 4i c2mpurile din aceast tabel ce %or aparea n subformular3 %e"i !igura $?3 -din tabela din partea mai muli a relaiei. se mut n lista 'elected !ields cu butoanele 3F . 'e %a obser%a c acest pas este identic cu cel de la crearea unei interogriD clic pe butonul Ne:tF

22

Figura 3.. Pa#ul II. !electarea +atelor ce Aor a&are 9$ #ub1or0ular.

6. aplicaia i"ard afi4a" caseta de dialog din !igura $9D n lista 3o' +o 6ou 'a$t to Aie' 6our +ataG se alege tabela ce %a apare n formularul principal3 n ca"ul nostru se marc/ea" opiunea bE CA)596)D se marc/ea" opiunea For0 'it% #ub1or0H#I 4i clic pe butonul Ne:t3

2$

Figura 34. Pa#ul III. Alegerea tabelei ce Aa a&are 9$ 1or0ularul &ri$ci&al.

*. se aleg opiunile dorite din casetele de dialog urmtoare. !ormularul creat n final este cel din !igura 4<3 n care3 pentru fiecare linie din tabela CA)596)3 a%em afi4at n subformular liniile cu comen"i din tabela C+;59O).

Figura 8. For0ular cu #ub1or0ulare 9$ Ae+erea For0.

0celas4i formular n %ederea Datas/eet este artat n !igura 41.

24

Figura 1. For0ular #ub1or0ulare 9$ Ae+erea 2ata#%eet.

1. .2 Crearea unui formular cu subformulare cu adugarea manual a subformularelor


0l doilea mod de a crea un formular cu subformulare este de a crea un formular cu aplicaia %r&itor pentru tabela CA)596) 4i s adugm manual obiectul 'ubform ce %a conine a doua tabel. Crearea formularului pentru tabela CA)596) nu este artat. !ormularul se crea" ca n lucrrile anterioare. !ormularul proiectat de aplicaia %r&itor este cel din !igura 423 iar proiectarea este cea din !igura 4$.

Figura 2. For0ularul creat +e a&lica5ia Ar-Jitor.

2#

Figura 3. Proiectarea 1or0ularului creat +e a&lica5ia Ar-Jitor.

0dugarea obiectului subformular se face astfelC 1. se afi4a" caseta 6oolbo1 din !igura 44 cu clic pe butonul 6oolbo1 instrumente3 3 al barei de

Figura

. Ca#eta Toolbo:.

2. se inserea" obiectul 'ubform din caseta 6oolbo1. Clic pe butonul !ub1or03 3 din caseta 6oolbo1 4i se desenea" un dreptung/i n "ona Detail din !igura 4$. Dup desenarea dreptung/iului se lansea" automat aplicaia 'ubform =i"ard din !igura 4#3

26

Figura (. A&lica5ia !ub1or0 Bi<ar+F &a#ul I.

$. la pasul ) se marc/ea" opiunea U#e e:i#ti$g Table# a$+ =uerie# 3 %e"i !igura 4#. Clic Ne:t 4i se afi4a" pasul )) n !igura 463

Figura *. A&lica5ia !ub1or0 Bi<ar+F &a#ul II.

2*

4. la pasul )) se selectea" tabela C+;59O) din lista Table# E =uerie# 4i se mut c2mpurile dorite din lista AAailable Fiel+# n lista !electe+ Fiel+# cu clic pe butonul . Clic Ne:t 4i se afi4a" pasul ))) din !igura 4*3

Figura ,. A&lica5ia !ub1or0 Bi<ar+F &a#ul III.

#. la pasul ))) se aleg opiunile Coo#e 1ro0 a li#t 4i !%o' CO)ENDI 1or eac% recor+ i$ C"IENTI u#i$g C"IENT_I2. Clic Ne:t 4i se afi4a" pasul )V din !igura 4?3

2?

Figura .. A&lica5ia !ub1or0 Bi<ar+F &a#ul I?.

6. la pasul )V se alege numele subformularului n caseta B%at $a0e 'oul+ 6ou liKe 1or 6our #ub1or0 or #ubre&ortG Clic Fi$i#%. !romularul proiectat n %ederea Design este cel din !igura 49 iar n %ederea !orm cel din !igura #<.

29

Figura 4. For0ularul Proiectat 9$ Ae+erea 2e#ig$.

Figura (8. For0ularul &roiectat 9$ Ae+erea For0.

Caseta de proprieti a subformularului este cea din !igura #1. 0ici se pot modifica di%erse proprieti. De e1emplu3 limea subformularului se poate adapta pun2nd proprietatea !ub+ata#%eet E:&a$+e+ la %aloarea Le#. $<

Figura (1. Ca#eta +e &ro&riet-5i a #ub1or0ularului.

!ormularul creat n %ederea Datas/eet este cel din !igura #2.

Figura (2. For0ularul &roiectat 9$ Ae+erea 2ata#%eet.

Aa un clic pe butonul al unei nregistrri se afi4a" 4i nregistrrile corespun"toare din tabela C+;59O)3 %e"i !igura #$.

$1

Figura (3. For0ularul &roiectat 9$ Ae+erea 2ata#%eet cu ulti0a 9$regi#trare e:&a$+at-.

)nstruciunea '5A5C6 de selectarea a datelor subformularului din tabela C+;59O) este cea din !igura #4.

Figura ( . I$#truc5iu$ea !E"ECT &e$tru #electarea +atelor +i$ #ub1or0ular.

51erciiu. 'e %or compara proiectrile celor dou formulare cu subformulare3 cel creat de aplicaia %r&itor 4i cel cu adugarea manual a subformularului.

1.4 Selectarea liniilor din mai multe tabele ce ndeplinesc anumite condiii
)nstruciunea '5A5C6 permite specificarea anumitor condiii de selectare a liniilor din mai multe tabele care au %alori identice pentru anumite pentru anumite coloane. )n prima form a instruciunii '5A5C6 specificarea acestor condiii se face n clau"a =I5R5. )n a doua form specificarea acestor condiii se face n clau"a )995R 8+)9. 0ceste legturi se pot specifica grafic3 n formularul de interogare3 dup cum %om arta n continuare. )n acest ca" legturile e1ist doar n cadrul interogrii. !ie tabelele R1 4i R2 de mai &os cu c/eile primare @ 4i respecti% O.

$2

R1 @ @1 @2 @$ @4 a. tabela R1
Tabelul 3. Tabelele R1 /i R2.

R2 K K1 K2 K2 K$ K K1 K2 K2 K$ b. tabela R2 O O1 O2 O$ O4

Vom selecta c2mpurile @3 K3 O ce au %alori egale pentru c2mpurile K din cele dou tabele. Definiiile celor dou tabele sunt cele din 6abelul 4 4i 6abelul #.

a. definiie
Tabelul . Tabela R1.

b. date

a. definiie
Tabelul (. Tabela R2.

b. date

Crearea interogrii se face astfel. 1. n caseta Database se selectea" opiunea =uer63 2. clic pe opiunea Create >uer6 i$ 2e#ig$ ?ie' ce afi4a" formularul 'elect NuerE 4i caseta '/o 6able3 $. se selectea" tabelele R1 4i R2 n caseta '/o 6able 4i se adaug la formularul de interogare cu clic pe butonul A++D se nc/ide caseta cu butonul Clo#e@ tabelele apar n formularul 'elect NuerE ca n !igura ##3

$$

4. se crea" legtura ntre c2mpul K din tabela R1 4i c2mpul K din tabela R2 select2nd c2mpul K n tabela R1 4i trg2ndu,l cu mousul peste c2mpul K din tabela R23 %e"i !igura ##3 #. se sal%ea" formularul creat cu una dintre opiunile !aAe sau !aAe A# ale meniului File3 sau cu butonul Clo#e al ferestrei formularului3 6. se afi4a" tabela re"ultat cu clic pe butonul al barei de instrumente sau pe meniul =uer6 Ru$3 sau pe meniul ?ie' 2ata#%eet ?ie' sau pe opiunea 2ata#%eet ?ie' a meniului conte1tual al formularului.

Figura ((. For0ularul !elect =uer6.

Re"ultatul rulrii este tabela din !igura #6. !e Aa e:a0i$a 0o+ul +e Jo$c5iu$e a li$iilor +i$ cele +ou- tabele.

Figura (*. Re<ultatul i$terog-rii.

)nstruciunea '5A5C6 generat de 0ccess este cea din !igura #*.

$4

Figura (,. I$#truc5iu$ea !E"ECT core#&u$<-toare 1or0ularului +i$ Figura ((.

Aa un clic cu butonul drept pe legtur se afi4a" meniul conte1tual al legturii din !igura #?. )n acest meniu se poate 4terge legtura 4i se poate afi4a caseta 8oin (roperties din !igura #9.

Figura (.. )e$iul co$te:tual al leg-turii.

Figura (4. Ca#eta Joi$ Pro&ertie#.

1.5 Probleme propuse


)n tabelele de mai &os3 c/eia primar a unei tabele este subliniat. 1. !ie tabelele de mai &os din ba"a de date a unei intreprinderi. CA)596) )D7CA)596 12#$ 44?1 2$96 9:;5 )onescu (opescu >eorgescu (R59:;5 Vasile >eorge 9icolae 0DR5'0 Craio%a )asi Bucuresti $#

2$41 19#6

Vasilescu 9icolae

)oan Vasile C+;59O)

6imisoara Clu&

)D7C+;09D0 124 2$? $$1 214 1*4 229

9:;0R7C+;09D0 D060 *?2$# 1P1<P2<<9 129?4 12P2<P2<<? 44962 *P14P2<<9 1#*$4 <$P<?P2<<* 2$6## #P14P2<<9 14*66 11P$P2<<?

':;0 22$2 149 $2<< ?44 9?2 #<4

)D7CA)596 44?1 19#6 44?1 2$96 2$41 44?1

C/eia primar a tabelei CA)596) este )D7CA)5963 cea a tabelei C+;59O) este )D7C+;09D0. Coloana )D7CA)596 a tabelei C+;59O) este c/eie e1tern. C2mplul D060 %a fi de tipul DateP6ime3 iar c2mpul ':;0 de tipul CurrencE. se %or proiecta cele dou tabeleD regulile de %alidare suntC )D7CA)596 SM 1<<<3 )D7C+;09D0 SM 1<<3 se %or introduce datele cu a&utorul unui formular3 se %a crea legtura corespun"toare c/eii e1terne3 se %a crea o interogare care s afi4e"e c2mpurile 9:;53 (R59:;53 0DR5'03 9:;0R7C+;09D03 D060 4i ':;03 se %a scrie instruciunea '5A5C6 pentru interogare. 2. !ie tabelele de mai &os din ba"a de date a unei maga"in. 09>0806) )D 1<< 2<< $<< 4<< 9ume )onescu (opescu >eorgescu Vasilescu Departament Van"ari ;arGeting Contabilitate Contabilitate !unctie 0gent 0gent Contabil Contabil

D5(0R60;596 )D 1<< 2<< $<< 9ume Contabilitate ;arGeting Van"ari 0dresa Craio%a Bucuresti Craio%a

C/eile primare ale celor daou tabele sunt c2mpurile )D de tip numeric. Celelalte c2mpuri au tipul te1t. se %or proiecta cele dou tabele3

$6

se %or introduce datele n c2mpurile Departament din tabela 09>0806) 4i 9ume din tabela D5(0R60;596 cu a&utorul unei casete combinate -Combo Bo1.3 se %a crea o interogare care s afi4e"e c2mpurile )D3 9ume3 Department3 !unctie din tabela 09>0806) 4i c2mpul 0dresa din tabela D5(0R60;596. Condiia de selectare este c2mpul Department al tabelei 09>0806) s fie egal cu c2mpul 9ume al tabelei D5(0R60;596.

1.6 ntreb!ri de control


1. Care sunt cele dou forme ale instruciunii '5A5C6 pentru selectarea coloanelor din mai multe tabeleQ 2. Ce este integritatea referenialQ $. Care sunt pa4ii la definirea grafic a relaiilor ntre tabeleQ 4. Care sunt pa4ii la definirea programatic a relaiilor ntre tabeleQ #. Cum se crea" un formular cu subformulareQ

$*

Вам также может понравиться