Sunteți pe pagina 1din 98

Radu Lixndroiu

LIMBAJE DE PROGRAMARE I
BAZE DE DATE
ACCESS

SUPORT PENTRU LABORATOR

BRAOV - 2008

Limbaje de programare i baze de date - ACCESS

SISTEMUL DE GESTIUNE A
BAZELOR DE DATE
Principalele obiective ale capitolului sunt:
Concepte principale din teoria relaional
Cheia primar
Cheia extern
Sisteme de gestiune a bazelor de date

Sistemul de gestiune a bazelor de date (SGBD) este


componenta unui sistem de baz de date care are rolul de a permite
descrierea i manipularea conform unui model de date.
n momentul actual, cea mai mare parte a SGBD-urilor care se
utilizeaz sunt bazate pe modelul relaional.

Limbaje de programare i baze de date - ACCESS

PRINCIPALELE CONCEPTE DIN TEORIA RELAIONAL


Domeniul - reprezint un ansamblu de valori, caracterizat
printr-un nume. Domeniul se poate defini explicit, prin enumerarea
tuturor valorilor care aparin acestuia (exemplu D1:{rou, galben,
albastru}), sau implicit prin precizarea proprietilor pe care le au
valorile domeniului respectiv (exemplu: D2:{e/e N }
Relaia - (tabela) reprezint un subansamblu al produsului
cartezian dintre mai multe domenii (D1xD2x) caracterizat printr-un
nume. Reprezentarea folosit pentru o relaie (R) este tabloul
bidimensional (tabela de date) de forma:

Atributul este coloana unei relaii caracterizate printr-un nume.


Fiecare atribut i ia valorile dintr-un domeniu. Mai multe atribute pot
lua valori din acelai domeniu.
Tuplul este linia dintr-o relaie i nu are nume. Valorile dintr-un
tuplu aparin produsului cartezian dintre domeniile relaiei (exemplu
tuplul v1, v2, ...,vn, unde v1 D1, v2 D2,...,vn Dm, cu n m numere
ntregi).
Schema relaiei este un ansamblu format din numele relaiei (R)
urmat ntre paranteze rotunde de lista atributelor (Ai), pentru fiecare
atribut precizndu-se domeniul asociat (Dj):
R(A1:D1, A2:D2,...,An:Dm):
unde n m numere ntregi.
Cheia este un atribut sau un ansamblu de atribute cu ajutorul
cruia se poate identifica un tuplu dintr-o relaie.

Limbaje de programare i baze de date - ACCESS

Cheia este primar dac identificarea este unic, adic exist


un singur tuplu cu o anumit valoare pentru cheie.
Cheia este simpl, dac este format dintr-un singur atribut.
Cheia este compus dac este format dintr-un ansamblu de
atribute.
Cheia este extern ntr-o relaie R1, dac ansamblul de
atribute care o definete ia valori din aceleai domenii ca i cheia
primar a unei relaii R2 si dac are rolul de a stabili o legtura
(asociere) ntre cele dou relaii.
Prezentare comparativ a noiunilor privind organizarea
datelor n memoria extern n fiiere, baze de date relaionale (BDR)
i cele utilizate n VFP.
Mem
extern
BDR

FISIER

CMP

CHEIE

RELAIE

ATRIBUT

ASOCIERE

TABEL

CMP

ASOCIERE
(LEGATURA)

CHEIE
EXTERN
CHEIE

DOMENIU

Access

CHEIE
PRIMAR
CHEIE
PRIMAR

Intrebri:
1. Pentru tabelele FURNIZORI i FACTURI
(ANEXA 1) care sunt cheile?
2. Dai exemplu de un atribut i de un tuplu
pentru relaia FACTURI (ANEXA 1)

Limbaje de programare i baze de date - ACCESS

STOCAREA DATELOR
N BAZE DE DATE
Principalele obiective ale capitolului sunt:
Crearea unui nou fiier access
Crearea tabelelor
Modificarea structurii unei tabele
Introducerea i vizualizarea datelor
Realizarea relaiilor ntre tabele
Modificarea i tergerea datelor

Un fiier Access este format din obiecte cum ar fi: tabele,


formulare, queries, rapoarte pagini, macros i module.

Limbaje de programare i baze de date - ACCESS

Fereastra de baz - Access


CREAREA UNUI NOU FIIER ACCESS
Fiierele Access au extensia .mdb

Pentru crearea unui nou fiier Access se alege n meniul FILE


opiunea NEW.

FILE-NEW
Din meniul din partea din dreapta care apare se alege opiunea
Blank Database

Limbaje de programare i baze de date - ACCESS

Alegerea opiunii Blank Database


Urmtorul pas n crearea bazei de date este alegerea unui
nume corespunztor fiierului mdb, precum i alegerea locului de
salvare al fiierului pe calculator.

Alegerea numelui i al locului de salvare


Fiierul Access creat este gata de lucru. n acest moment n
fiierul nu conine nici o informaie (baze de date, interogri, pagini
etc.)

Limbaje de programare i baze de date - ACCESS

Fiierul student.mdb este creat i gata de lucru


CREAREA TABELELOR
n primul rnd, deoarece dorim s lucrm la nivel de tabele,
vom selecta din panoul de comand din cadrul meniului de obiecte
(OBJECTS) opiunea TABLES (tabele).

Selectarea opiunii TABLES din panoul de comand


Pentru crearea unei tabele nu vom utiliza generatoare de tip
wizard. Crearea unei tabele nu trebuie s aib limitri, de aceea din
panoul de comand alegem prima opiune: CREATE TABLE IN
DESIGN VIEW.

Limbaje de programare i baze de date - ACCESS

Selectarea opiunii de creare a unui nou tabel


Pentru a exemplifica crearea de tabele vom crea tabela
angajai care are forma:
Angajai
cmp
cod (CP)
nume
prenume
data_nasterii
sal_brut
cod_dep

tip
numeric
text
text
data
numeric
text

Introducerea datelor se face n fereastra TABLE. La FIELD


NAME se introduce numele fiecrui cmp al tabelei dup care se
alege de la DATA TYPE tipul corespunztor (text, memo, numeric,
dat/timp, sum de bani, numr-automat, da/nu, obiect OLE,
hyperlink).

Introducerea cmpurilor i selectarea


tipului corespunztor

Limbaje de programare i baze de date - ACCESS

10

n momentul n care un cmp se dorete a fi setat ca cheie


primar, pe linia unde este numele cmpului de d clik dreapta de
mouse si se alege opiunea PRIMARY KEY.

Alegerea opiunii PRIMARY KEY


La selectarea opiunii de cheie primar, va apare n dreptul
numelui cmpului un simbol de cheie.

Cheie primar
Pentru informaii suplimentare privind cmpul respectiv, n
partea de jos a ecranului avem urmtoarele opiuni:

Opiunile cmpului

Limbaje de programare i baze de date - ACCESS

11

n final, tabela angajati va avea urmtoarea structur:

Tabela Angajati
nchiderea configurrii tabelei se face apsnd simbolul X din
dreapta
ferestrei
TABLE
(ATENIE
NU
NCHIDEREA
PROGRAMULUI ACCESS!).

nchiderea ferestrei de configurare a tabelei


Salvarea tabelei realizate:

Salvarea tabelei

Limbaje de programare i baze de date - ACCESS

12

Denumirea tabelei realizate


n panoul de comand apar toate tabelele realizate, n ordine
alfabetic:

Lista tabelelor realizate


MODIFICAREA STRUCTURII UNEI TABELE
Dup realizarea unei tabele se poate observa c lipsesc unele
cmpuri, trebuiesc modificate denumirile cmpurilor sau tipul lor.
Modificarea structurii se realizeaz prin selectarea tabelei ce se
dorete modificat i apoi alegerea opiunii DESIGN din panoul de
comand.

Limbaje de programare i baze de date - ACCESS

13

Modificarea structurii unei tabele


Prin aceti pai se reintr n fereastra de configurare a tabelei
unde pot fi operate toate modificrile necesare.
INTRODUCEREA I VIZUALIZAREA DATELOR
Pentru a introduce sau vizualiza datele dintr-o tabel se d
dublu clik pe numele ei din tabloul de comand.

Introducerea / vizualizarea datelor

Limbaje de programare i baze de date - ACCESS

14

Datele introduse n tabela ANGAJATI


REALIZAREA RELAIILOR NTRE TABELE
ntre tabelele existente se pot crea relaii pe baza cheilor
primare i externe existente.
In bara de comenzi se alege opiunea RELATIONSHIPS dnd
clik pe simbolul

Crearea relaiilor ntre tabele


Pentru adugarea tabelelor n fereastra de relaii se selecteaz
tabela dorit dup care de apas butonul ADD.

Limbaje de programare i baze de date - ACCESS

15

Adugarea tabelelor in fereastra de relaii


Pentru realizarea relaiilor se selecteaz cheia extern din
tabel i se trage pe cheia primar a tablei cu care se creeaz relaia.

Realizarea unei relaii


Programul vede legtura ntre cele dou cmpuri din cele dou
tabele i cere confirmarea realizrii legturii:

Realizarea legturii

Limbaje de programare i baze de date - ACCESS

16

Se procedeaz la fel cu toate relaiile existente ntre toate


tabelele.
n final se pot vizualiza toate relaiile existente ntre toate
tabelele bazei de date.

Vizualizarea legturilor existente n baza de date


MODIFICAREA I TERGERA DATELOR
Modificarea, inserarea i tergerea sunt operaii care pot fi
fcute att manual (vizualiznd datele tabelei) i opernd direct ct i
pe baza de comenzi scrise sub form de QUERIES.
Pentru modificarea sau tergerea datelor dintr-o tabel se intr
n tabela din panoul de comand, cu dublu click.

Limbaje de programare i baze de date - ACCESS

17

Vizualizarea datelor din tabel


Modificarea datelor este foarte facil, orice modificare fcut n
tabel memorndu-se automat.

Modificarea unei valori in tabel


Pentru tergerea unei valori din tabel se d buton dreapta de
mouse pe suprafaa liniei ce se dorete a fi tears. Va apare un
meniu din care se ale opiunea DELETE RECORD.

Limbaje de programare i baze de date - ACCESS

18

tergerea unei linii dintr-o tabel


Pentru tergerea mai multor linii dintr-o tabel se procedeaz
similar cu meniunea c nainte trebuie selectate toate liniile ce vor fi
terse.

Selectarea mai multor linii pentru a fi terse

Limbaje de programare i baze de date - ACCESS

19

Intrebri:
Care sunt componentele unei tabele?
Ce nseamn actualizarea coninutului unei
tabele? Cum se actualizeaz coninutul unei
tabele?
Prezentai modul de vizualizare a coninutului
unei tabele.
Prezentai modul de actualizare a structurii unei
tabele.
Studiu individual
Aplicaia 1: Creare i actualizare tabel.

APLICAIA 1
Creai o tabel urmtoarea structur:
Nume
Prenume
Cod
Oras
Medie
Admis
i cu urmtorul coninut :
Nume
Prenume Cod
Ionescu
Maria
1
Vlad
Mirela
8
Georgecu Ana
5
Popescu
Denisa
4
Rauta
Andreea 6
Stanciu
Roxana
2

Oras
Iasi
Deva
Cluj
Arad
Deva
Deva

C
C
N
C
N
C

30
30
3
20
6;2

Medie Admis
9.27
9.50
8.85
9.33
9.50
9.10

Limbaje de programare i baze de date - ACCESS


Radulescu Ruxandra 3
Matei
Iuliana
7

20

Cluj
9.29
Ploiesti 9.60

a) S se adauge un nou cmp, denumit Admis.


