Home - Rasfoiesc.com
Educatie Sanatate Inginerie Business Familie Hobby Legal
Doar rabdarea si perseverenta in invatare aduce rezultate bune.stiinta, numere naturale, teoreme, multimi, calcule, ecuatii, sisteme




Biologie Chimie Didactica Fizica Geografie Informatica
Istorie Literatura Matematica Psihologie

Baze de date


Index » educatie » » informatica » Baze de date
» Interogarea unei baze de date. Elemente de SQL


Interogarea unei baze de date. Elemente de SQL


Interogarea unei baze de date. Elemente de SQL

Bazele de date sunt construite si actualizate cu scopul exploatarii ulterioare a informatiilor memorate. Una dintre modalitatile de extragere a informatiilor din bazele de date ACCESS o reprezinta interogarile (obiecte de tipul Queries). Se creeaza dupa selectarea etichetei Queries.

Exista mai multe modalitati de lucru pentru crearea interogarilor bazelor de date ACCESS:

Ø     Design View

Ø     Simple Query Wizard



Ø     Crosstab Query Wizard

Ø     Fiind Duplicates Query Wizard

Ø     Fiind Unmatched Query Wizard.

Vom trata mai intai modalitatea care permite crearea de interogari de selectie prin apelarea la "asistarea" de catre Access a acestei operatii. Acest lucru presupune selectarea de campuri din unul sau mai multe obiecte de tip tabel sau interogare.

Crearea interogarilor folosind modul Simple Query Wizard

se selecteaza tipul de obiect Queries si apoi se acceseaza butonul New care permite crearea unui nou obiect din categoria selectata


din caseta de dialog New Query care apare dupa accesarea butonului New (fig. 12.5.5.), se alege optiunea Simple Query Wizard si butonul OK;

Fig. 12.5.5.

se selecteaza apoi tabela / interogare sau tabelele / interogarile, si, din cadrul acestora, campurile ce se doresc in interogare, dupa care se acceseaza butonul Next.(fig.12.5.6);


Fig.12.5.6.

din fereastra urmatoare se poate indica daca se doreste ca interogarea sa contina detaliat toate inregistrarile tabelei principale, caz in care se alege butonul radio Detail (Shows every field or every record) sau doar un rezumat (Summary), in acest din urma caz alegandu-se obligatoriu optiunea Summary Options si introducandu-se si criteriile de rezumare: selectarea campului supus rezumarii si a functiei de rezumare: sum (insumare), avg (media aritmetica), min (valoarea minima), max (valoarea maxima) (recomandam cititorului efectuarea exemplului pe calculator);

se acceseaza din nou butonul Next, iar in noua fereastra se stabileste numele sub care se doreste salvarea pe disc a interogarii;

se accesaza butonul Finish si interogarea se afiseaza pe ecran.

Exemplu de aplicatie informatica care utilizeaza obiecte de tip tabel, formular si interogare (creata prin modul Simple Query Wizard):

Sa se creeze baza de date cu numele LP1 si care sa contina tabelele cu urmatoarea structura:

REVISTE

Cod Number, LongInteger, Indexed, NoDuplicates

Titlu Text 20

Editura Text 15

Pret Number, Single, Fixed

CHITANTE

Nr_Chitanta Number, Longinteger, Indexed, NoDuplication

Cod Number, LongInteger, Indexed, Duplicates OK

Per_abonam Number, Byte, valori posibile intre 1 si 12

Tabele se vor relationa dupa campul Cod.

Se va crea cate un formular de culegere date pentru fiecare dintre tabele si se vor culege datele:

REVISTE

100 Tilul1 E1 100.50

150 Titlul2 E2 200.55

130 Titlul3 E1 150.55

140 Titlul4 E1 124.44

CHITANTE

1001 100 6

1501 150 4

1002 100 12

1301 130 9

1502 150 6

1401 140 12

1003 100 12

Se vor culege si valori din afara limitelor din regulile de validare pentru a urmari daca formularul sesizeaza eroarea de culegere.

Se va crea si un formular asociat ambelor fisiere utilizand modul de lucru wizard. Acesta va contine toate campurile din REVISTE si campurile Nr_chitanta si Per_abonam din CHITANTE. Formularul va asocia fiecarei reviste chitantele prin care se consemneaza abonamentele la acestea. Se va obtine un formular cu subformular.

Se va crea o interogare care sa realizeze o centralizare a valorilor incasate pentru abonamente pe fiecare revista in parte, astfel:

  • se va crea mai intai interogarea TOTAL_LUNI (folosind Simple querz wizard) care va contine cod, titlu, editura, pret (din tabela REVISTE) si per_abonam (din CHITANTE) solicitand, prin Summary options, insumarea numarului de luni de abonament (per_abonam)
  • in interogarea anterioara se introduce, folosind butonul Design View, un camp nou care contine formula total_luni (creat prin insumarea valorii campului per_amonam) * pret.

Recomandam cititorului executarea acestei lucrari practice cu scopul fixarii si verificarii nivelului atins in insusirea cunostintelor legate de utilizarea Microsoft Access pentru prelucarea prin formulare si interogari a datelor din bazele de date relationale.

Crearea interogarilor folosind modul Design View

Pentru crearea unei noi interogari in modul Design View se vor parcurge urmatorii pasi:

se slecteaza butonul Queries aflat in bara tipurilor de obiecte Access;

se efectueaza click de mouse pe butonul New ;

se alege optiunea Design View din lista de optiuni si apoi se acceseaza butonul OK;

se selecteaza tabela sau tabelele care ce urmeaza sa furnizeze informatii cuprinse in interogare (fig.12.5.1.) folosind butonul Add;


Fig. 12.5.1.

se inchide fereastra Show Table folosind butonul Close, dupa adaugarea tuturor tabelelor necesare interogarii;

Adaugarea de campuri in interogare

se executa click de mouse pe prima celula libera din linia Table si, din lista descendenta care se poate deschide, se selecteaza numele tabelei careia ii apartine campul de introdus;

se executa click de mouse pe linia Field si se selecteaza un camp.(fig.12.5.2.).


Fig. 12.5.2.

Stergerea unui camp dintr-o interogare

se executa click de mouse pe coloana campului ce trebuie sters;

se alege submeniul Edit, functia Delete Column sau se apasa tasta Delete.

Adagarea criteriilor

Criteriile permit selectarea campurilor din inregistrare care vor fi afisate in cadrul interogarii. Aceste criterii sunt exprimate prin expresii relationale sau logice. Introducerea criteriilor se poate face pe linia Criteria, iar daca avem mai multe crierii, pe liniile Or. Vor fi afisate in interogare toate campurile a caror valoare satisface cel putin unul dintre creteriile introduse in liniile Criteria sau Or. (fig.12.5.3).


