Академический Документы
Профессиональный Документы
Культура Документы
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...................................................................................................$*
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..
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.
$. 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.
+dat cu afi4area ferestrei Relations/ips apare meniul Relatio$#%i& 4i bara de instrumente de%ine cea din !igura ?.
a. meniul Relations/ips
'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.
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
$. 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.
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.
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.
Dup definrea relaiei ntre tabelele '0A0R): 4i 09>0806)3 tabela '0A0R): arat ca n !igura 1#.
)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.
$. 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.
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.
)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.
12
$. 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
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$
#. 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$.
)nstruciunea '5A5C6 generat de 0ccess pe ba"a formularului din !igura 22 este cea din !igura 24.
14
a. meniul !ormat
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.
(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
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
$. 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*
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 $<.
)nstruciunea 'NA '5A5C6 generat de 0ccess pe ba"a formularului proiectat este cea din !igura $1.
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
4. se alege funcia de agregare 'um. Clic +R 4i se afi4a" caseta din !igura $43
19
#. se alege modul de grupare a nregistrrilor dup datele calendaristice. Clic !inis/ 4i se afi4a" tabela re"ultat din !igura $#.
2<
)nstruciunea 'NA generat din formularul de interogare este cea din !igura $6
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.
#. 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
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$
*. 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).
24
2#
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
$. 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
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
#. 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?
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
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#. $<
Aa un clic pe butonul al unei nregistrri se afi4a" 4i nregistrrile corespun"toare din tabela C+;59O)3 %e"i !igura #$.
$1
)nstruciunea '5A5C6 de selectarea a datelor subformularului din tabela C+;59O) este cea din !igura #4.
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.
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.
$4
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.
2$41 19#6
Vasilescu 9icolae
6imisoara Clu&
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<<?
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.
$*