b) Se presupune c doar candidatele cu medii peste 9.25 au fost
admise. S se completeze valorile corespunztoare pentru
cmpul Admis.
c) Candidatele din Deva sunt de fapt din Bucureti. S se modifice
valorile corespunztoare din cmpul ora.
d) S se adauge nregistrarea:
Cretulescu Alexandra 9

Orastie 8.00

Limbaje de programare i baze de date - ACCESS

21

CREAREA INTEROGRILOR
Principalele obiective ale capitolului sunt:
Insert - adugarea de linii n tabel
Modificarea unei comenzi
Delete - tergerea nregistrrilor
Update - modificarea datelor dintr-un cmp

Interogrile sau queries pot fi fcute pentru una sau mai multe
tabele existente n baza de date.
Pentru nceput trebuie selectat din cadrul meniului OBJECTS
opiunea QUERIES.

Limbaje de programare i baze de date - ACCESS

22

Selectarea opiunii QUERIES


i pentru crearea comenzilor de tip query avem la dispoziie un
generator de comenzi de tip wizard. Din motive de limitri ale acestui
generator nu l vom utiliza. n consecin pentru crearea unei
interogri vom alege prima opiune CREATE QUERY IN DESIGN
VIEW.
Fereastra care va apare SHOW TABLE este o fereastr n care
se pot selecta tabelele care vom lucra. Dup selectare se apas ADD
pentru adugarea lor n sintaxa de interogare. Adugarea tabelelor
din aceast fereastr nu este obligatorie, deoarece ele pot fi
adugate i ulterior (manual prin scriere) cnd scriem sintaxa
interogrii.

Limbaje de programare i baze de date - ACCESS

23

Adugarea tabelelor n interogare


n fereastra QUERY, pe suprafaa gri prin click dreapta de
mouse se poate accesa urmtorul meniu:

Meniu QUERY
Prima opiune SQL o vom folosi pentru a scrie interogrile.
Pentru ca principalele cuvinte cheie ale interogrii s fie scrise
putem selecta din cadrul meniului opiunea QUERY TYPE.
Astfel n acrul acestui submeniu avem urmtoarele opiuni:

Limbaje de programare i baze de date - ACCESS

24

Opiunile submeniului QUERY TYPE


INSERT - ADUGAREA DE LINII N TABEL
Pentru adugarea unor linii noi n tabel se utilizeaz INSERT.
INSERT INTO TABELA [(ATRIBUT1, ATRIBUT2,... .)] VALUES
(VALOARE_ATRIBUT1, VALOARE_ATRIBUT2,... .)
De exemplu dac pentru tabela DEPARTAMENTE avem
urmtoarele date:

Datele tabelei DEPARTAMENTE


i dac dorim s adugm un nou departament care are datele:
cod_dep: fin, den: financiar, localitate: bucuresti, sef: tecar gabriela,
telefon: 1234567
vom avea:

Limbaje de programare i baze de date - ACCESS

25

Din meniul QUERY TYPE se alege opiunea APPEND QUERY

Alegerea opiunii APPEND QUERY


sau se poate direct ale opiunea SQL VIEW
n fereastra de comenzi SQL vom scrie comanda:

Exemplu de comanda INSERT


Dup scrierea oricrei comenzi, aceasta trebuie salvat pentru
a putea fi executat ulterior.

Salvarea comenzii

Limbaje de programare i baze de date - ACCESS

26

Odat salvat comanda trebuie s aib un nume pentru a putea


fi recunoscut i executat ulterior.
Atenie! Numele trebuie s fie ct mai sugestiv, executarea
unor comenzi eronate poate produce deteriorarea datelor din baza de
date.

Numirea comenzii
n acest moment comanda este salvat i se poate executa.

Vizualizarea comenzii nou create


Pentru executarea comenzii vom da dublu click pe numele ei n
panoul de comand.
Pentru verificarea execuiei comenzii, programul cere 2
confirmri:
1) pentru execuia comenzii

Acceptul de rularea a comenzii


2) pentru a aduga n tabel o nou nregistrare

Limbaje de programare i baze de date - ACCESS

27

Acceptul de adugare in tabel a unei


noi nregistrri
Dac vizualizm datele tabelei DEPARTAMENTE vom vedea
nregistrarea fcut prin comanda INSERT

Vizualizarea tabelei DEPARTAMENTE


MODIFICAREA UNEI COMENZI
Exist posibilitatea s apar necesitatea modificrii unei
comenzi existente. Modificarea se face urmnd urmtorii pai:

Limbaje de programare i baze de date - ACCESS

28

Modificarea unei comenzi


DELETE - TERGEREA NREGISTRRILOR
Comanda SQL pentru tergerea uneia sau mai multor linii
dintr-o tabela este DELETE.
DELETE FROM TABELA WHERE CONDITIE
De exemplu dac dorim s tergem nregistrarea ce cuprinde
datele departamentului financiar (pentru care cod_dep este fin) vom
avea:

tergerea departamentului financiar

Limbaje de programare i baze de date - ACCESS

29

UPDATE - MODIFICAREA DATELOR DINTR-UN CMP


Pentru a modifica valoarea unuia sau mai multor atribute sau mai
multe linii dintr-o tabela se foloseste comanda UPDATE cu formatul
general:
UPDATE TABELA SET ATRIBUT1=EXPRESIE
[ATRIBUT2=EXPRESIE2.... .] WHERE PREDICAT
De exemplu dac dorim ca pentru angajaii din cadrul
departamentului "conta" s cretem salariul brut cu 50 de lei vom
avea:

Modificarea valorilor unui cmp

Vizualizarea datelor modificate n tabela ANGAJATI

Intrebri:
1. Cum se pot modifica valorile unui cmp?
2. Cum se pot terge nregistrrile unei tabele
dup o condiie?

Limbaje de programare i baze de date - ACCESS

30

Studiu individual
Aplicaia 2: Introducere de date, selecii simple i
utiliznd condiii simple i compuse.

APLICAIA 2
1. Realizai o tabel FURNIZORI cu structura tabelei FURNIZORI din
ANEXA 1.
2. Introducei urmtoarele date:

3. Modificai localitatea pentru angajai din BRASOV n RASNOV.


4. tergei toi furnizorii din BRASOV
5. tergei toi furnizorii din CLUJ
6. nlocuii numele fiecrei localiti cu prima sa liter.

Limbaje de programare i baze de date - ACCESS

31

SELECIA I PROIECIA

Principalele obiective ale capitolului sunt:


Introducere n conceptul de interogare
a bazelor de date
Sintaxa i utilizarea comenzii SELECT

Clauza SELECT corespunde operatorului proiecie din algebra


relaional, fiind utilizat pentru desemnarea listei de atribute
(coloane) din rezultat. Clauza FROM este cea n care sunt enumerate
relaiile din care vor fi extrase informaiile aferente consultrii. Clauza
WHERE desemneaz predicatul selectiv al algebrei relaionale
(condiia), relativ la atribute ale relaiilor care apar n clauza FROM.
La modul general, o consultare SQL poate fi prezentat sub
forma:
select c1,c2,...,cn
from r1,r2,...,rm
where p
unde:

Limbaje de programare i baze de date - ACCESS

32

cj - reprezint coloanele rezultat;


rj - reprezint relaiile ce trebuie parcurse;
p - reprezint predicatul, condiia ce trebuie ndeplinit de
tupluri (linii) pentru a fi incluse n rezultat.
Predicatul poate fi simplu sau compus (din mai multe condiii).
Cnd clauza WHERE este omis se consider implicit c
predicatul p are valoare logic ''adevrat'', astfel nct n rezultat vor fi
incluse toate liniile din tabel sau produsul cartezian al tabelelor,
enumerate n clauza FROM.
Dac n locul coloanelor c1,c2,...,cn apare simbolul *, rezultatul
va fi alctuit din toate coloanele relaiilor specificate n clauza FROM.
Atributele rezultatului preiau numele din tabela (tabelele)
specificate n clauza FROM. Schimbarea numelui se realizeaz prin
clauza AS.
exemplu:
select c1,c2 as NUME_NOU from r1
unde numele coloanei c2 devine NUME_NOU;
SQL nu elimin automat liniile identice din rezultat, deci pentru
ca fiecare linie s apar o singur dat este necesara utilizarea
opiunii DISTINCT.
exemplu:
select distinct c1,c2 from r1
n concluzie, o fraz SELECT, corespunde:
unei selecii algebrice (clauza WHERE p)
unei proiecii (SELECT ci)
unui produs cartezian (FROM - r1 r2 ... rm)
i conduce la obinerea unui rezultat cu n coloane, fiecare coloan
fiind: un atribut din r1,r2,...,rm sau expresie calculat pe baza unor
atribute din r1,r2,...,rm.
Execuia unei fraze SELECT realizeaz un rezultat sub form
tabelar.

Limbaje de programare i baze de date - ACCESS

33

Rezultatul poate fi:


1. o list (text)
2. o tabel propriu-zis
3. o tabel temporar
4. o tabel derivat (imagine)
5. o variabil masiv (tablou)
Exemplu:
Utilizm tabela ANGAJATI n care introducem urmtoarele
date:

Datele tabelei ANGAJATI


1. Care sunt datele coninute n tabela angajati?
select cod, nume, prenume, data_nasterii, sal_brut, cod_dep from
angajati
sau:
select * from angajati

Rezultatele exemplului 1

Limbaje de programare i baze de date - ACCESS

34

2. Care sunt numele salariailor i salariul brut?


select nume, sal_brut from angajati

Rezultatele exemplului 2
3. Care sunt numele salariailor i salariul brut, dar pentru coloana
sal_brut denumim coloana salariu_brut?
select nume, sal_brut as salariu_brut from angajati

Rezultatele exemplului 3
4. Afiai numele angajailor i salariul brut, pentru salariaii care au
salariul brut mai mare de 700 lei
select nume from angajati where sal_brut>700

Limbaje de programare i baze de date - ACCESS

35

Rezultatele exemplului 4
5. Care sunt datele salariailor care lucreaz n departamentul
informatic (cod_dep="info")?
select * from angajati WHERE cod_dep="info"