Fig.12.5.3.

Pentru construirea expresiilor din liniile Criteria sau Or se poate apela si la constructorul Access pentru expresii: se executa click dreapta de mouse in celula respectiva si apoi se selecteaza functia Build.

Sortarea inregistrarilor unei interogari

Se poate realiza utilizand linia Sort din macheta de construire a interogarii.(fig. 12.5.4).


Fig. 12.5.4.

Dupa click de mouse pe linia Sort, se deschide o fereastra care contine optiunile: Ascending, Descending si (no sorted). Selectand una dintre aceste optiuni asiguram ordonarea crescatoare, descrescatoare a inregistrarilor sau, respectiv lipsa ordonarii acestora in cadrul interogarii.

Afisarea sau ascunderea unui camp

Se poate solicita afisarea sau ascunderea valorilor unui camp in cadrul unei interogari prin activarea asu inactivare, prin click de mouse, a casetei din linia Show. (fig.12.5.4).

Vizualizarea unei interogari

Se inchide fereastra de construire a interogarii (folosind butonul de inchidere), apoi se selecteaza interogarea de vizualizat si se acceseaza butonul Open.

Imprimarea unei interogari

Se realizeaza folosind functia Print din submeniul File aflat in bara de meniuri, sau prin combinatia de taste CTRL+P. În ambele situatii apare pe ecran caseta de dialog "Print" din interiorul careia pot fi stabilite conditiile de imprimare.

Interogari speciale

Se creeaza apeland functia Design View, dupa accesarea butonului New din tipul de obiect Queries.

În Access pot fi utilizate 4 tipuri de interogari speciale si anume: MakeTable, Append, Update, Delete.

Interogarea de tip MakeTable are rolul de a crea o noua tabela care sa contina campurile si inregistrarile selectate din cadrul uneia sau mai multor tabele sau interogari existente. Crearea unei astfel de interogari presupune parcurgerea urmatoarelor etape:

Ø     Crearea interogarii prin selectarea de atribute din una sau mai multe tabele sau interogari existente, eventual relationate; se poate apela la modurile de lucru Simple Query Wizard sau Design View, ambele prezentate in lectiile anterioare si exersate la orele de aplicatii practice de laborator

Ø     Selectarea submeniul Query din bara de meniuri; din lista de functii a acestui sumbeniu se alege Make Table Query; se indica numele tabelului ce se doreste a fi creat sau recreat, se salveaza interogarea creata prin accesarea butonului de inchidere a ferestrei de lucru;

Ø     Pentru crearea sau recrearea tabelului se apeleaza interogarea prin accesarea cu mouse a butonului Open, dupa selectarea interogarii, sau prin dublu click de mouse pe interogare; se declanseaza un dialog cu utilizatorul prin care acesta este informat de stergerea tabelului (daca acesta exista deja pe disc) si de numarul de inregistrari (randuri) ce vor fi introduse in noua tabela

Observatie: Este important ca tabelul ce rezulta dintr-o interogare de tip Make Table sa nu fie implicat in nici o relatie permanenta (creata in fereastra Relationships) cu alte tabele sau interogari. Daca este necesara relationarea, atunci aceasta se poate face doar in cadrul interogarii care o foloseste, ea refacandu-se la fiecare apelare a acesteia.

Interogarea de tip Append are rolul de a adauga intr-o tabela noi inregistrari preluate din alta tabela. Pentru crearea unei astfel de interogari se poate proceda astfel:

Ø     se apeleaza modul de lucru Design View pentru crearea interogarii

Ø     se selecteaza tabela din care se face adaugarea

Ø     se alege functia Append Query din submeniul Query

Ø     se selecteaza campurile de adaugat si cele in care se adauga

Ø     se salveaza prin inchiderea ferestrei de lucru de la butonul de inchidere din bara de instrumente stabilindu-se numele interogarii (la prima salvare)

Observatie: Apelarea interogarii se face prin selectarea acesteia si accesarea butonuluil Open, prin dublu click de mouse pe interogare, sau prin apasarea tastei <enter>, dupa selectarea interogarii. Efectul este adaugarea campului sau campurilor indicate din toate inregistrarile tabelei sursa ca inregistrari ale tabelei destinatie.

Interogari de tip Delete Query

Cu ajutorul acestui tip de interogare putem selecta seturi de inregistrari ale unei tabele ce urmeaza a fi supuse operatiei de stergere. Pentru a crea o interogare de tip Delete Query putem parcurge urmatorii pasi:

Ø     din fereatra Database à Query à New apelam generatorul de interogari

Ø     selectam, in modul de lucru Design View, tabela supusa operatiei de stergere

Ø     alegem din meniul Query functia Delete Query si observam aparitia, in macheta de lucru, a liniei Delete

Ø     prin operatia de glisare (drag&drop) selectam campurile ce vor fi utilizate la filtrarea inregistrarilor de sters

Ø     pe linia Delete apare implicit functia Where

Ø     pe linia Criteria se vor introduce, pentru fiecare dintre campurile introduse, conditii de filtrare

Ø     putem vizualiza setul de date dinamic care va fi sters prin butonul datasheet view

Ø     daca suntem de acord cu stergerea lansam comanda run

Interogari de tip Update Query

Acest tip de interogari permit corectia mai multor inregistrari ale unei tabele, filtrate eventual printr-o conditie, la o valoare ce poate fi o constanta, o variabila sau o expresie in componenta careia sunt incluse alte campuri ale tabelei, direct sau ca parametri ai unor functii.

Pentru crearea interogarilor de tip Update Query se pot parcurge urmatorii pasi:

Ø     din fereatra Database à Query à New apelam generatorul de interogari

Ø     selectam, in modul de lucru Design View, din fereastra Show Table, tabela supusa operatiei de corectie

Ø     stabilim tipul interogarii prin alegerea functiei Update Query din meniul Query; obtinem astfel, in macheta de lucru, linia Update To

Ø     introducem, pe coloana campurilor supuse corectiei, valoarea corectoare, pe linia Update To, sub forma unei constante, variabile sau formule; pe liniile Criateria sau Or putem introduce conditii care sa asigure filtrarea inregistrarilor de corectat

Ø     putem previzualiza inregistrarile de corectat prin butonul view

Ø     daca dorim vizualizarea si a altor campuri in afara celor supuse corectiei, numele acestora va fi trecut pe linia Update To intre paranteze drepte

Ø     se inchide fereastra de lucru de la butonul Close si se salveaza interogarea

Ø     se apeleaza interogarea pentru a realiza corectia propriu-zisa.

Interogare de tip Crosstab (incrucisare)

Vom numi incrucisare rezultatul unei interogari speciale care permite analizarea relatiei dintre un camp al unei tabele si alt camp al aceleasi tabele.

