Professional Documents
Culture Documents
n rest se folosete dificila tehnic a Next-urilor.
Definii un formular pentru vizualizarea/ actualizarea comenzilor.
n panoul cu obiectele bazei de date (din stnga), se d clic pe tabela COMENZI, apoi, n meniul Create,
se apas opiunea Form.
Lucrare practic nr. 2
Dispunei de o baz de date Credite_PF n care o banc evideniaz creditele ctre
clienti persoane fizice. Sunt cuprinse tabelele CLIENTI(Codcl, Nume, Adresa, Localit),
CONTRACTE(Nrcontract, Codcl, Data, Valcredit, Ratadob, Perioada),
RESTITUIRI(Nrcontract, Dataplata, Sumaplatita).
Analizai atributele din fiecare tabel i stabilii cheile primare corespunztoare acestora.
A se vedea explicaiile pentru cerina similar, de la prima lucrare.
Definii legturile dintre tabele i aplicai restriciile refereniale.
A se vedea explicaiile pentru cerina similar, de la prima lucrare.
S se adauge un contract pentru un client nou ce va avea codul 211: contractul nr.
1255 din 15 mai 2010, pentru un credit n sum de 50 milioane lei, pe 5 ani, cu o rat a
dobnzii de 25%. Clientul se numete lonescu Florin, din Iai, str. Izvor nr. 22.
Varianta simpl
Se introduc valorile, direct n tabele, avnd n vedere s se populeze nti tabela-printe (CLIENTI),
apoi tabela-copil (CONTRACTE).
7
Varianta cu APPEND QUERY
A se vedea explicaiile pentru cerina similar, de la prima lucrare.
Varianta SQL
A se vedea explicaiile pentru cerina similar, de la prima lucrare.
o Creare client
INSERT INTO clienti ( codcl, nume, localit, adresa )
SELECT 211, 'lonescu Florin', 'IASI', 'Str. Izvor nr. 22'
o Adugare contract
INSERT INTO contracte ( nrcontract, data, valcredit, perioada, ratadob, codcl )
SELECT 1255, #5/15/2010#, 50000000, 5, 0.25, 211
Scriei interogarea SQL pentru a afia o list a contractelor la care rata dobnzii este de
65% i valoarea creditului mai mare sau egal cu 5000 lei (numr contract, data,
valoare).
SELECT nrcontract, data, valcredit
FROM contracte
WHERE valcredit>=5000 AND ratadob=0.65
Scriei interogarea SQL pentru a obine situaia contractelor pe localiti (localitate,
numr de contracte, total valoare credite).
SELECT localit, COUNT(nrcontract), SUM(valcredit)
FROM clienti INNER JOIN contracte ON clienti.codcl = contracte.codcl
GROUP BY localit
8
S se afieze pe ecran toate restituirile din ziua de 1 martie 2010.
Varianta cu Design View Varianta SQL
SELECT nrcontract, dataplata, sumaplatit
FROM restituiri
WHERE dataplata=#3/1/2010#
S se ntocmeasc un raport care s cuprind pentru fiecare contract sumele pltite
(data i suma platit), precum i suma total restituit.
n rest, se poate merge cu clasicul NEXT.
Realizai un formular pentru vizualizarea/ actualizarea nomenclatorului de clieni.
n panoul cu obiectele bazei de date (din stnga), se d clic pe tabela CLIENTI, apoi, n meniul Create, se
apas opiunea Form.
9
Lucrare practic nr. 3
Dispunei de o baz de date VANZARI cu tabelele CLENTI(Codcl, Numecl, Adresa,
Zona), AGENTI(Codag, Numeag, Salbaza, Zona) i COMENZI(Nrcom, Data, Codcl, Codag,
Valoare).
Analizai atributele din fiecare tabel i stabilii cheile primare corespunztoare acestora.
A se vedea explicaiile pentru cerina similar, de la prima lucrare.
Definii legturile dintre tabele i aplicai restriciile refereniale.
A se vedea explicaiile pentru cerina similar, de la prima lucrare.
Definii o regul de validare pentru atributul Codcl (Codcl [200,1999]).
n urma restructurrilor au fost concediai 2 ageni: A7 i A9. S se tearg nregistrrile
corespunztoare.
Varianta simpl
Se terg, pur i simplu,nregistrrile solicitate direct din tabel. n cazul n care apare un mesaj, la
tergere, nseamn c exist nregistrri pentru acei ageni n tabela copil
Varianta cu Design View Varianta SQL
DELETE codag
FROM agenti
WHERE codag="A7" OR codag="A9"
10
S se afieze pe ecran o list a comenzilor agentului A1, n ordinea descresctoare a
valorii.
Varianta cu Design View Varianta SQL
SELECT nrcom, codag, valoare
FROM comenzi
WHERE codag="A1"
ORDER BY valoare DESC
S se afieze prima comand a clientului 330.
Varianta cu Design View Varianta SQL
SELECT codcl, FIRST(data)
FROM comenzi
GROUP BY codcl
HAVING codcl=330
Varianta mai simpl
6
SELECT First(data)
FROM comenzi
WHERE codcl=330
Scriei interogarea SQL pentru a afia o list a comenzilor cu valoare mai mare de 250
lei, din zona Centru (Nrcom, Numecl, Valoare).
SELECT nrcom, nume, valoare
FROM clienti AS Cl INNER JOIN comenzi AS C ON Cl.codcl = C.codcl
WHERE valoare>=250 AND zona="CENTRU"
S se realizeze un raport al comenzilor n ordinea descresctoare a valorii (Nrcom, Data,
Codag, Valoare). La sfrit se va afia valoarea total a comenzilor.
6
Este de remarcat c, dac se face grupare, condiia nu se mai pune cu WHERE, ci cu HAVING
11
n cazul n care se dorete mutarea cmpului valoare, la final (cum ar fi mai elegant), se apas pe cmpul
VALOARE, n zona Detail (se va portocaliza), apoi, ducnd mouse-ul, n colul din dreapta jos a acestui
textbox, el va lua forma din imaginea de mai sus. innd apsat butonul stnga, se trage spre dreapta. Dac
e fcut bine tragerea, la grania ntre cmpuri va aprea o linie vertical portocalie, care va sri, ntre
cmpuri, pn la final, unde vom elibera mouse-ul.
12
Din meniul Design se d clic pe butonul TextBox, apoi se coboar n Report Footer, unde se d clic cam pe
unde este acea stelu. Vor aprea dou obiecte:
- Label cel pe care scrie Text12 i care, prin clic pe el, poate fi redenumit cu expresia Valoare
total,
- TextBox cel pe care scrie Unbound i n care vom face calculul. Varianta cea mai comod este de
a da clic n interiorul ei, disprnd textul i s scriem =Sum([valoare]).
Mergnd n meniul Design sau Home, pe butonul View i alegnd opiunea Report View sau Print Preview,
va aprea rezultatul final. Aceast aciune poate fi realizat din Design View sau din Layout View.
Desigur, cmpurile aferente totalului (Label i TextBox) mai pot fi ajustate stnga-dreapta ca s se
suprapun locaiei cmpului Valoare, din Detail.
Realizai un formular pentru vizualizarea/ actualizarea nomenclatorului de clieni.
n panoul cu obiectele bazei de date (din stnga), se d clic pe tabela Clieni, apoi, n meniul Create, se
apas opiunea Form.
Lucrare practic nr. 4
Dispunei de o baz de date CREDITE_PF n care o banc evideniaz creditele
ctre clieni persoane fizice. Sunt cuprinse tabelele CLIENTI(Codcl, Nume, Adresa, Localit),
CONTRACTE(Nrcontract, Codcl, Data, Valcredit, Ratadob, Perioada),
RESTITUIRI(Nrcontract, Dataplata, Sumaplatita).
Analizai atributele din fiecare tabel i stabilii cheile primare corespunztoare acestora.
A se vedea explicaiile pentru cerina similar, de la prima lucrare.
13
Definii legturile dintre tabele i aplicai restriciile refereniale.
A se vedea explicaiile pentru cerina similar, de la prima lucrare.
Definii o regul de validare pentru atributul Codcl (Codcl [100,999]).
n condiiile n care contractul 1200 este anulat, s se tearg acest contract din tabela
CONTRACTE i toate ncasrile corespunztoare din tabela RESTITUIRI.
Varianta simpl
Se va terge, pur i simplu, nregistrarea din tabel, avnd n vedere ca s se tearg nti cea din tabela-
copil (RESTITUIRI), apoi din tabela-printe (CONTRACTE).
Varianta DELETE QUERY
Din meniul Create Query Design n formularul Show Table, se adaug tabela RESTITUIRI (tabela-
copil). Din meniul Design se alege opiunea Delete . Asta va face ca, n formularul unde se
configureaz interogarea, s apar un rnd nou (Detele). Se completeaz ca n figura de mai jos, apoi se
reia procesul identic i pentru tabela-printe CONTRACTE.
nti RESTITUIRI , apoi CONTRACTE
Varianta SQL
o tergere restituiri (din tabela copil)
DELETE nrcontract
FROM restituiri
WHERE nrcontract=1200
o tergere contract (din tabela printe)
DELETE NRCONTRACT
FROM contracte
WHERE NRCONTRACT=1200
14
Scriei interogarea SQL pentru a afia o list a contractelor cu o valoare mai mare sau
egal cu 5000 lei, ncheiate n luna ianuarie (numr contract, data, valoare).
SELECT nrcontract, data, valcredit
FROM contracte
WHERE Month([data])=1 AND valcredit>=5000
S se afieze pe ecran toate restituirile pentru contractul nr. 1230.
Varianta cu Design View Varianta SQL
SELECT nrcontract, sumaplatit
FROM restituiri
WHERE nrcontract=1230
S se ntocmeasc un raport care s cuprind restituirile pentru fiecare contract
(identificat n antetul de grup prin numr i dat), indicnd data i suma platit, iar la
sfrit totalul fiecrui contract.
Apoi, se poate merge cu Next, pn la final.
15
Realizati un formular pentru vizualizarea / actualizarea nomenclatorului de clieni.
n panoul cu obiectele bazei de date (din stnga), se d clic pe tabela CLIENTI, apoi, n meniul Create,
se apas opiunea Form.
Lucrare practic nr. 5
Dispunei de o baz de date Credite_PF n care o banc evideniaz creditele ctre
clieni persoane fizice. Sunt cuprinse tabelele CLIENTI(Codcl, Nume, Adresa, Localit),
CONTRACTE(Nrcontract, Codcl, Data, Valcredit, Ratadob, Perioada),
RESTITUIRl(Nrcontract, Dataplata, Sumaplatita).
Analizai atributele din fiecare tabel i stabilii cheile primare corespunztoare acestora.
A se vedea explicaiile pentru cerina similar, de la prima lucrare.
Definii legturile dintre tabele i aplicai restriciile refereniale.
A se vedea explicaiile pentru cerina similar, de la prima lucrare.
Definii o regul de validare pentru atributul Codcl (Codcl [150,1999]).
A se vedea imaginea pentru cerina similar, de la lucrare 4.
S se nregistreze restituirea unei rate la contractul 1198, n sum de 350 lei, pe data
de 4 mai 2010.
Varianta simpl
Se introduc valorile, direct n tabel. Este bine, n prealabil, s se verifice n tabela-printe
(CONTRACTE), dac exist contractul cu nr. 1198.
Varianta cu APPEND QUERY
Din meniul Create Query Design se nchide formularul Show Table, fr a aduga vreo tabel,
apsndu-se direct butonul Close. Din meniul Design se alege opiunea Append
. Va aprea un
formular, de unde vom alege tabela RESTITUIRI. Asta va face ca, ulterior s remarcm, n formularul
unde se configureaz interogarea, c a aprut un rnd nou (Append To).
Varianta SQL
INSERT INTO restituiri ( nrcontract, dataplata, sumaplatit )
SELECT 1198, #5/4/2010#, 350
Scriei interogarea SQL pentru a afia o list a contractelor la care rata dobnzii este de
65% i perioada mai mic de 5 ani (numr contract, data, perioada, valoare).
SELECT nrcontract, data, perioada, valcredit, ratadob
FROM contracte
WHERE perioada<=5 AND ratadob=0.65
16
S se afieze pe ecran toate restituirile la contractul 1198 (numr contract, data plii,
suma pltit).
Varianta cu Design View Varianta SQL
SELECT nrcontract, dataplata, sumaplatit
FROM restituiri
WHERE nrcontract=1198
S se ntocmeasc un raport care s cuprind datele despre contracte i restituirile
aferente. Pentru fiecare contract se specific n antetul de grup numrul, data ncheierii,
valoarea i perioada. Raportul va cuprinde sumele pltite (data i suma platit).
Apoi se poate merge cu ncredere, pe Calea Next-ului, pn la final.
Realizai un formular pentru vizualizarea/ actualizarea nomenclatorului de clieni.
n panoul cu obiectele bazei de date (din stnga), se d clic pe tabela CLIENTI, apoi, n meniul Create,
se apas opiunea Form.