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 2

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 3

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 4

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 FISIER CMP - CHEIE - -
extern
BDR RELAIE ATRIBUT ASOCIERE CHEIE CHEIE DOMENIU
PRIMAR EXTERN
Access TABEL CMP ASOCIERE CHEIE CHEIE -
(LEGATURA) 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 5

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 6

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 7

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 8

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 9

Selectarea opiunii de creare a unui nou tabel

Pentru a exemplifica crearea de tabele vom crea tabela


angajai care are forma:

Angajai
cmp tip
cod (CP) numeric
nume text
prenume text
data_nasterii data
sal_brut numeric
cod_dep 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 C 30
Prenume C 30
Cod N 3
Oras C 20
Medie N 6;2
Admis C

i cu urmtorul coninut :
Nume Prenume Cod Oras Medie Admis
Ionescu Maria 1 Iasi 9.27
Vlad Mirela 8 Deva 9.50
Georgecu Ana 5 Cluj 8.85
Popescu Denisa 4 Arad 9.33
Rauta Andreea 6 Deva 9.50
Stanciu Roxana 2 Deva 9.10
Limbaje de programare i baze de date - ACCESS 20

Radulescu Ruxandra 3 Cluj 9.29


Matei Iuliana 7 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 F


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 > #03-


15-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 > #03-


15-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 6: Ordonarea rezultatelor unei


interogri.

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?
Limbaje de programare i baze de date - ACCESS 51

OPERATORII BETWEEN, LIKE I IN

Principalele obiective ale capitolului sunt:

Utilizarea operatorilor
BETWEEN
LIKE
IN

Pentru formularea predicatului de selecie, SQL permite


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

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


Limbaje de programare i baze de date - ACCESS 52

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 mai introducem dou facturi cu


urmtoarele date:

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 R2
A B C C D E
20 XYZ 30 25 XYZ 30
30 XXZ 20 40 YYX 25
40 YYX 25 30 XXZ 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 urmtoarele tabele:


FURNIZORI, FACTURI cu urmtoarele date:
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 echi-
jonciune?
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 67

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?
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 dintr-


o 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.
Limbaje de programare i baze de date - ACCESS 90

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 CU FORMULAR PENTRU


INTRODUCEREA DATELOR

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 introducerea datelor


asemntor unui formular obinuit.

Vizualizarea paginii
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 97

Anexa 1

Tabele utilizate

Tabela: angajati

cmp tip
cod (CP) numeric
nume text
prenume text
data_nasterii data
sal_brut numeric
cod_dep text

Tabela: departamente

cmp tip
cod_dep (CP) text
den text
localitate text
sef text
telefon numeric

Tabela: facturi

cmp tip
nr_factura (CP) numeric
cod_furn text
data_fact data
valoare numeric
Limbaje de programare i baze de date - ACCESS 98

Tabela: furnizori

cmp tip
cod_furn (CP) text
nume_furn text
adresa text
localitate text

Tabela: mf

cmp tip
cod_mf (CP) numeric
den text
valoare numeric
per_amort numeric
cod_furn text

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