Pentru o prezentare mai explicita a caracteristicile unei interogari de incrucisare (Crosstab) vom considera urmatorul exemplu foarte simplu: Avem o tabela de date ce contine doua campuri, denumite cimp1 si cimp2. Primul dintre campuri poate avea valori numere intregi, iar cel de-al doilea are ca valori posibile siruri de caractere de cate un caracter. Dorim sa cunoastem de cate ori apare fiecare sir de caractere relativ la fiecare dintre valorile campului cimp1.

Pentru rezolvarea problemei vom crea o interogare de tip Crosstab prin parcurgerea pasilor:

Ø     din fereatra Database à Query à New apelam generatorul de interogari

Ø     selectam, in modul de lucru Design View, din fereastra Show Table, tabela supusa operatiei de analiza prin incrucisare

Ø     stabilim tipul interogarii prin alegerea functiei Crosstab din meniul Query; obtinem astfel, in macheta de lucru, linia Crosstab

Ø     plasam pe prima coloana campul care va fi folosit pentru linii (inregistrari) ale interogarii, in cazul exemplului considerat, cimp1. Pe linia Crosstab alegen Row Heading, iar pe linia Total, Group By

Ø     plasam apoi campul al carei frecventa de aparitie ne intereseza, in cazul exemplului nostru, cimp2; pe linia Crosstab alegem Column Heading, iar pe linia Total, Group By

Ø     plasam apoi campul care va fi folosit drept continut al matricei generata de interogare, in cazul exemplului considerat, cimp1. Pe linia Crosstab vom alege Value, iar pe Total, functia Count

Ø     vom mai defini un nou camp in cadrul interogarii, si anume Total: cimp1, ce are pe linia Total, functia Count, iar pe linia Crosstab, functia Row Heading

Daca tabela Tabel1 are continutul urmator

   

atunci interogarea care sa prezinte frecventa de aparitie a valorilor campului cimp2 relativ la fiecare dintre valorile campului cimp1 are urmatoarele structuri logice si fizice (obtinute prin parcurgerea pasilor descrisi anterior):

Realizarea interogarilor incrucisate prin folosirea asistentului Crosstab Wizard

Pentru a facilita intelegerea si fixarea pasilor de urmat, precum si situatia in care este indicata folosirea acestui gen de interogare, vom porni de la un exemplu concret si simplu: sa determinam din tabela Produse, avand structura logica Cod, Grupa, Denumire, UM, Pret, numarul produselor din cadrul aceleasi grupe care au acelasi pret.

Dupa apelarea utilitarului pentru generarea interogarii Database à Query à New vom executa urmarii pasi:

Pas 1: Alegerea tabelei care va constitui sursa de date (daca am selectat butonul radio Queries, putem alege si o interogare ca sursa pentru date).

  • Pas 2: Alegerea campului ale carui valori vor fi in liniile rezultatului (in cazul de fata grupa produsului)

  • Pas 3: Alegerea campului ale carui valori vor fi in coloana interogarii (in cazul de fata Pret)

  • Pas 4: Alegerea functiei ce se va aplica pentru afisarea rezultatului din celulele interogarii (in cazul exeplului considerat count care va numara frecventa de aparitie a unui pret in cadru fiecarei grupe de produs).

  • Pas 5: Se atribuie nume pentru salvarea interogarii. Se poate alege butonul radio Modify the design pentru a putea modifica atributele coloanelor interogarii sau (implicit) butonul View the query pentru a vizualiza interogarea pe ecran.

Consideram ca tabela Produse contine datele din imaginea urmatoare:

Atunci rezultatul interogarii este prezentat mai jos

Realizarea interogarilor gasirea duplicatelor cu Fiind Duplicates Query Wizard

Pentru edificare vom considera ca dorim sa depistam toate inregistrarile tabelului Produse cu structura prezentata anterior si care au acelasi pret. Rezolvarea problemei se poate face cu ajutorul unei interogari pe care o vom construi urmand pasii:

  • Pas 1: Selectam New query à Fiind Duplcates Query Wizard
  • Pas 2: Selectam campul dupa care dorim cautarea valorilor identice (in cazul exemplului nostru, Pret)
  • Pas 3: Selectam celelalte campuri pe care dorim sa le introducem in interogare (in cazul exemplului considerat, Denumire si UM)
  • Pas 4: Introducem numele interogarii si decidem in ce mod dorim afisarea interogarii, adica View - afisate in mod Database, Modify - afisare in mod Design).

Pentru exemplul considerat, imaginea interogarii este urmatoarea:

De remarcat efectul din punct de vedere al structurii logice a interogarii:

Crearea interogarilor de cautarea a inregistrarilor fara corespondent folosind Fiind Unmatched Query Wizard

Ne propunem sa rezolvam urmatoarea problema: determinarea grupelor de produse pentru care nu avem date in tabela Produse. Presupunem ca exista o tabela cu numele Grupe care contine toate grupele de produse posibil sa apara in aplicatia noastra.

Rezolvarea problemei se poate face cu ajutorul unei interogari pe care o vom construi urmand pasii:

  • Pas 1: Selectam New query à Fiind Unmatched Query Wizard
  • Pas 2: Se selecteaza numele tabelei de referinta (Grupe)
  • Pas 3: Se indica campurile corespondente din cele doua tabele (Grupe si Produse)
  • Pas 4: Se specifica campurile ce se vor afisa in interogare
  • Pas 5: Introducem numele interogarii si decidem in ce mod dorim afisarea interogarii, adica View - afisate in mod Database, Modify - afisare in mod Design).

Daca cele doua tabele a continutul prezentat in continuare

În SQL interogarea se poate genera astfel:

SELECT Grupe.Grupa, Grupe.Denumire

FROM Grupe LEFT JOIN Produse ON Grupe.Grupa = Produse.Grupa

WHERE (((Produse.Grupa) Is Null));

Elemente de SQL

Limbajul SQL (Structured Query Language - limbaj structurat de interogare) este utilizat pentru manipularea si regasirea datelor din bazele de date relationale.

SQL-ul pune la dispozitia programatorului un administrator de baze de date cu urmatoarele facilitati:

ü           posibilitatea de modificare a structurii bazei de date ;

ü           posibilitatea schimbarii valorilor de configurare pentru securitatea sistemului;

ü       permite stabilirea si modificarea drepturilor date utilizatorilor asupra bazelor de date sau a tabelelor;

ü       permite interogarea unei baze de date ;

ü       ofera facilitati multiple referitoare la actualizarea continutului unei baze de date.

O interogare SQL nu este neaparat o intrebare pusa bazei de date, ci, cel mai adesea, o comanda pentru executarea uneia dintre actiunile de mai jos:

Ø     construirea sau steargere unei baze de date ;

Ø     inserarea, modificarea sau steargerea unor linii sau campuri;