Rezultatele exemplului 5
6. Care sunt datele salariailor care lucreaz n departamentul
informatic (cod_dep="info") i care au salariul brut mai mare de 700
de lei?
select * from angajati where cod_dep="info" and sal_brut>700

Rezultatele exemplului 6
7. Afiai numele salariailor i codul departamentului pentru
angajaii care sunt fie n departamentul informatic (cod_dep="info")
fie n departamentul contabilitate (cod_dep="cont")
select nume, cod_dep from angajati where cod_dep="info" or
cod_dep="cont"

Limbaje de programare i baze de date - ACCESS

36

Rezultatele exemplului 7
8. Afiai numele angajailor i data naterii pentru angajaii nscui
dup 15-03-1980 (formatul pentru data este #mm-dd-yyyy#)
select nume, data_nasterii from angajati where data_nasterii > #0315-1980#

Rezultatele exemplului 8
9. Afiai numele angajailor i data naterii pentru angajaii nscui
ntre 15-03-1980 i 20-05-1983
select nume, data_nasterii from angajati where data_nasterii > #0315-1980# and data_nasterii < #05-20-1980#

Rezultatele exemplului 9
10. Care sunt codurile de departament din tabela angajati?
select cod_dep from angajati

Limbaje de programare i baze de date - ACCESS

37

Rezultatele exemplului 10
11. Care sunt codurile de departament din tabela angajati, afiate o
singur dat?
select distinct cod_dep from angajati

Rezultatele exemplului 11
Intrebri:
1. Care sunt clauzele principale ale unei
selecii?
2. Care sunt clauzele obligatorii ale unei
selecii?
3. Cte tabele putem trece la clauza FROM?

Limbaje de programare i baze de date - ACCESS

38

Studiu individual
Aplicaia 3: Introducere de date, selecii simple i
utiliznd condiii simple i compuse.

APLICAIA 3
1. Realizai o tabel FURNIZORI cu structura tabelei FURNIZORI din
ANEXA 1.
2. Introducei urmtoarele date:

3. Care sunt furnizorii din Braov?


4. Care sunt furnizorii din Braov sau Bucuresti?
5. Care sunt furnizorii care nu stau n Constana?
6. tergei furnizorii care sunt din Bucureti.
7. Introducei trei furnizori noi utiliznd INSERT.
8. Modificai localitatea n Cluj pentru furnizorii din Constanta.

Limbaje de programare i baze de date - ACCESS

39

Coloane, expresii
Principalele obiective ale capitolului sunt:
Definirea unor coloane noi
Realizarea de calcule pe baza unor date din baza de
date.

O facilitate important n multe interogri SQL ine de definirea,


pe lng atributele tabelelor, a unor coloane noi, pe baza unor
expresii. Clauza AS ermite denumirea coloanelor calculate sau
redenumirea unor coloane ale tabelelor.
De exemplu dac dorim s aflm care este TVA-ul aferent unei
facturi, vom avea:
In tabel FACTURI avem introduse urmtoarele date:

Limbaje de programare i baze de date - ACCESS

40

Datele tabelei FACTURI


Pentru a afia valoarea tva-ului, precum i valoarea cu TVA
pentru fiecare factur vom avea selectul:
select nr_factura, cod_fur, data_fact, valoare, valoare*19/100 as
TVA, valoare*119/100 as val_totala from facturi
i vom obine Query-ul:

Rezultatele seleciei

Intrebri:
1. Cum putem s denumim coloana din rezultat?
2. Cum putem obine o coloan nou utiliznd n
selecie o condiie?

Limbaje de programare i baze de date - ACCESS

41

Studiu individual
Aplicaia 4: Calcularea amortizrii lunare prin
metoda liniar.

APLICAIA 4
1. Realizai tabela MF dup structura tabelei MF din ANEXA 1.
2. Introducei urmtoarele date:

3. Care sunt mijloacele fixe cu valoare mai mare de 30000?


4. Dac PER_AMORT reprezint perioada de amortizare n ani,
calculati care este valoarea amortizrii lunare liniare.
5. Denumii coloana cu amortizarea lunar liniar AM_LUN.
6. Care sunt mijloacele fixe care au amortizarea lunar mai mare de
1000?
7. Modificai perioada de amortizare n 5 pentru mijloacele fixe cu
codul 10004.
8. Calculai care este amortizarea lunar pentru "masina 2"
9. Calculai amortizarea lunar liniar pentru mijloacele fixe
cumprate de la furnizorul c1 sau c2.

Limbaje de programare i baze de date - ACCESS

42

Funciile agregat: COUNT,


SUM, AVG, MIN, MAX
Principalele obiective ale capitolului sunt:
Utilizarea funciilor Count, sum, avg. min, max
Realizarea unor noi coloane care s conin date
obinute prin utilizarea funciilor de mai sus.

Funcia COUNT contorizeaz valorile neutre ale unei coloane


sau numrul de linii dintr-un rezultat al unei interogri, altfel spus, n
rezultatul unei consultri, COUNT numr cte valori diferite de
NULL are o coloan specificat sau cte linii sunt:
De exemplu dac dorim s aflm cte facturi avem n tabela
FACTURI (cte linii sunt) avem:
select count (*) from facturi

Limbaje de programare i baze de date - ACCESS

43

Numrul de facturi din tabela FACTURI


Sau de exemplu dac dorim s vedem cte facturi au valoarea
peste 3000 vom avea:
select count(*) from facturi WHERE valoare>3000

Numrul de facturi din tabela FACTURI


cu valoare mai mare de 3000
Funcia SUM este una dintre cele mai utilizate funcii n
aplicaiile economice, deoarece datele financiar-contabile i cele ale
evidenei tehnico-operative sunt preponderent cantitative.
De exemplu dac dorim s aflm care este valoarea total a
facturilor din tabela FACTURI avem:
select sum(valoare) from facturi

Valoarea total a facturilor din tabela FACTURI


Sau de exemplu dac dorim s aflm care este valoarea total
a facturilor din tabela FACTURI a furnizorului cu cod_furm "c2" avem:
select sum(valoare) from facturi where cod_furn="c2"

Limbaje de programare i baze de date - ACCESS

44

Valoarea total a facturilor din tabela FACTURI


a furnizorului cu cod_furm "c2"
Funcia AVG (AVERAGE) calculeaz media aritmetic a unei
coloane prin divizarea sumei valorilor coloanei respective la numrul
de valori nenule ale acesteia.
De exemplu dac dorim s aflm care este valoarea medie a
facturilor din tabela FACTURI avem:
select avg(valoare) from facturi

Valoarea medie a facturilor din tabela FACTURI


Sau de exemplu dac dorim s aflm care este valoarea medie
a facturilor din tabela FACTURI a furnizorului cu cod_furm "c1" avem:
select avg(valoare) from facturi where cod_furn="c1"

Valoarea medie a facturilor din tabela FACTURI


a furnizorului cu cod_furm "c1"
Deosebit de utile n diverse tipuri de analiz cele dou funcii
MIN i MAX determin valoarea minim i maxim pentru o coloan.
Se pot folosi i pentru atribute de tip ir de caractere, caz n care
elementul de comparaie este codul ASCII al caracterelor.
De exemplu dac dorim care este valoare minim din tabela
facturi vom avea:

Limbaje de programare i baze de date - ACCESS

45

select min(valoare) from facturi

Valoarea minim din FACTURI


Sau de exemplu dac dorim care este valoare maxim din
tabela facturi vom avea:
select max(valoare) from facturi

Valoarea maxim din FACTURI


Dac dorim s aflm care este din punct de vedere alfabetic
cod_furn cu cea mai mare valoare vom avea:
select max(cod_furn) from facturi

Valoarea maxim a cod_furn din FACTURI


Studiu individual
APLICAIA 6: Utilizarea funciilor: AVG; MIN;
MAX; SUM; COUNT

Limbaje de programare i baze de date - ACCESS

46

APLICAIA 5
1. Realizai tabela FACTURI cu structura tabelei FACTURI din
ANEXA 1.
2. Introducei n tabela FACTURI urmtoarele date:

3. Care este media valorii facturilor?


4. Care este valoarea cea mai mare a unei facturi?
5. Care este valoarea cea mai mic a unei facturi?
6. Calculai valoarea medie a valorii facturilor dar nu cu AVG.
7. Cte facturi avem n tabel?
8. Cate facturi avem n tabel cu o valoare mai mare de 5000?
9. Cte facturi avem n tabel cu o valoare ntre 4000 i 30000? (prin
dou metode)
10. Care este valoare medie a facturilor cu nr. 3525 i 3522?

Limbaje de programare i baze de date - ACCESS

47

OPIUNEA ORDER BY
Principalele obiective ale capitolului sunt:
Ordonarea datelor unei tabele dup unul sau mai
multe atribute

Una dintre caracteristicile modelului relaional este c nici


ordinea atributelor, nici ordinea liniilor n relaii nu reprezint
importan din punctul de vedere al coninutului informaional.
ns n practic forma de prezentare a rezultatelor interogrii
est important. Spre exemplu o list a localitilor dintr-o tabel este
mai uor citit n ordine alfabetic.
De exemplu dac dorim pentru tabela facturi s afim toate
datele ordonate dup cmpul cod_furn vom avea
select * from facturi order by cod_furn

Limbaje de programare i baze de date - ACCESS

48

Datele obinute n urma ordonrii dup cmpul cod_furn


Aranjarea se poate face att cresctor (ASC) ct i
descresctor (DESC). n plus se pot specifica mai multe coloane care
s serveasc drept criterii suplimentare de ordonare. Astfel, la valori
egale ale primului atribut, intr n aciune criteriul de "balotaj", care
este al doilea atribut, etc.
De exemplu dac dorim s ordonm datele din facturi nti
dup cod_furn i apoi dup valoare (dup acest criteriu descresctor)
vom avea:
select * from facturi order by cod_furn, valoare desc

Obinerea datelor ordonate dup cod_furn i apoi


descresctor dup valoare

Limbaje de programare i baze de date - ACCESS

49

Intrebri:
1. Dup cte cmpuri putem ordona i cum?

Studiu individual
APLICAIA
interogri.

6:

Ordonarea

rezultatelor

unei

APLICAIA 6
1. Realizai tabela MF dup structura tabelei MF din ANEXA 1.
2. Introducei urmtoarele date:

3. Care sunt datele din tabela MF, ordonate alfabetic dup denumire?
4. Care sunt datele din tabela MF, ordonate alfabetic dup denumire
i apoi dup valoare?

Limbaje de programare i baze de date - ACCESS

50

5. Care este amortizarea lunar liniar pentru fiecare mijloc fix, datele
fiind ordonate dup denumirea mijlocului fix?
6. Afiai denumirea mijloacelor fixe, ordonat alfabetic pentru
mijloacele fixe cu o valoare mai mare de 32000 inclusiv.
7. Afiai alfabetic codurile furnizor - o singur dat.
8. Care este valoarea cea mai mare unui mijloc fix?
9. Care este valoare medie a amortizrii lunare a mijloacelor fixe?
10. Cte mijloace fixe avem?

51

Limbaje de programare i baze de date - ACCESS

OPERATORII BETWEEN, LIKE I IN


Principalele obiective ale capitolului sunt:
Utilizarea operatorilor
BETWEEN
LIKE
IN

Pentru formularea predicatului de selecie,


utilizarea, pe lng >,<, >=,<=,= i a altor operatori,
vom opri la BETWEEN (cuprins ntre), LIKE (ca i), IN
adaug IS NULL.
Operatorul BETWEEN este util pentru definirea
valori.

SQL permite
dintre care ne
(n), la care se
intervalelor de

De exemplu dac dorim s afim doar facturile care au valori


ntre 4000 i 8000 vom avea:
select * from facturi where valoare between 4000 and 8000

52

Limbaje de programare i baze de date - ACCESS

Date afiate utiliznd condiia BETWEEN


Acelai rezultat l puteam obine i cu o condiie dubl:
select * from facturi where valoare >= 4000 and valoare <=8000

Date afiate utiliznd condiia dubl


Operatorul LIKE permite compararea unui atribut (expresii) cu
un literal utiliznd o "masc" construit cu ajutorul specificatorilor
multiplii * i ? . Simbolurile procent i underscore sunt denumite
jokeri. Procentul substituie un ir de lungime variabil, 0-n caractere,
n timp ce underscore substituie un singur caracter.
Pentru exemplificare
urmtoarele date:

mai

introducem

dou

facturi

cu

Introducerea suplimentar a 2 facturi


De exemplu dac dorim s afim care sunt toi furnizorii a
cror cod_client ncepe cu litera "c" vom avea:

Limbaje de programare i baze de date - ACCESS

53

select * from facturi where cod_furn like "c*"

Furnizorii a cror cod_furn ncepe cu litera "c"


De exemplu dac dorim s afim care sunt toi furnizorii a
cror cod_client ncepe cu litera "m" vom avea:
select * from facturi where cod_furn like "m*"

Furnizorii a cror cod_furn ncepe cu litera "m"


De exemplu dac dorim s afim care sunt toi furnizorii a
cror cod_client are dou caractere i al doilea caracter este 5 vom
avea:
select * from facturi where cod_furn like "?5"

Furnizorii a cror cod_furn are dou caractere


i al doilea caracter este 5
Atunci cnd se testeaz dac valoarea unui atribut este
ncadrabil ntr-o list de valori dat, n locul folosirii abundente a
operatorului OR este mai elegant s se apeleze la operatorul IN.

Limbaje de programare i baze de date - ACCESS

54

De exemplu dac dorim s afim facturile furnizorilor care au


cod_furn c1, c3 i c4 avem:
select * from facturi where cod_furn in ("c1","c3","c4")

Facturile furnizorilor care au cod_furn c1, c3 i c4


Sau de exemplu dac dorim s selectm facturile care au
valoare de 500, 600, 5000 vom avea:
select * from facturi where valoare in (500, 600, 5000)

Facturile care au valoare de 500, 600, 5000


Intrebri:
1. Care este diferena ntre operatorii
BETWEEN i IN?
2. Cu ce poate fi substituit operatorul
BETWEEN?

Limbaje de programare i baze de date - ACCESS

55

Studiu individual
APLCAIA 7: Utilizarea operatorilor BETWEEN;
LIKE i IN n calcularea unor date pe baza
tabelei ANGAJATI.

APLICAIA 7
1. Realizai tabela SALARIATI pe baza structurii tabelei ANGAJATI
din ANEXA 1.
2. n tabel introducei urmtoarele date:

3. Care sunt salariaii care au salariu cuprins ntre 550 i 1000?


4. Care sunt angajaii care au salariu 600, 1000, 750, sau 300?
5. Ci angajai avem?
6. Care este salariul mediu?
7. Care este numele salariatului cu salariul cel mai mare?
8. Care sunt angajaii a cror nume ncepe cu litera M sau I?
9. Ci angajai au prenumele din trei litere?
10. Care sunt salariaii care nu au prenumele ION sau IOANA?

Limbaje de programare i baze de date - ACCESS

56

REUNIUNE, PRODUS CARTEZIAN


Principalele obiective ale capitolului sunt:
Prezentarea operatorului UNION
Realizarea produsului cartezian

Primii trei operatori asambliti prezint operatori SQL dedicai:


UNION, INTERSECT, MINUS (EXTRACT), n timp ce produsul
cartezian se calculeaz automat prin simpla enumerare a celor dou
tabele din clauza FROM.
La reuniunea a dou tabele, SQL elimin automat liniile identice
din rezultat. Dac se dorete prelucrarea tuturor liniilor celor dou
relaii i implicit apariia de linii duplicate, se folosete clauza ALL
(UNION ALL).
De exemplu, dup aceeai structur a tabelei FURNIZORI
crem tabela FURNIZORI2.
Tabela FURNIZORI2 conine urmtoarele date:

Limbaje de programare i baze de date - ACCESS

57

Datele tabelei FURNIZORI2

Datele tabelei FURNIZORI


Dac dorim s afim toate datele (utiliznd reuniunea) din
tabelele FURNIZORI i FURNIZORI2 avem:
select * from furnizori union select * from furnizori2

Limbaje de programare i baze de date - ACCESS

58

Toate datele (utiliznd reuniunea) din tabelele FURNIZORI i


FURNIZORI2
SQL nu pune la dispoziie vreun operator special dedicat
produsului cartezian.
Produsul cartezian se realizeaz prin simpla enumerare a
tabelelor n clauza FROM.
De exemplu dac dorim s realizm produsul cartezian ntre
tabelele FACTURI i FURNIZORI avem:
select * from facturi, furnizori

Limbaje de programare i baze de date - ACCESS

59

Produsul cartezian al tabelelor FACTURI i FURNIZORI

Intrebri:
1. Ce reprezint operatorul UNION?
2. Cum se realizeaz produsul cartezian?

Studiu individual
APLICAIA 8: Evidena mijloacelor fixe ale unei
ntreprinderi

Limbaje de programare i baze de date - ACCESS

60

APLICAIA 8
1. Realizai tabela MF1 i MF2 dup structura tabelei MF din ANEXA
1.
2. Introducei urmtoarele date:

Datele tabelei MF1

Datele tabelei MF2


3. Care sunt datele din tabela MF1, ordonate alfabetic dup
denumire?
4. Care sunt datele din tabela MF2, ordonate alfabetic dup denumire
i apoi dup valoare?
5. Afiai datele celor dou tabele ntr-un query

Limbaje de programare i baze de date - ACCESS

61

6. Care sunt mijloacele fixe ce se gsesc n MF1 i nu se gsesc n


MF2?
7. Care sunt mijloacele fixe ce se gsesc i n MF1 i n MF2?
8. Care este valoarea medie a mijloacelor fixe din MF1?
9. Care este valoarea medie a mijloacelor fixe din MF2 a cror nume
ncepe cu litera C?
10. Care sunt mijloacele fixe din tabela MF2 furnizate de furnizorii cu
codurile: c1, c2, c4, c5,c8?

Limbaje de programare i baze de date - ACCESS

62

THETA I ECHI-JONCIUNEA
Principalele obiective ale capitolului sunt:
Realizarea unei legturi ntre dou sau mai multe
tabele
Utilizarea condiiilor n echi-jonciune

SQL nu prezint clauze sau operatori speciali pentru jonciune,


jonciunea fiind o combinaie ntre produs cartezian i selecie.
Deci pentru theta-jonciunea dintre dou relaii R1 i R2 avem:
select * from R1, R2 where R1.A>=R2.E
unde:
R1
A
20
30
40

B
XYZ
XXZ
YYX

C
30
20
25

R2
C
25
40
30

D
XYZ
YYX
XXZ

E
30
25
40

Limbaje de programare i baze de date - ACCESS

63

iar pentru echi-jonciune avem:


select * from R1, R2 where R1.A=R2.E
Varianta cu INNER JOIN (jonciune intern) este:
select * from R1 inner join R2 on R1.A>=R2.E
respectiv
select * from R1 inner join R2 on R1.A=R2.E
Pentru urmtorul exemplu utilizm
FURNIZORI, FACTURI cu urmtoarele date:

urmtoarele

tabele:

Limbaje de programare i baze de date - ACCESS

64

Se cere s de afieze pentru fiecare factur numele


furnizorului.
select facturi.*, furnizori.nume_furn from facturi, furnizori where
facturi.cod_furn=furnizori.cod_furn

Numele furnizorului pentru fiecare factur


Acelai rezultat se poate obine utiliznd INNER JOIN:
select facturi.*, furnizori.nume_furn from facturi inner join furnizori ON
facturi.cod_furn=furnizori.cod_furn

Limbaje de programare i baze de date - ACCESS

65

Numele furnizorului pentru fiecare factur


Dac dorim s afim numele furnizorului pentru fiecare factur
numai pentru furnizorul cu cod_furn "c1" vom avea:
select facturi.*, furnizori.nume_furn from facturi, furnizori where
facturi.cod_furn=furnizori.cod_furn and facturi.cod_furn="c1"

Numele furnizorului pentru fiecare factur


numai pentru furnizorul cu cod_furn "c1"

Intrebri:
1. De ce dou tabele sunt legate logic prin
valori?
2. Care este condiia necesar pentru echijonciune?

Limbaje de programare i baze de date - ACCESS

66

Studiu individual
APLICAIA 9: Evidena salariailor dintr-o firm

APLICAIA 9
1. S se realizeze tabelele ANGAJATI i DEPARTAMENTE dup
structura tabelelor ANGAJATI i DEPARTAMENTE din ANEXA 1
2. Introducei n tabele urmtoarele date:

3. Afiai eful pentru fiecare angajat.


4. Care sunt angajaii care lucreaz n Braov?
5. Ci angajai lucreaz n Bucureti?
6. Care este numele angajatului cu salariul maxim?
7. Care este fondul de salarii pentru fiecare cod_dep?

Limbaje de programare i baze de date - ACCESS


8. Care sunt angajaii angajai dup 01/01/1980?
9. Care sunt angajaii care lucreaz la departamentul marketing?
10. Ci subalterni are Vlad?
11. Care este salariul mediu pentru departamentul management?
12. Care sunt angajaii a cror ef ncepe cu litera "A"?
13. Care sunt angajaii care lucreaz n Braov sau Bucureti?

67

Limbaje de programare i baze de date - ACCESS

68

GRUPAREA TUPLURILOR: GROUP BY I


HAVING
Principalele obiective ale capitolului sunt:
Utilizarea grupurilor
Utilizarea condiiilor pentru grupuri

Clauza GROUP BY formeaz grupe (grupuri) de tupluri ale unei


relaii, pe baza valorilor comune ale unui atribut. n frazele SELECT
formulate pn n acest paragraf, prin intermediul WHERE au fost
selectate tupluri ale tabelei. Prin asocierea unei clauze HAVING la
GROUP BY este posibil selectare anumitor grupuri de tupluri ce
ndeplinesc un criteriu, valabil numai la nivel de grup (nu i la nivel de
linie).
Clauza unei fraze SELECT ce conine aceast clauz se obine
prin regruparea tuturor liniilor din tabelele enumerate n FROM,
extrgndu-se cte o apariie pentru fiecare valoare distinct a
coloanei/grupului de coloane.

Limbaje de programare i baze de date - ACCESS

69

Formatul general este:


select coloan1, coloan2,...,coloan m from tabel group by
coloan_de_regrupare
De exemplu dac dorim s vedem care este valoarea total a
facturilor pentru fiecare cod_furn vom avea:
select cod_furn, sum(valoare) from facturi group by cod_furn

Valoarea total a facturilor pentru fiecare cod_furn


Cea mai simpl definiie a clauzei HAVING este: clauza
HAVING este WHERE-ul ce opereaz la nivel de grupuri. Dac
WHERE acioneaz la nivel de tuplu, selectnd acele linii care
ndeplinesc o condiie specificat, HAVING permite specificarea unor
condiii de selecie care se aplic tuplurilor de linii create prin GROUP
BY.
Din rezultat sunt eliminate toate grupurile care nu satisfac
condiia specificat.
De exemplu dac dorim s vedem care este valoarea total a
facturilor pentru cod_furn egal cu "c1" vom avea:
select cod_furn, sum(valoare) from facturi group by cod_furn having
cod_furn="c1"

Valoarea total a facturilor pentru


cod_furn egal cu "c1"

Limbaje de programare i baze de date - ACCESS

70

Intrebri:
Cnd se utilizeaz GROUP BY?
Care este definiia condiiei HAVING?

Studiu individual
APLICAIA 10: Situaii de grup la nivelul
salariailor

APLICAIA 10
1. S se realizeze tabelele ANGAJATI i DEPARTAMENTE dup
structura tabelelor ANGAJATI i DEPARTAMENTE din ANEXA 1
2. Introducei n tabele urmtoarele date:

Limbaje de programare i baze de date - ACCESS

71

3. Afiai eful pentru fiecare angajat.


4. Care este salariul total pentru fiecare departament?
5. Care este salariul total pentru departamentul MANAGEMENT?
6. Care este suma total a salariilor din departamentele management
i contabilitate?
7. Care este numrul de salariai din fiecare departament?
8. Care este departamentul cu angajaii cei mai muli?
9. Care este eful departamentului cu cei mai muli angajai?
10. Ci angajai are Vlad?

Limbaje de programare i baze de date - ACCESS

72

REALIZAREA FORMULARELOR
Principalele obiective ale capitolului sunt:
Utilizarea formularelor
Utilizarea generatoarelor wizard pentru crearea
formularelor
Rularea formularelor

UTILIZAREA FORMULARELOR
Formularele sunt ecrane cu ajutorul crora se pot introduce
date n tabele sau se pot lansa diferite comenzi i aplicaii.
De obicei, formularele conin casete n care se poate scrie text,
butoane prin care se pot lansa comenzi sau aplicaii, elemente de tip
list pentru alegerea unor valori sau opiuni de tip check-box.
Pentru facilitarea lucrului cu formulare, programul dispune de
un generator de tip wizard prin care se pot crea formulare de
introducere a datelor n tabele.
Formularele pot fi fcute att pe baza unor tabele existente ct
i pe baza unor interogri deja definite (QUERIES).

Limbaje de programare i baze de date - ACCESS

73

Pentru realizarea formularelor din panoul de comand se alege


opiunea FORMS din cadrul meniului OBJECTS.

Alegerea opiunii FORMS


UTILIZAREA GENERATOARELOR WIZARD PENTRU CREAREA
FORMULARELOR
Pentru utilizarea generatorului de formulare n panoul de
comand se alege opiunea CREATE FORM BY USING WIZARD.
Dac utilizatorul dorete s creeze formulare manual va alege
opiunea CRAETE FORM IN DESIGN VIEW.

Utilizarea generatorului de formulare

Limbaje de programare i baze de date - ACCESS

74

In fereastra FORM WIZARD primul pas n crearea formularului


este alegerea tabelei n care vor fi introduse datele. Tabela dorit se
selecteaz prin opiunea TABLES / QUERIES.

Selectarea tabelei
Cel de-al doilea pas este selectarea cmpurilor n care se vor
introduce date. Selectarea cmpurilor poate fcut separat pentru
fiecare cmp (oferind posibilitatea ca unul sau mai multe cmpuri s
lipseasc) sau pentru toate cmpurile.

Limbaje de programare i baze de date - ACCESS

75

Selectarea cmpurilor dorite n formular


Cmpurile selectate se mut n ecranul din partea dreapt. n
exemplul de mai jos au fost selectate toate cmpurile. Se vor selecta
elementele dorite dup care se continu prin apsare tastei NEXT.

Limbaje de programare i baze de date - ACCESS

76

Cmpurile selectate
n continuare se alege modul de afiare a cmpurilor n
formular (pe coloane, tabular, foaie de lucru, etc.). Se va selecta tipul
dorit dup care se continu prin apsare tastei NEXT.

Limbaje de programare i baze de date - ACCESS

77

Selectarea modului de afiare


Din punct de vedere grafic sunt disponibile mai multe tipuri de
formulare. Se va selecta tipul dorit dup care se continu prin
apsare tastei NEXT.

Alegerea stilului formularului


Ultimul pas n realizarea formularelor este denumirea
formularului creat. Implicit numele este cel al tabelei n care vor fi
scrise datele.

Limbaje de programare i baze de date - ACCESS

78

Denumirea formularului
RULAREA FORMULARULUI
Pentru a rula un formular se da dublu click pe numele sau n
fereastra de comand.

Rularea formularului ANGAJATI

Limbaje de programare i baze de date - ACCESS

79

Intrebri:
Pentru ce se utilizeaz formularele?
Care sunt pai necesari n conceperea unui
formular?

Studiu individual
APLICAIA 11: Introducerea datelor n tabele cu
ajutorul formularelor

Limbaje de programare i baze de date - ACCESS

80

APLICAIA 11
1. S se realizeze tabelele ANGAJATI i DEPARTAMENTE dup
structura tabelelor ANGAJATI i DEPARTAMENTE din ANEXA 1
2. Realizai formulare pentru introducerea datelor n cele dou tabele
3. Introducei n tabele urmtoarele date:

4. Care este salariul total pentru fiecare departament?


5. Care este salariul total pentru departamentul MANAGEMENT?
6. Care este suma total a salariilor din departamentele management
i contabilitate?
7. Care este numrul de salariai din fiecare departament?
8. Care este departamentul cu angajaii cei mai muli?
9. Care este eful departamentului cu cei mai muli angajai?
10. Ci angajai are Vlad?

Limbaje de programare i baze de date - ACCESS

81

REALIZAREA RAPOARTELOR
Principalele obiective ale capitolului sunt:
Rolul rapoartelor
Modul de realizarea a rapoartelor

UTILIZAREA RAPOARTELOR
Rapoartele sunt utilizate pentru afiarea estetic a datelor dintro tabel sau query.
Primul pas n realizarea unui raport l reprezint selectarea
opiunii REPORTS din cadrul meniului OBJECTS.
i pentru realizarea rapoartelor avem la dispoziie posibilitatea
realizrii manual sau n mod asistat de program cu ajutorul
generatorului de tip wizard.

Limbaje de programare i baze de date - ACCESS

82

Selectarea opiunii REPORTS


Pentru facilitarea lucrului vom utiliza generatorul de rapoarte.
Acest lucru se face cu ajutorul opiunii CREATE REPORT BY USING
WIZARD.

Selectarea generatorului de rapoarte


n realizarea raportului primul, n fereastra REPORT WIZARD
trebuie selectat tabela pentru care se vor afia datele.

Limbaje de programare i baze de date - ACCESS

83

Selectarea tabelei
Similar crerii formularelor, trebuiesc precizate cmpurile care
vor fi afiate din tabela deja selectat.

Selectarea cmpurilor din tabel

Limbaje de programare i baze de date - ACCESS

84

Pentru cmpurile selectate se poate face o grupare, n


momentul afirii datelor dup un cmp.

Gruparea datelor dup un cmp


Totodat datele ce vor fi afiate pot fi ordonate dup unul sau
mai multe criterii.
Aceste criterii sunt alfabetice sau invers-alfabetice, cresctoare
sau descresctoare, n funcie de tipul cmpului text sau numeric.

Limbaje de programare i baze de date - ACCESS

85

Selectarea criteriilor de ordonare a datelor


Urmtorul pas este alegerea unei forme de prezentare a
datelor, de aliniere a informaiilor i formatul paginii.

Alegerea formatului de prezentare a datelor

Limbaje de programare i baze de date - ACCESS

86

Tot n legtur cu forma de afiare a datelor este i stilul


raportului. Pentru alegerea stilului se selecteaz din meniul din partea
din dreapta opiunea dorit. Aceast opiune este doar din punct de
vedere estetic.

Selectarea stilului raportului


Ultimul pas n realizarea raportului este denumirea raportului
realizat. i n acest caz, denumirea implicit este cea a tabelei din
care sunt luate datele. Dup tastarea noului nume se tasteaz
FINISH. n acest moment raportul este gata i poate fi rulat.

Limbaje de programare i baze de date - ACCESS

87

Denumirea raportului
EXECUIA RAPORTULUI
Pentru a rula un raport se da dublu click pe numele sau n
fereastra de comand.

Lansare n execuie a raportului


Raportul odat lansat este afiat pe ecran. Poate fi utilizat
funcia zoom pentru mrire sau micorare. Totodat raportul poate fi
i listat.

Limbaje de programare i baze de date - ACCESS

88

Raportul obinut
Intrebri:
Ce este un raport?
Cum se realizeaz un raport?

Studiu individual
APLICAIA 13: Utilizarea rapoartelor

APLICAIA 13
1. Realizai tabela SALARIATI pe baza structurii tabelei ANGAJATI
din ANEXA 1.
2. n tabel introducei urmtoarele date:

Limbaje de programare i baze de date - ACCESS

89

3. Realizai un raport pentru afiarea tuturor salariailor


4. Realizai un raport pentru afiarea tuturor salariailor, grupai pe
departamente i ordonai alfabetic dup nume.
5. Realizai un raport pentru afiarea numelui salariailor si a
departamentului unde lucreaz.

90

Limbaje de programare i baze de date - ACCESS

CONSTRUCIA PAGINILOR WEB


PENTRU LUCRUL CU BAZE DE DATE
Principalele obiective ale capitolului sunt:
Rolul formularelor de tip pagina web
Realizarea paginilor web cu formulare pentru
introducerea datelor

ROLUL
PAGINILOR
WEB
INTRODUCEREA DATELOR

CU

FORMULAR

PENTRU

Bazele de date i aplicaiile realizate n ACCESS sunt foarte


mult utilizate pentru aplicaii web. n consecin, pentru a putea
introduce date n tabelele ACCESS este nevoie de pagini web ce pot
fi publicate pe un server de web.

Limbaje de programare i baze de date - ACCESS

91

REALIZAREA PAGINILOR WEB


La fel ca i n cadrul celorlalte module primul pas n realizare l
constituie selectarea opiunii PAGES din cadrul meniului OBJECTS.

Selectarea opiunii PAGES


i pentru crearea formularelor n pagini web avem la dispoziie
un generator de tip wizard.
Pornirea generatorului se face prin selectarea opiunii CREATE
DATA ACCESS PAGE BY USING WIZARD.
La fel ca i n cazul formularelor i rapoartelor trebuie selectat
tabela i cmpurile care vor apare in pagin.

Limbaje de programare i baze de date - ACCESS

92

Selectarea tabelei i a cmpurilor


Datele pot fi grupate dup unul din cmpurile tabelei care vor
apare n pagin. Aceast grupare nu este ns obligatorie.

Limbaje de programare i baze de date - ACCESS

93

Gruparea datelor dup un cmp


n continuare, tot opional se pot alege cmpurile dup care se
va face ordonarea datelor.
Aceste criterii de ordonare sunt alfabetice sau invers-alfabetice,
cresctoare sau descresctoare, n funcie de tipul cmpului text sau
numeric.

Ordonarea datelor

Limbaje de programare i baze de date - ACCESS

94

Ultimul pas n realizarea paginii este denumirea titlului paginii


realizate. i n acest caz, denumirea implicit este cea a tabelei din
care sunt luate datele. Dup tastarea noului nume se tasteaz
FINISH.

Titlul paginii
Pentru deschiderea paginii se alege opiunea OPEN THE
PAGE.

Limbaje de programare i baze de date - ACCESS

95

Opiunea OPEN THE PAGE


Vizualizarea paginii permite
asemntor unui formular obinuit.

Vizualizarea paginii

introducerea

datelor

Limbaje de programare i baze de date - ACCESS

96

Pentru salvarea paginii este necesar nchiderea acesteia i


denumirea sa.

Salvarea paginii
Atenie deoarece pagina creat este o pagin web trebuie s
aib extensia HTM, HTML sau ASP.
Vizualizarea paginii creat ca formular de introducere a datelor
n Access poate fi fcut similar cu orice pagina web.
Intrebri:
La ce folosesc paginile web create n Access?
Care sunt paii de realizarea a unei astfel de
pagini?

Limbaje de programare i baze de date - ACCESS


Anexa 1
Tabele utilizate
Tabela: angajati
cmp
cod (CP)
nume
prenume
data_nasterii
sal_brut
cod_dep

tip
numeric
text
text
data
numeric
text

Tabela: departamente
cmp
cod_dep (CP)
den
localitate
sef
telefon

tip
text
text
text
text
numeric

Tabela: facturi
cmp
nr_factura (CP)
cod_furn
data_fact
valoare

tip
numeric
text
data
numeric

97

Limbaje de programare i baze de date - ACCESS


Tabela: furnizori
cmp
cod_furn (CP)
nume_furn
adresa
localitate

tip
text
text
text
text

Tabela: mf
cmp
cod_mf (CP)
den
valoare
per_amort
cod_furn

tip
numeric
text
numeric
numeric
text

98

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