Ø     cautarea in tabele a unei informatii si returnarea de rezultatele intr-o anumita ordine;

Ø     modificarea securitatii informatiilor;

Ø     simpla interogare (intrebare).

Vom prezenta cateva comenzi utile operatiilor de interogare si actualizare a datelor.

Editarea acestor comenzii se face in fereastra SQL View operabila dupa ce am intrat in proiectarea unei interogari prin Query Design.

Comanda SELECT

cea mai importanta si mai folosita comanda SQL

permite specificarea datelor care vor constitui iesirea din interogare precum si sursa acestora.

Sintaxa comenzii SELECT este urmatoarea:

SELECT[domeniu] [*] / [<coloane>] FROM [<tabele>]

[WHERE<exp>] [GROUP BY <lista_chei>] [HAVING<exp>]

[ORDER<exp>]

unde:

clauza domeniu - precizeaza coloanele care vor forma rezultatul;

Pentru exemplificare avem in vedere urmatorul exemplu: Fie baza de date SCOALA cu tabelele :

CLASE (cls, profil, diriginte)

CLASE

CLS

PROFIL

DIRIGINTE

IXA

INFORMATICA

POPA

IXB

INFORMATICA

IONESCU

IXC

MATE

GEORGESCU

XA

INFORMATICA

BADEA

XB

INFORMATICA

CALIN

XC

MATE

TUFIS

XIA

INFORMATICA

BALU

XIB

INFORMATICA

DINA

XIC

MATE

STANESCU

XIIA

INFORMATICA

VOINEA

XIIB

INFORMATICA

VADUVA

XIIC

MATE

NITU

ELEVI

COD

NUME

CLS

MED

ABSN

ABSM

cam

ALBU ANGELA

IXA

Yes

BOGDAN LAURA

IXB

No

PANTELIMON IULIANA

IXC

Yes

ASPRU ANA

XA

No

IOSIF DANIELA

XB

No

COLTEA VLAD

XIA

No

VLAD DAN

XIB

Yes

VLASCA RALUCA

XIC

No

DICU ION

XIIA

Yes

POPESCU LAVINIA

XIIB

No

si ELEVI (cod, nume, cls, med, absn, absm, cam)

Exemplul a: Sa scriem o comanda SQL care sa afiseze numelor toturor elevilor despre care sunt memorate informatii in tabela ELEVI. Aceasta va fi

SQL > SELECT [NUME] FROM ELEVI;

Rezultatul executiei comenzii este urmatorul

NUME

ALBU ANGELA

ASPRU ANA

BOGDAN LAURA

COLTEA VLAD

DICU ION

IOSIF DANIELA

PANTELIMON IULIANA

POPESCU LAVINIA

VLAD DAN

VLASCA RALUCA

Clauza [domeniu] - poate contine :

All - specifica faptul ca toate articolele vor forma rezultatul;

Distinct - se va elimina din rezultat articolele duplicat create pe baza listei de coloane specificate;

Exemplul b sa scriem o comanda SQL care sa afiseze numele claselor (distincte!) din SCOALA folosind tabela ELEVI.

Comanda SQL va fi

SQL > SELECT DISTINCT [CLS] FROM ELEVI;

iar rezultatul executiei ei este

CLS

IXA

IXB

IXC

XA

XB

XIA

XIB

XIC

XIIA

XIIB

Distinctrow - va elimina din rezultat toate dublurile din coloanele indicate pentru fiecare tabel referit in comanda SELECT

asteriscul (*) - indica faptul ca vor fi incluse toate campurile tabelelor sursa precizate in clauza FROM;

Exemplul c: Sa scriem acum o camanda SQL care sa afiseze tot continutul fisierului ELEVI.

Comanda este

SQL > SELECT * FROM ELEVI;

iar rezultatul executiei ei conduce la

COD

NUME

CLS

MED

ABSN

ABSM

cam

ALBU ANGELA

IXA

Yes

BOGDAN LAURA

IXB

No

PANTELIMON IULIANA

IXC

Yes

ASPRU ANA

XA

No

IOSIF DANIELA

XB

No

COLTEA VLAD

XIA

No

VLAD DAN

XIB

Yes

VLASCA RALUCA

XIC

No

DICU ION

XIIA

Yes

POPESCU LAVINIA

XIIB

No

- clauza [<coloane>] poate contine campuri apartinand tabelelor definite in clauza FROM, constante, functii sau expresii cu acestea si pot primi un alt nume prin clauza AS;

Exemplul d: Sa scriem o comanda SELECT care sa afiseze media generala a tutoror elevilor a caror informatii se afla in tabela ELEVI.

SQL > SELECT AVG([MED]) AS MED_GEN FROM ELEVI;

Rezulatul executiei comenzii

MED_GEN

Exemplul e Afisarea numarului elevilor din scoala

SQL > SELECT COUNT(*) AS NR_ELEVI FROM ELEVI;

Rezultatul executiei comenzii:

NR_ELEVI

Exemplul f: afisarea numarului claselor din scoala.

SQL > SELECT DISTINCT COUNT([CLS] AS NR_CLS FROM CLASE;

Rezulatul executiei camenzii:

NR_CLS

Exemplul h: afisarea numarului elevilor, a celei mai mici si a celei mai mari medii.

SQL > SELECT COUNT(*) AS NR_ELEVI, MIN([MED]) AS CEA_MAI_MICA_MEDIE, MAX([MED]) AS CEA_MAI_MARE_MEDIE FROM ELEVI;

Rezulztaul executiei comenzii:

NR_ELEVI

CEA_MAI_MICA_MEDIE

CEA_MAI_MARE_MEDIE

- clauza FROM- specifica lista fisierelor de intrare in prelucrare (se pot stabili aliasuri pentru tabele in clauza AS)

Exemplul g: afisarea dirigintilor claselor.

SQL > SELECT [DIRIGINTE], [CLS], [PROFIL] FROM CLASE;

Rezultatul executiei comenzii:

DIRIGINTE

CLS

PROFIL

POPA

IXA

INFORMATICA

IONESCU

IXB

INFORMATICA

GEORGESCU

IXC

MATE

BADEA

XA

INFORMATICA

CALIN

XB

INFORMATICA

TUFIS

XC

MATE

BALU

XIA

INFORMATICA

DINA

XIB

INFORMATICA

STANESCU

XIC

MATE

VOINEA

XIIA

INFORMATICA

VADUVA

XIIB

INFORMATICA

NITU

XIIC

MATE

- clauza WHERE - permite introducerea legaturilor intre tabele si a filtrelor.

Exemplul i: afisarea elevilor cu medii intre 8 si 10 din toate clasele a XII-a.

SQL > SELECT [NUME], [MED] FROM ELEVI WHERE MED BETWEEN 8 AND 10 AND CLS LIKE 'XII*';

Rezultatul executiei comenzii

NUME

MED

DICU ION

POPESCU LAVINIA

Exemplul j: afisarea dirigintilor claselor de informatica.

SQL > SELECT [DIRIGINTE], [CLS] FROM CLASE WHERE PROFIL='INFORMATICA';

Rezultatul executiei comenzii:

DIRIGINTE

CLS

POPA

IXA

IONESCU

IXB

BADEA

XA

CALIN

XB

BALU

XIA

DINA

XIB

VOINEA

XIIA

VADUVA

XIIB

Exemplul k: afisarea elevilor cu media 10 precum si a profilului clasei acestora.

SQL >SELECT [ELEVI].[NUME], [ELEVI].[CLS], [CLASE].[CLS], [CLASE].[PROFIL] FROM ELEVI, CLASE WHERE [ELEVI].[CLS]=[CLASE].[CLS] And [ELEVI].[MED]=10;

Rezultatul executiei comenzii:

NUME

ELEVI.CLS

CLASE.CLS

PROFIL

VLASCA RALUCA

XIC

XIC

MATE

Exemplul l: Afisarea elevilor digintelui "BADEA".

SQL > SELECT [ELEVI].[NUME] FROM ELEVI, CLASE

WHERE((([ELEVI].[CLS])=([CLASE].[CLS]))And (([CLASE].[DIRIGINTE])='BADEA'));

Rezultatul executiei comenzii:

NUME

ASPRU ANA

Exemplul m: Afisati care sunt elevii cu media 10 pentru fiecare clasa (precum si numele dirigintilor lor).

Rezolvare

*Comanda:

SQL > SELECT [ELEVI].[NUME], [ELEVI].[MED], [CLASE].[CLS], [CLASE].[DIRIGINTE] FROM CLASE, ELEVI WHERE ((([ELEVI].[CLS])=[CLASE].[CLS]) And (([ELEVI].[MED])=10));

Rezultatul executiei comenzii:

NUME

MED

CLS

DIRIGINTE

VLASCA RALUCA

XIC

STANESCU

- clauza GROUP BY - permite gruparea rezultatelor.

- clauza HAVING - fixeaza restrictii de afisare a grupului.

Exemplul n: Sa se calculeze numarul elevilor pe clase dar numai la profilul "Informatica".

SQL > SELECT DISTINCTROW [CLASE].[CLS], Count([ELEVI].[COD]) AS Nr_Elevi, [CLASE].[PROFIL]

FROM CLASE INNER JOIN ELEVI ON [CLASE].[CLS]=[ELEVI].[CLS]

GROUP BY [CLASE].[CLS], [CLASE].[PROFIL]

HAVING (((CLASE.PROFIL)='INFORMATICA'));

Rezultatul executiei comenzii:

CLS

Nr_Elevi

PROFIL

IXA

INFORMATICA

IXB

INFORMATICA

XA

INFORMATICA

XB

INFORMATICA

XIA

INFORMATICA

XIB

INFORMATICA

XIIA

INFORMATICA

XIIB

INFORMATICA

clauza ORDER BY - specifica expresia de ordonare si sensul ordonarii.

Exemplul o Afisarea listei claselor pe profiluri si, in cadrul fiecarui profil, crescator dupa codul clasei.

SQL > SELECT [CLASE].[CLS], [CLASE].[PROFIL] FROM CLASE ORDER BY [CLASE].[CLS];

Rezultatul executiei comenzii:

CLS

PROFIL

IXA

INFORMATICA

IXB

INFORMATICA

IXC

MATE

XA

INFORMATICA

XB

INFORMATICA

XC

MATE

XIA

INFORMATICA

XIB

INFORMATICA

XIC

MATE

XIIA

INFORMATICA

XIIB

INFORMATICA

XIIC

MATE

p. Afisati lista alfabetica a elevilor dirigintelui "POPA".

SQL > SELECT ELEVI.NUME

FROM ELEVI, CLASE   

WHERE(((ELEVI.CLS)=[CLASE].[CLS])AND ((CLASE.DIRIGINTE)='POPA'))

ORDER BY ELEVI.NUME;

Rezultatul executiei comenzii:

NUME

ALBU ANGELA

ASOCIERI ÎNTRE TABELE

Sintaxa pentru asociere [ Inner / Left / Right] Join :

SELECT <lista-coloane> FROM (<tabela1>

[INNER / LEFT / RIGHT] JOIN <tabele2> ON<conditia1> )

WHERE <conditie>

Tipul asocierii datelor din tabelele relationate nu afecteaza relatia ci doar modul cum sunt regasite informatiile din cele doua tabele legate. Rezultatul unei relatii poate fi vazut ca o alta tabela care are pe fiecare linie valori si din prima tabela si din a doua. Semnificatia clauzelor din comanda SELECT destinata relationarii tabelelor este prezentata in continuare.

Clauza Inner Join - rezultatul asocierii include numai acele randuri din ambele tabele care au valori egale ale cheii de legatura.

Exemplul r: Afisati toti elevii de la profilul "Informatica".

SQL > SELECT [NUME] FROM ELEVI INNER JOIN CLASE ON [CLASE].[CLS]=[ELEVI].[CLS] WHERE     CLASE].[PROFIL]='INFORMATICA';

Rezultatul executiei comenzii:

NUME

ALBU ANGELA

BOGDAN LAURA

ASPRU ANA

IOSIF DANIELA

COLTEA VLAD

VLAD DAN

DICU ION

POPESCU LAVINIA

Clauza Outer Join - este opusul lui Inner Join - se includ linii intr-o tabela chiar daca nu exista corespondent in cealalata tabela. Poate fi:

o            Left Join - cand se includ toate articolele tabelei parinte si numai acele linii din tabela copil pentru care exista corespondent;

Exemplul s: Afisarea tuturor liniilor tabelelei CLASE si numele elevilor claselor.

SQL > SELECT [CLASE].[CLS], [CLASE].[PROFIL], [ELEVI].[NUME] FROM CLASE LEFT JOIN ELEVI ON [CLASE].[CLS]=[ELEVI].[CLS];

Rezultatul executiei comenzii:

CLS

PROFIL

NUME

IXA

INFORMATICA

ALBU ANGELA

IXB

INFORMATICA

BOGDAN LAURA

IXC

MATE

PANTELIMON IULIANA

XA

INFORMATICA

ASPRU ANA

XB

INFORMATICA

IOSIF DANIELA

XC

MATE

XIA

INFORMATICA

COLTEA VLAD

XIB

INFORMATICA

VLAD DAN

XIC

MATE

VLASCA RALUCA

XIIA

INFORMATICA

DICU ION

XIIB

INFORMATICA

POPESCU LAVINIA

XIIC

MATE

Exemplul t: Afisarea tuturor elevilor si a dirigintilor acestora chiar daca nu au corespondent in tabela elevi.

SQL > SELECT [CLASE].[DIRIGINTE], [ELEVI].[NUME] FROM CLASE LEFT JOIN ELEVI ON [CLASE].[CLS]=[ELEVI].[CLS];

Rezultatul executiei comenzii:

DIRIGINTE

NUME

POPA

ALBU ANGELA

IONESCU

BOGDAN LAURA

GEORGESCU

PANTELIMON IULIANA

BADEA

ASPRU ANA

CALIN

IOSIF DANIELA

TUFIS

BALU

COLTEA VLAD

DINA

VLAD DAN

STANESCU

VLASCA RALUCA

VOINEA

DICU ION

VADUVA

POPESCU LAVINIA

NITU

o            Right Join- cand se includ toate articolele tabelei copil si doar acele linii ale tabelei parinte care au corespondent.

FOLOSIREA PARAMETRILOR

Daca expresia de filtrare contine un sir intre paranteze rotunde, Access considera ca este vorba de un parametru si la executie va solicita introducerea valorii sale.

Exemplul u: Afisati lista elevilor unei clase oarecare data de utilizator.

SQL > SELECT [NUME], [CLS] FROM ELEVI

WHERE ([ELEVI].[CLS]=([CLASA_oarecare]))

ORDER BY [ELEVI].[NUME];

Rezultat la executie:

CLASA orecare = IXA

NUME

CLS

ALBU ANGELA

IXA

Comanda INSERT

permite adaugarea articolelor dintr-o tabela la sfarsitul alteia;

face apel la instructiunea SELECT, care va identifica liniile si coloanele care se transfera sau intr-o alta forma permite adaugarea unei singure inregistari in tabela si completarea acesteia cu date.

Sintaxa instructiunii-INSERT- este urmatoarea:

INSERT INTO <tabela> <instructiune -SELECT>/VALUES<valori>

Regulile care trebuie respectate la folosirea instructiunii INSERT . SELECT:

Ø     instructiunea SELECT nu poate selecta linii din tabelul care a fost inserat;

Ø     numarul de coloane din instructiunea INSERT . SELECT trebuie sa fie egal cu numarul de coloane returnate de instructiunea SELECT;

Ø     tipurile de date ale coloanelor din instructiunea INSERT INTO trebuie sa fie acelasi cu tipurile de date ale coloanelor returnate de instructiunea SELECT.

Exemplul v: Sa se adauge elevul IONESCU MIRCEA din clasa "IXA" cu media 9.75 in tabela ELEVI1.

SQL > INSERT INTO ELEVI1 ( NUME, CLS, MED )

VALUES ('IONESCU MIRCEA', 'IXA', 9.75);

Rezultatul executiei comenzii:

ELEVI1

COD

NUME

CLS

MED

ABSN

ABSM

cam

ALBU ANGELA

IXA

Yes

IONESCU MIRCEA

IXA

No

BOGDAN LAURA

IXB

No

PANTELIMON IULIANA

IXC

Yes

ASPRU ANA

XA

No

IOSIF DANIELA

XB

No

COLTEA VLAD

XIA

No

VLAD DAN

XIB

Yes

VLASCA RALUCA

XIC

No

DICU ION

XIIA

Yes

POPESCU LAVINIA

XIIB

No

Exemplul x: Sa se adauge elevii caministi in tabela ELEVICAM existenta.

SQL > INSERT INTO elevicam ( nume, cls, med )

SELECT [elevi].[nume], [elevi].[cls], [elevi].[med]

FROM elevi WHERE [elevi].[cam]=Yes;

ELEVI

COD

NUME

CLS

MED

ABSN

ABSM

cam

ALBU ANGELA

IXA

Yes

BOGDAN LAURA

IXB

No

PANTELIMON IULIANA

IXC

Yes

ASPRU ANA

XA

No

IOSIF DANIELA

XB

No

COLTEA VLAD

XIA

No

VLAD DAN

XIB

Yes

VLASCA RALUCA

XIC

No

DICU ION

XIIA

Yes

POPESCU LAVINIA

XIIB

No

Rezultatul executiei comenzii:

ELEVICAM

NUME

CLS

MED

ALBU ANGELA

IXA

PANTELIMON IULIANA

IXC

VLAD DAN

XIB

DICU ION

XIIA

Instructiunea DELETE

permite stergerea dintr-o tabela specificata a articolelor care indeplinesc conditiile date in clauza WHERE:

Sintaxa instructiunii-DELETE- este urmatoarea:

DELETE FROM <nume-tabela> WHERE<cond>

Exemplul y: Sa se stearga elevii din clasa "IXA" .

Tabela ELEVI inaintea transmiterii comenzii de stergere are urmatorul continut:

ELEVI

COD

NUME

CLS

MED

ABSN

ABSM

cam

ALBU ANGELA

IXA

Yes

BOGDAN LAURA

IXB

No

PANTELIMON IULIANA

IXC

Yes

ASPRU ANA

XA

No

IOSIF DANIELA

XB

No

COLTEA VLAD

XIA

No

VLAD DAN

XIB

Yes

VLASCA RALUCA

XIC

No

DICU ION

XIIA

Yes

POPESCU LAVINIA

XIIB

No

SQL > DELETE * FROM ELEVI2 WHERE CLS='IXA';

Rezultatul executiei comenzii:

ELEVI2

COD

NUME

CLS

MED

ABSN

ABSM

cam

BOGDAN LAURA

IXB

No

PANTELIMON IULIANA

IXC

Yes

ASPRU ANA

XA

No

IOSIF DANIELA

XB

No

COLTEA VLAD

XIA

No

VLAD DAN

XIB

Yes

VLASCA RALUCA

XIC

No

DICU ION

XIIA

Yes

POPESCU LAVINIA

XIIB

No

Instructiunea UPDATE

- permite actualizarea valorilor din tabela indicata.

Sintaxa instructiunii-UPDATE- este urmatoarea:

UPDATE<tabela> SET<camp>=<exp>, . WHERE<cond>

Exemplul z: Sa se modifice clasa elevului « PANTELIMON IULIANA » la valoarea  "IXF". Inaintea actualizarii tabela ELEVI are urmatorul continut:

ELEVI

COD

NUME

CLS

MED

ABSN

ABSM

cam

ALBU ANGELA

IXA

Yes

BOGDAN LAURA

IXB

No

PANTELIMON IULIANA

IXC

Yes

ASPRU ANA

XA

No

IOSIF DANIELA

XB

No

COLTEA VLAD

XIA

No

VLAD DAN

XIB

Yes

VLASCA RALUCA

XIC

No

DICU ION

XIIA

Yes

POPESCU LAVINIA

XIIB

No

SQL > UPDATE ELEVI7 SET CLS = 'IXF'

WHERE (NUME='PANTELIMON IULIANA');

Rezultatul executiei comenzii:

ELEVI7

COD

NUME

CLS

MED

ABSN

ABSM

cam

ALBU ANGELA

IXA

Yes

BOGDAN LAURA

IXB

No

PANTELIMON IULIANA

IXF

Yes

ASPRU ANA

XA

No

IOSIF DANIELA

XB

No

COLTEA VLAD

XIA

No

VLAD DAN

XIB

Yes

VLASCA RALUCA

XIC

No

DICU ION

XIIA

Yes

POPESCU LAVINIA

XIIB

No

Exemplul w: Toti elevii de la profilul "INFORMATICA" nu mai stau la camin. Sa se faca modificarea in baza de date.

Continutul tabelelor ELEVI si CLASE este urmatorul:

ELEVI

COD

NUME

CLS

MED

ABSN

ABSM

cam

ALBU ANGELA

IXA

Yes

BOGDAN LAURA

IXB

No

PANTELIMON IULIANA

IXC

Yes

ASPRU ANA

XA

No

IOSIF DANIELA

XB

No

COLTEA VLAD

XIA

No

VLAD DAN

XIB

Yes

VLASCA RALUCA

XIC

No

DICU ION

XIIA

Yes

POPESCU LAVINIA

XIIB

No

CLASE

CLS

PROFIL

DIRIGINTE

IXA

INFORMATICA

POPA

IXB

INFORMATICA

IONESCU

IXC

MATE

GEORGESCU

XA

INFORMATICA

BADEA

XB

INFORMATICA

CALIN

XC

MATE

TUFIS

XIA

INFORMATICA

BALU

XIB

INFORMATICA

DINA

XIC

MATE

STANESCU

XIIA

INFORMATICA

VOINEA

XIIB

INFORMATICA

VADUVA

XIIC

MATE

NITU

SQL > UPDATE CLASE INNER JOIN ELEVI ON [CLASE].[CLS]=[ELEVI].[CLS] SET CAM = NO

WHERE ([CLASE].[PROFIL]='INFORMATICA');

Rezultatul executiei coenzii afecteaza continutul tabeli elevi:

ELEVI

COD

NUME

CLS

MED

ABSN

ABSM

cam

ALBU ANGELA

IXA

No

BOGDAN LAURA

IXB

No

PANTELIMON IULIANA

IXC

Yes

ASPRU ANA

XA

No

IOSIF DANIELA

XB

No

COLTEA VLAD

XIA

No

VLAD DAN

XIB

No

VLASCA RALUCA

XIC

No

DICU ION

XIIA

No

POPESCU LAVINIA

XIIB

No

Instructiunea CREATE TABLE

-permite definirea structurii tabelelor fara iesirea dintr-o aplicatie intrventie directa in ferestrele de proiectare.

Sintaxa instructiunii- CREATE TABLE - este urmatoarea:

CREATE TABLE <fis.dbf> (<lista campuri>)

INTEROGARI DE TIP UNION

-sunt reuniuni ale rezultatelor obtinute prin mai multe interogari;

-coloanele rezultate din fiecare interogare sunt aceleasi ca nume, numar, tip.

Exemplul aa: Exista o tabela ADMISI cu elevii reusiti la examenul de admitere in scoala care are aceeasi structura cu a tabelei ELEVI. Sa se obtina toti elevii ! Continutul tabelelor ELEVI si ADMISI este urmatorul

ELEVI

COD

NUME

CLS

MED

ABSN

ABSM

cam

ALBU ANGELA

IXA

Yes

BOGDAN LAURA

IXB

No

PANTELIMON IULIANA

IXC

Yes

ASPRU ANA

XA

No

IOSIF DANIELA

XB

No

COLTEA VLAD

XIA

No

VLAD DAN

XIB

Yes

VLASCA RALUCA

XIC

No

DICU ION

XIIA

Yes

POPESCU LAVINIA

XIIB

No

ADMISI

COD

NUME

CLS

MED

ABSN

ABSM

cam

ASPRU GABRIEL

IXA

No

DINA VLAD

IXA

No

DINCA ELVIRA

IXA

Yes

EFTIMIE MARIA

IXB

No

STANCA IOANA

IXB

No

MARINESCU ION

IXB

Yes

SANDU ELENA

IXC

Yes

SQL > SELECT NUME, CLS, MED FROM ELEVI

UNION SELECT NUME, CLS, MED FROM ADMISI

Rezultatul executiei comenzii:

TOTAL_ELEVI_ADMISI

NUME

CLS

MED

ALBU ANGELA

IXA

ASPRU ANA

XA

ASPRU GABRIEL

IXA

BOGDAN LAURA

IXB

COLTEA VLAD

XIA

DICU ION

XIIA

DINA VLAD

IXA

DINCA ELVIRA

IXA

EFTIMIE MARIA

IXB

IOSIF DANIELA

XB

MARINESCU ION

IXB

PANTELIMON IULIANA

IXC

POPESCU LAVINIA

XIIB

SANDU ELENA

IXC

STANCA IOANA

IXB

VLAD DAN

XIB

VLASCA RALUCA

XIC

SUBINTEROGARI

-este o interogare alei carei rezultate sunt transmise ca argumente unei alte interogari ;

-sunt elemente de legatura intre mai multe interogari ;

-de regula o interogare poate fi inclusa in clauza WHERE fie SELECT.

Exemplul ab: Fie tabelele ELEVI(cu elevii liceului) si ADMISI (cu noii elevi reusiti anul acesta la liceu). Fiecare tabela are coloana media (de admitere !) Aflati daca sunt elevi in scoala care au drept medie de aditere o valoare mai mica decat ultima medie de anul acesta.

ELEVI

COD

NUME

CLS

MED

ABSN

ABSM

cam

ALBU ANGELA

IXA

Yes

BOGDAN LAURA

IXB

No

PANTELIMON IULIANA

IXC

Yes

ASPRU ANA

XA

No

IOSIF DANIELA

XB

No

COLTEA VLAD

XIA

No

VLAD DAN

XIB

Yes

VLASCA RALUCA

XIC

No

DICU ION

XIIA

Yes

POPESCU LAVINIA

XIIB

No

ADMISI

COD

NUME

CLS

MED

ABSN

ABSM

cam

ASPRU GABRIEL

IXA

No

DINA VLAD

IXA

No

DINCA ELVIRA

IXA

Yes

EFTIMIE MARIA

IXB

No

STANCA IOANA

IXB

No

MARINESCU ION

IXB

Yes

SANDU ELENA

IXC

Yes

SQL >SELECT [ELEVI].[NUME], [ELEVI].[MED]

FROM ELEVI WHERE (((ELEVI.MED)<(SELECT MIN(MED) FROM ADMISI)));

Rezultatul executiei comenzii:

SUBINTEROGARE

NUME

MED

VLAD DAN

Exemplul ac: Aflati primii 5 elevi din tabela ELEVI cu cele mai mari medii. Continutul tabelei ELEVI este urmatorul

ELEVI

COD

NUME

CLS

MED

ABSN

ABSM

cam

ALBU ANGELA

IXA

Yes

BOGDAN LAURA

IXB

No

PANTELIMON IULIANA

IXC

Yes

ASPRU ANA

XA

No

IOSIF DANIELA

XB

No

COLTEA VLAD

XIA

No

VLAD DAN

XIB

Yes

VLASCA RALUCA

XIC

No

DICU ION

XIIA

Yes

POPESCU LAVINIA

XIIB

No

SQL > SELECT TOP 5 [ELEVI].[NUME], [ELEVI].[CLS], [ELEVI].[MED] FROM ELEVI

ORDER BY [ELEVI].[MED] DESC;

Rezultatul executiei comenzii:

TOP5

NUME

CLS

MED

VLASCA RALUCA

XIC

BOGDAN LAURA

IXB

ALBU ANGELA

IXA

POPESCU LAVINIA

XIIB

PANTELIMON IULIANA

IXC

COLTEA VLAD

XIA

ASPRU ANA

XA

DICU ION

XIIA

12.6. Crearea rapoartelor


Rapoartele reprezinta modalitati de exploatare a bazelor de date, mai ales in cazul in care situatiile astfel obtinute sunt solicitate si pe suport hartie. Pentru generarea unui raport se acceseza tipul de obiect Report si se alege apoi optiunea New (fig. 12.6.1.).

Fig. 12.6.1.

Crearea rapoartelor cu Report Wizard

Dupa alegerea optiunii Report Wizard (fig.12.6.2) urmeaza o succesiune de pasi prin care utilizatorul indica particularitatile raportului de creat cu privire la aspectul formal sau de continut. Pentru exemplificare, sa consideram tabelul Mater, a carui structura este prezenta in fig. 12.6.3.


Fig.12.6.2.


Fig.12.6.3.


Pornind de la tabela Mater vom parcurge in continuare pasii necesari generarii unui raport simplu care sa contina, sub forma unui tabel, toate inregistrarile tabelei.

Fig. 12.6.4.

La imaginea din fig. 12.6.4. ajungem prin click de mouse pe optiunea Report Wizard (fig. 12.6.2.). Din lista ascunsa Tables - Queries alegem tabela mater si pe ecran vor aparea campurile disponibile ale tabelei (caseta Avaible Fields). Putem selecta oricare dintre campurile care apar in caseta si sa le transferam in caseta Selected Fields. Pentru aceasta folosim butonul ">". Daca dorim transferarea tuturor campurilor disponibile in zona de campuri selectate, avem la dispozitie butonul ">>". Putem face si operatia de transfer in directie inversa, a unui camp (butonul "<") sau a tuturor campurilor (butonul "<<"). Dupa incheierea selectiei de campuri, se utilizaeza butonul Next, trecandu-se astfel la pasul urmator.


Fig. 12.6.5.

Fereastra din fig. 12.6.5. permite utilizatorului indicarea, prin selectie cu mouse-ul, a campurilor in raport cu valoarea carora dorim sa realizam gruparea, pe diverse niveluri, a inregistrarilor tabelei in cadrul raportului de generat. Pentru a reveni la fereastra anterioara se poate accesa butonul Back, pentru renuntare butonul Cancel, iar pentru continuarea actiunii de generare, butonul Next (care este si cel implicit).

Pasul urmator presupune aparitia pe ecran a ferestrei din fig. 12.6.6. Acesta permite alegerea formei raportului (Columnar, Tabular sau Justified - pentru fiecare apare pe ecran, in cadrul aceleasi ferestre si un preview) si a tipului de orientare a paginii de hartie pe care urmeaza sa fie tiparit raportul (Orientation, cu variantele Portrait sau Landscape).


Fig. 12.6.6.


Fig. 12.6.7.


Dupa alegerea tipului de raport si a tipului de orietare a paginii pe care se afiseaza raportul se acceseaza cu mouse-ul butonul Next sau se tasteaza ENTER. Din fereastra care apare astfel (fig. 12.6.7) se alege stilul de afisare a raportului.

Fig. 12.6.8.

Prin accesarea butonului Next sau apasarea tastei ENTER apare fereastra din fig. 12.6.8. Se poate introduce numele raportului. Pot fi de asemenea activate sau dezactivate butoanele radio care stabilesc daca se doreste vizualizarea raportului imediat dupa crearea lui (Preview the raport), sau daca se doreste sa se ofere utilizatorului posibilitatea de a modifica raportul (Modify the report's design). Utilizatorul are la dispozitie butoanele: Cancel (pentru anularea operatiunii de creare raport), Back (pentru revenirea in fereastra anterioara) sau Finish (pentru incheierea operatiei de creare a raportului).


Pentru exemplul considerat, dupa activarea butonului Finish, se vizualizeaza pe ecran continutul fizic al raportului creat (fig. 12.6.9.).

Fig. 12.6.9.

Crearea rapoartelor cu AutoReport: Columnar

Aceasta modalitate de creare a rapoartelor se alege atunci cand dorim un raport simplu, prin afisarea continutului tuturor inregistrarilor tabelei indicate, campurile aceleasi inregistrari fiind afisate unele sub altele, pe coloana.

Pentru a alege aceasta optiune de creare a raportului, se selecteaza din fereastra New Raport optiunea AutoReport: Columnar si se indica numele tabelei ce ofera datele ce vor fi cuprinse in raport. (fig. 12.6.10).


Fig. 12.6.10.


Fig. 12.6.11.

Dupa accesarea butonului OK, pe ecran se va vizualiza raportul solicitat (fig. 12.6.11.).

Crearea rapoartelor cu AutoReport: Tabular


Procedam similar cu cele prezentate la modul de reare Columnar, si se obtin succesiv ferestrele din figurile 12.6.12. si 12.6.13.


Fig. 12.6.12.

Fig. 12.6.13.

Dupa crearea oricaruia dintre tipurile de rapoarte permise de catre ACCESS, utilizatorul are posibilitatea modificarii acestuia, pana la aducerea la forma dorita. Acest lucru il putem face apeland la butonul Design.

Deschiderea unui raport creat se poate face prin accesarea butonului Preview. Astfel, raportul realizat pe exeplul anterior si prezent in fig. 12.6.13. poate fi adus la forma prezenta in figura 12.6.14


Fig. 8.6.14.





Politica de confidentialitate





Copyright © 2024 - Toate drepturile rezervate