Curs III.1.2-Baze de Date

30
 RCCC-RETEA DE CENTRE CIBERNETICE COMUNITARE  ________________________________________________________________________________________________  INFORMATICĂ BAZE DE DATE CUPRINS I. Generalităţi 1. Conceptul de bază de date 2. Obiectivele fundamentale 3. Sistemul de gestiune al Bazelor de Date II. SGBD Access 1. Prezentare generală 2. Crearea structurii bazei de date 3. Formulare 4. Interogarea bazei de date 5. Rapoarte 6. Comenzi macro III. Interfaţarea SGBD Access cu alte aplicaţii 1. Importul şi Exportul de date 2. Interfaţare Internet IV. Limbajul SQL 1. Noţiuni generale 2. Instrucţiuni de definire a datelor 3. Interogări 4. Instrucţiuni pentru manipularea datelor V. Analiză de caz – energii durabile 1

Transcript of Curs III.1.2-Baze de Date

Page 1: Curs III.1.2-Baze de Date

8/8/2019 Curs III.1.2-Baze de Date

http://slidepdf.com/reader/full/curs-iii12-baze-de-date 1/30

 RCCC-RETEA DE CENTRE CIBERNETICE COMUNITARE 

 ________________________________________________________________________________________________ 

  INFORMATICĂ

BAZE DE DATE

CUPRINS 

I. Generalităţi1. Conceptul de bază de date2. Obiectivele fundamentale3. Sistemul de gestiune al Bazelor de Date

II. SGBD Access1. Prezentare generală2. Crearea structurii bazei de date3. Formulare4. Interogarea bazei de date5. Rapoarte6. Comenzi macro

III. Interfaţarea SGBD Access cu alte aplicaţii1. Importul şi Exportul de date2. Interfaţare Internet

IV. Limbajul SQL1. Noţiuni generale2. Instrucţiuni de definire a datelor 3. Interogări4. Instrucţiuni pentru manipularea datelor 

V. Analiză de caz – energii durabile

1

Page 2: Curs III.1.2-Baze de Date

8/8/2019 Curs III.1.2-Baze de Date

http://slidepdf.com/reader/full/curs-iii12-baze-de-date 2/30

 RCCC-RETEA DE CENTRE CIBERNETICE COMUNITARE 

 ________________________________________________________________________________________________ 

I. Generalităţi

I.1. Conceptul de bază de date

Pe lângă realizarea de programe de prelucrare a datelor, o activitate la fel de importantă este aceeade organizare a datelor în scopul prelucrării. Pentru a putea realiza aplicaţii eficiente este necesar cadatele prelucrate să fie stocate într-o structură bine pusă la punct şi în acelaşi timp şi programele de

 prelucrare să corespundă cerinţelor.

Un element important este acela al separării nete între date, informaţii şi cunoştinţe:- datele – din punctul de vedere al prelucrării pe calculator datele sunt definite de trei

elemente: un identificator (ex.: cantitate), un atribut (ex.: număr real şi pozitiv) şivaloare (ex.: 23,78);

-

informaţiile – este un mesaj cu caracter de noutate. Acestea vin să înlăturenedeterminările şi sunt obţinute în urma prelucrării datelor;- cunoştinţele – sunt informaţii simple sau compuse pe care le dobândim de-a lungul

timpului. Ele se referă la obiecte şi fenomene din lumea reală.

O bază de date poate fi definită ca un ansamblu de date elementare sau structurate, accesibile unuigrup de utilizatori. Aceasta este un ansamblu de fişiere intercorelate care conţine nucleul de datenecesare unui sistem informatic.

 Fişierul este un ansamblu de înregistrări fizice, omogene din punctul de vedere al conţinutului şi al prelucrării. O înregistrare fizică este unitatea de transfer între memoria internă şi cea externă a

calculatorului. Aceasta este formată din una sau mai multe înregistrări logice. Înregistrarea logică este unitatea de prelucrare din punct de vedere al programului utilizator. Aceasta la rândul ei esteformată dintr-un ansamblu de câmpuri care descriu o anumită realitate.

I.2. Obiectivele fundamentale

Obiectivele fundamentale ale unei baze de date sunt următoarele:• Centralizarea datelor – permite: suprimarea redundanţei, asigurarea unicităţii

înregistrării şi controlul centralizat asupra datelor. În prelucrarea clasică datele folositede mai multe aplicaţii sunt înregistrate în mai multe fişiere şi în formate diferite ceea ceimplică o utilizare ineficientă a spaţiului de memorare;

•  Independenţa dintre date şi prelucrări – baza de date reprezintă o imagine a realităţii.Ea trebuie actualizată permanent dar acest fapt nu trebuie să afecteze programele de

 prelucrare a datelor;•  Realizarea de legături între entităţile de date – sunt vitale în exploatarea unui sistem

informatic. Un exemplu este acela al legăturii ce se realizează între un furnizor şi produsele pe care le vinde (şi invers) în cazul gestiunii aprovizionării;

•  Integritatea datelor – asigură fiabilitatea şi coerenţa bazei de date. Pentru aceastatrebuie definite restricţii de integritate cum sunt: apartenenţa la o listă de valori sau la uninterval, apartenenţa la un anumit format şi reguli de coerenţă cu alte date;

•  Securitatea datelor – baza de date trebuie să fie protejată împotriva distrugerilor logice

(anomalii de actualizare) sau fizice. Pentru aceasta există instrumente ce sunt capabile sărealizeze puncte de repriză (înregistrarea de copii coerente ale bazei de date la anumitemomente de timp) şi să gestioneze un jurnal de tranzacţii (lista operaţiilor realizateasupra bazei de date după ultimul punct de repriză);

2

Page 3: Curs III.1.2-Baze de Date

8/8/2019 Curs III.1.2-Baze de Date

http://slidepdf.com/reader/full/curs-iii12-baze-de-date 3/30

 RCCC-RETEA DE CENTRE CIBERNETICE COMUNITARE 

 ________________________________________________________________________________________________ 

• Confidenţialitatea – asigurată prin identificarea utilizatorilor prin nume sau cod,autentificarea prin parole, autorizarea accesului diferenţiat prin drepturi de creare,consultare, modificare sau ştergere pentru anumite segmente de date;

•  Partajarea datelor – permite înlănţuirea tranzacţiilor solicitate simultan pe aceeaşiînregistrare din baza de date, prin blocarea cererilor în aşteptare şi deservirea ulterioară aacestora.

I.3. Sistemul de gestiune al Bazelor de Date

Sistemul de gestiune al bazelor de date (SGBD) este o interfaţă între utilizatori şi baza de date, care permite ca facilităţi principale crearea, actualizarea şi consultarea acesteia. Din acest punct devedere SGBD poate fi considerat un instrument de asamblare, codificare, aranjare, protecţie şiregăsire a datelor în baza de date.

Funcţiunile principale îndeplinite de un SGBD sunt:- memorarea datelor pe suportul extern prin sistemul de gestiune a fişierelor;- gestiunea datelor şi a legăturilor dintre ele în vederea unei regăsiri rapide prin

intermediul sistemului de acces (SGBD intern);- introducerea şi extragerea datelor din baza de date în forma cerută de utilizator (SGBD

extern).

Consultarea unei date din baza de date trebuie să se deruleze ca principiu în mai multe etape care sesucced într-o ordine stabilită. Programul de aplicaţie emite o cerere de consultare a unei date simplesau grupate din baza de date; această cerere este recepţionată de SGBD care consultă schema

aferentă programului de aplicaţie care a emis cererea şi obţine descrierea logică a datei solicitate, pecare o compară cu descrierea acesteia în schema conceptuală. În continuare sistemul consultăstructura fizică în raport cu descrierea logică şi determină înregistrarea fizică în care se află datacerută după care lansează cereri către sistemul de operare care caută înregistrarea fizică şi o pune ladispoziţia SGBD care apoi o pune la dispoziţia programului de aplicaţie.

3

Page 4: Curs III.1.2-Baze de Date

8/8/2019 Curs III.1.2-Baze de Date

http://slidepdf.com/reader/full/curs-iii12-baze-de-date 4/30

 RCCC-RETEA DE CENTRE CIBERNETICE COMUNITARE 

 ________________________________________________________________________________________________ 

II. SGBD Access

II.1. Prezentare generală

SGBD Microsoft Access face parte di pachetul de programe Microsoft Office alături de altecomponente tradiţionale cum sunt: Microsoft Word, Excel, PowerPoint şi Outlook iar versiunea2000 Microsoft Office mai conţine şi Publisher, FrontPage, PhotoDraw şi Small Business Tools.

Principalele caracteristici ale SGBD Access sunt:• este relaţional şi lucrează sub sistemul de operare Windows;• este deschis comunicării cu alte sisteme de gestiunea bazelor de date cum ar fi FoxPro

sau Paradox;• este compatibil cu tehnologia ActiveX, care permite realizarea de aplicaţii client / server;•

 permite comunicarea cu Microsoft SQL Server, un alt produs software de gestiune a bazelor de date;•  permite accesul la baze de date din reţeaua Internet precum şi publicarea de informaţii în

 pagini Web;• este autodocumentat prin help, apelabil contextual sau la cerere;• conţine instrumente wizard care permit utilizatorului crearea într-o manieră foarte

simplă a obiectelor bazei de date;•  permite crearea de comenzi rapide (shortcuts) pentru accesarea obiectelor Access;•  permite crearea de obiecte definite de utilizator în cadrul bazei de date;•  permite personalizarea bazei de date;•

 permite utilizarea obiectelor Access din cadrul altor aplicaţii rulate sub sistemul deoperare Windows.

În versiunea 2000 a SGBD Access au fost introduse o serie de facilităţi noi cum ar fi:• Interfaţa grafică a fost modificată, fiind mai uşor de utilizat;• Se permite publicarea datelor folosind pagini HTML dinamice;• Dimensiunea bazei de date se poate reduce folosind facilitatea de compactare;• Se pot crea aplicaţii care să utilizeze baze de date stocate în SQL Server prin intermediul

reţelei.

 Baza de date Access

Spre deosebire de alte sisteme de gestiune a bazelor de date (cum ar fi FoxPro spre exemplu) unde prin bază de date se înţelege doar colecţia de fişiere în care sunt stocate datele, baza de date Access poate fi definită ca o colecţie de obiecte de mai multe tipuri:

• Tabele (Tables) – sunt obiecte definite de utilizator în care sunt stocate datele primare;• Formulare (Forms) – sunt obiecte care permit introducerea datelor, afişarea acestora

sau controlul aplicaţiei;• Cereri de interogare (Queries) – sunt obiecte care permit vizualizarea informaţiilor 

obţinute prin prelucrarea datelor din una sau mai multe tabele şi / sau alte cereri deinterogare;

Rapoarte (Reports) – sunt obiecte care permit formatarea şi tipărirea informaţiilor obţinute în urma consultării bazei de date, sub formă de documente;

4

Page 5: Curs III.1.2-Baze de Date

8/8/2019 Curs III.1.2-Baze de Date

http://slidepdf.com/reader/full/curs-iii12-baze-de-date 5/30

 RCCC-RETEA DE CENTRE CIBERNETICE COMUNITARE 

 ________________________________________________________________________________________________ 

• Pagini Web de accesare a datelor (Pages) – sunt obiecte care include fişiere HTML şialte fişiere suport în vederea furnizării accesului la date prin intermediul browseruluiInternet;

• Comenzi Macro (Macros) – sunt obiecte ce conţin definiţii structurate ale uneia saumai multor acţiuni pe care Access le realizează ca răspuns la un eveniment;

• Module (Modules) – reprezintă obiecte care conţin proceduri definite de utilizator şiscrise în limbajul de programare Visual Basic.

Crearea unei baze de date

La pornire SGBD Access afişează un ecran de dialog ce pune la dispoziţie două posibilităţi: creareamanuală a unei baze de date goale ( Blank Access database) sau crearea unei BD cu ajutorul“asistentului” (Access database wizards, pages and projects).

Cea de-a doua variantă pune la dispoziţia utilizatorilor mai puţin iniţiaţi un set de modele de baze dedate specifice anumitor domenii. În funcţie de problema care trebuie rezolvată aceştia vor alegeunul din aceste modele pe care îl vor adapta ulterior.

Pentru crearea manuală a unei baze de date noi se selectează Blank Access database şi se dă click apoi pe OK. În fereastra de dialog File New Database se introduce numele bazei de date ce sedoreşte a se crea şi apoi se dă click pe Create.

 Deschiderea şi salvarea unei baze de date

Dacă se doreşte modificarea sau consultarea unei baze de date creată anterior aceasta poate fideschisă din fereastra principală prin selectarea opţiunii Open an existing file şi apoi click pe OK.Se va deschide apoi fereastra de dialog Open ce permite selectarea bazei de date dorite.

Prin modificarea unei baze de date Access se înţelege modificarea obiectelor din componenţaacesteia. După modificarea unui obiect, la închiderea acestuia sistemul va solicita să se specificedacă modificările realizate vor fi sau nu salvate. În concluzie, modificările obiectelor se salveazălocal şi ca atare nu este necesară salvarea întregii baze de date.

II.2. Crearea structurii bazei de date

În vederea înţelegerii modului în care se creează o aplicaţie în Access vom folosi în continuare uncaz practic. Pentru aceasta vom considera cazul unui sistem informatic de gestiune a materialelor încadrul căruia se doreşte evidenţierea furnizorilor, a facturilor, a magaziilor, a tipurilor de materialeşi a bonurilor de consum. În scopul simplificării într-o anumită măsură a problematicii se presupunecă materialele cuprinse într-o factură sunt destinate unei singure magazii; de asemenea se considerăcă materialele au un preţ de achiziţie fix independent de furnizor şi că recepţia materialelor se facede o magazie pe baza facturii iar eliberarea acestora se face către secţii pe baza bonurilor de consum

 Modelul conceptual al datelor 

În urma analizei problemei rezultă următoarele entităţi: furnizor , factură , material , magazie şi bon

de consum. De asemenea se pot identifica următoarele corespondenţe:- furnizor – factură : un furnizor poate emite de la 1 la n facturi – corespondenţa

“emite”;

5

Page 6: Curs III.1.2-Baze de Date

8/8/2019 Curs III.1.2-Baze de Date

http://slidepdf.com/reader/full/curs-iii12-baze-de-date 6/30

 RCCC-RETEA DE CENTRE CIBERNETICE COMUNITARE 

 ________________________________________________________________________________________________ 

- factură  – material : într-o factură sunt cuprinse de la 1 la n materiale în diferite cantităţi – corespondenţa “poziţie factură” cu atributul “cantitate intrată”;

- factură – magazie : o magazie poate primi de la 1 la n facturi – corespondenţa

“primeşte”;- bon de consum – material : într-un bon de consum sunt cuprinse de la 1 la n materiale

în diferite cantităţi – corespondenţa “poziţie bon de consum” cu atributul “cantitateieşită”;

- bon de consum – magazie : o magazie poate emite de la 1 la n bonuri de consum – corespondenţa “destinat”;

- facturi – facturi : o factură poate fi stornată de 0 sau n facturi de stornare – corespondenţa “se stornează”.

Corespondenţele identificate conform celor enumerate mai sus primesc următoarele cardinalităţi:-

“emite” : dinspre entitatea furnizor(1,n) iar dinspre entitatea factură(1,1);- “primeşte” : dinspre entitatea magazie(1,n) iar dinspre entitatea factură(1,1);- “poziţie factură” : dinspre entitatea factură(1,n) iar dinspre entiatea material(1,n);- “poziţie bon de consum” : dinspre entitatea material(0,n) iar dinspre entitatea bon de

consum(1,n);- “destinat” : dinspre entitatea bon de consum(1,1) iar dinspre entitatea magazie(1,n);- “se stornează” : o factură poate să nu fie stornată sau poate să fie stornată de mai multe

ori -> factură(0,n) şi de asemenea o factură poate storna o singură factură -> factură(1,1).

Modelul logic (relaţional) al datelor este următorul:-  furnizori(cod furnizor, denumire furnizor, adresa furnizor, cod fiscal, banca, cont);

-  factură (număr factură, data factură, cod furnizor, cod magazie, număr factură stornată,cota tva);

- magazie(cod magazie, denumire magazie, gestionar);- conţinut factură (număr factură, cod material, cantitate intrată, preţ factură);- material (cod material, denumire material, unitate de măsură);- bon de consum(nr bon de consum, data bon de consum, denumire secţie, cod magazie);- conţinut bon de consum(nr bon de consum, cod material, cantitate ieşită)

în care s-au marcat cheile primare şi cheile străine.

Acest model relaţional poate fi transpus într-un model fizic corespunzător unei baze de date Access

folosind opţiunea Tools->Relationships din meniul sistemului.

Crearea tabelelor 

Crearea structurii tabelelor se poate face: utilizând fereastra de proiectare (Create table in designview), prin introducerea datelor (Create table by entering data) sau utilizând un wizard (Createtable by using wizard ).

Folosind instrumentul wizard se pot adăuga câmpuri standard ce se află deja în cadrul bibliotecilor de tabele standard. În acest caz câmpurile din cadrul tabelelor standard au fost create pentrusistemul de lucru anglo-saxon.

În situaţia când se optează pentru utilizarea design view pe ecran va apărea fereastra Table ce permite definirea rând pe rând, pentru fiecare câmp în parte, a numelui câmpului, tipul de date şi

6

Page 7: Curs III.1.2-Baze de Date

8/8/2019 Curs III.1.2-Baze de Date

http://slidepdf.com/reader/full/curs-iii12-baze-de-date 7/30

Page 8: Curs III.1.2-Baze de Date

8/8/2019 Curs III.1.2-Baze de Date

http://slidepdf.com/reader/full/curs-iii12-baze-de-date 8/30

 RCCC-RETEA DE CENTRE CIBERNETICE COMUNITARE 

 ________________________________________________________________________________________________ 

Hyperlink  – text sau combinaţie de text reprezentând adresa unei pagini Web sau, la modulgeneral, un URL (Uniform Resource Locator).

Lookup Wizard – pentru crearea de câmpuri ce permit utilizatorului să aleagă valori din cadrulaltor tabele sau dintr-o listă prestabilită de valori.

Formate de afişare

Stabilirea modului de afişare a datelor introduse în câmpurile tabelelor se face folosind proprietatea Format . Această proprietate nu afectează modul de introducere a datelor. Pentru toate tipurile dedate pot fi folosite următoarele simboluri:

- (spaţiu) – afişează spaţiile drept caractere distincte;- “ABC” – afişează orice se află în interiorul ghilimelelor aşa cum a fost tastat;

- ! – forţează alinierea la stânga, în loc de aliniere la dreapta;- * – completează spaţiul disponibil cu caracterul specificat imediat după *;- \ – afişează următorul caracter aşa cum a fost tastat (acelaşi lucru se poate obţine şi prin

includerea caracterelor de afişat între ghilimele);- [culoare] – permite afişarea caracterelor cu culoarea specificată între paranteze. Valorile

 posibile sunt: Black , Blue, Green, Cyan, Red , Magenta, Yellow, White.

Proprietatea Format foloseşte diverse simboluri şi combinaţii ale acestora pentru tipuri diferite dedate.

 Alte proprietăţi ce se pot defini pentru câmpuri 

În cadrul ferestrei de proprietăţi ale câmpului se mai pot defini:- dimensiunea câmpului ( Field Size);- numărul de zecimale ( Decimal Places);- formatul de introducere ( Input Mask );- eticheta (Caption) – pentru specificarea capului de coloană;- valoarea implicită ( Default Value);- regula de validare (Validation Rule);- textul de validare (Validation Text ) – mesaj explicativ în legătură cu violarea regulii de

validare;-  prezenţa datelor obligatorie ( Required );- indexat ( Indexed ) – se specifică dacă se face sau nu indexare după câmpul respectiv.- Se admit date de lungime zero ( Allow Zero Length) – pentru date de tip Memo şi Text .

Prin activarea tab-ului Lookup din panoul de proprietăţi, se pot specifica o serie de proprietăţi carese referă în principal la sursa de introducere a datelor. Aceste pot fi:

-  Display Control – tipul de control folosit pentru afişarea câmpului în tabele, formularesau rapoarte. Acesta este de obicei Text Box dar poate fi modificat în List Box sauCombo Box în situaţia în care câmpul respectiv este cheie externă şi ca atare face referirela o cheie primară dintr-o altă tabelă;

-  Row Source type – în situaţia în care Display Control a fost setat ca List Box sau Combo Box trebuie specificată sursa de date care poate fi: tabelă sau cerere de interogare

8

Page 9: Curs III.1.2-Baze de Date

8/8/2019 Curs III.1.2-Baze de Date

http://slidepdf.com/reader/full/curs-iii12-baze-de-date 9/30

 RCCC-RETEA DE CENTRE CIBERNETICE COMUNITARE 

 ________________________________________________________________________________________________ 

(Table/Query), listă de valori specificată de utilizator (Value List ) sau listă de câmpuridin altă tabelă ( Field List);

-  Row Source – în situaţia în care s-a specificat Table/Query sau Field List pentru Row

Source Type aici se menţionează numele tabelei sau a cererii de interogare de unde vor fi preluate datele iar în situaţia în care s-a selectat Value List se vor introduce valorile dinlistă separate prin virgulă;

-  Bound Column – se specifică numărul coloanei din care vor proveni datele în situaţia încare acestea vor proveni din mai multe coloane;

- Colum Count – numărul de coloane ce vor fi preluate;- Column Heads – se specifică dacă va fi afişată sau nu eticheta coloanei preluate;- Column Widths – specifică lăţimea de afişare a coloanelor din sursa de date. Dacă o

coloană din tabela sursă nu trebuie afişată atunci I se va specifica lăţimea de afişare 0;-  List Row – se specifică numărul de rânduri ce vor fi afişate în casetă pentru Combo Box;-

 List Width – se specifică lăţimea de afişare pentru Combo box;-  Limit to List  – se specifică dacă valorile câmpului se vor limita doar la cele afişate în

Combo Box. În situaţia în care se selectează No utilizatorul poate introduce şi valori noi.

 Relaţii între tabele

Din punctul de vedere al momentului creării acestora, există două tipuri de relaţii între tabelele unei baze de date Access:

- relaţii permanente – sunt cele ce se stabilesc după definirea tabelelor şi sunt cerute demodelul relaţional. Acestea sunt parte componentă a structurii bazei de date şi serealizează de obicei prin corespondenţe de tipul cheie primară – cheie externă;

- relaţii temporare – se stabilesc între tabele cu ocazia definirii unor cereri de interogare şinu se înregistrează în structura bazei de date.

Relaţiile care se pot stabili între tabele sunt de trei tipuri:- unu la mai mulţi (one to many);- unu la unu (one to one);- mai mulţi la mai mulţi (many to many):

În exemplul prezentat anterior, dacă am încerca să definim o relaţie între furnizori şi magaziiaceasta va fi de tipul many to many. Introducerea tabelei factura a transformat această relaţie în

două relaţii one to many.Definirea relaţiilor se realizează folosind fereastra Relationships. O relaţie dintre două tabele serealizează prin operaţia de drag and drop de la cheia primară a tabelei principale la cheia externă atabelei secundare. Cu această ocazie Access va deschide fereastra de dialog Edit Relationships încare se observă legătura stabilită şi unde se mai pot stabili alte câteva opţiuni:

-  Enforce Referential Integrity – pentru a face în aşa fel încât, dacă se introduce oînregistrare nouă în tabela secundară, se verifică dacă valoarea cheii externe se găseşte întabela primară, ceea ce înseamnă că este necesară completarea mai întâi a datelor dintabela principală şi apoi a celor din tabela secundară;

- Cascade Update Related Fields – în situaţia în care Enforce Referential Integrity a fost

activată, în momentul modificării valorii cheii primare în tabela principală se vor modifica şi valorile corespondente din tabela secundară;

9

Page 10: Curs III.1.2-Baze de Date

8/8/2019 Curs III.1.2-Baze de Date

http://slidepdf.com/reader/full/curs-iii12-baze-de-date 10/30

 RCCC-RETEA DE CENTRE CIBERNETICE COMUNITARE 

 ________________________________________________________________________________________________ 

- Cascade Delete Related Records – activă doar dacă s-a selectat în prealabil Enforce Referential Integrity, are ca efect ştergerea tuturor înregistrărilor din tabela secundară ceau o anumită valoare pentru cheia externă în momentul ştergerii cheii primare din tabela

 principală.

După definirea structurii bazei de date, folosind Tools->Analyse->Documenter se poate genera oimagine imprimabilă a oricărei tabele din componenţa acesteia.

Restricţii privind dimensiunile tabelelor:- numărul maxim de câmpuri este de 255;- numărul maxim de indecşi este de 32;- un index multiplu poate fi definit pe maximum 10 câmpuri;- o înregistrare nu poate depăşi 4KB, excluzând câmpurile Memo şi obiectele ActiveX ;-

dimensiunea maximă a unui câmp Memo este d 2GB.II.3. Formulare

Formularele ( Forms) reprezintă interfaţa principală între utilizator şi o aplicaţie Access. Acesteasunt obiecte ale bazei de date ce permit introducerea şi afişarea datelor. În cadrul unei aplicaţiiformularele pot îndeplini următoarele funcţii:

• Afişarea şi editarea datelor – este cea mai frecvent întâlnită utilizare a formularelor.Formularul permite vizualizarea datelor în forma dorită de proiectantul aplicaţiei şi deasemenea datele pot fi modificate sau şterse;

• Controlul operaţiilor realizate de aplicaţie – împreună cu comenzi macro sau cu

 proceduri Vizual Basic formularele pot realiza afişarea automată a anumitor date sauexecutarea automată a unui şir de operaţii (cum ar fi deschiderea de subformulare într-unformular);

• Introducerea de date;• Afişarea de mesaje – se pot furniza informaţii privind modul în care aplicaţia poate fi

utilizată sau despre operaţiile ce urmează a fi executate;• Tipărirea informaţiilor – funcţie destul de rar folosită.

Formularele sunt compuse din trei părţi: antetul, zona de detaliu şui subsolul. Zona de detaliu estecea în care se prezintă datele. Antetul şi subsolul conţin informaţii statice. Spre exemplu, antetul

 poate conţine numele formularului şi capul de tabel (denumirea câmpurilor) iar subsolul poateconţine denumirea programului.

Crearea formularelor se poate face folosind instrumentul wizard pentru creare automată saufolosind fereastra de proiectare ( Design View). În vederea obţinerii în mod eficient a unor formulare

 performante este recomandat ca acestea să fie iniţial create folosind instrumentul wizard şi apoi săse modifice folosind fereastra de proiectare în scopul adăugării de facilităţi suplimentare.

Pentru crearea folosind instrumentul wizard din caseta de dialog New Form se va selecta FormWizard iar din lista derulantă prezentă în partea de jos a acestei casete se va selecta tabela cu care valucra formularul, după care se dă click pe OK. Fereastra următoare îi aparţine instrumentului wizard 

şi permite selectarea câmpurilor asupra cărora va opera formularul în lucru. Prin click pe Next se vatrece la fereastra următoare ce permite selectarea modului de prezentare al datelor (Columnar,Tabular, Datasheet, Justified ) din care cel mai utilizat este cel de tip coloană (Columnar ). Fereastraurmătoare prezintă o listă de stiluri de afişare disponibile; un stil conţine un anumit tip de fundal,

10

Page 11: Curs III.1.2-Baze de Date

8/8/2019 Curs III.1.2-Baze de Date

http://slidepdf.com/reader/full/curs-iii12-baze-de-date 11/30

 RCCC-RETEA DE CENTRE CIBERNETICE COMUNITARE 

 ________________________________________________________________________________________________ 

anumite tipuri de caractere, culori, etc. Prin acţionarea butonului Next se trece la stabilirea numeluiformularului şi se poate alege acţiunea ce se va realiza după încheierea cu Finish a wizard -ului:deschiderea în fereastra de proiectare sau în modul de introducere / editare al datelor.

În fereastra de proiectare a formularelor sunt disponibile următoarele controale:-  Select Objects – este instrumentul activat implicit. Acesta se foloseşte pentru selectarea

obiectelor din ecran în vederea realizării de diverse modificări asupra acestuia;- Control Wizards – folosit pentru activarea / dezactivarea programelor Control Wizards

ce permit generarea controalelor complexe cum sunt grupurile de opţiuni, casetele deliste şi casetele combinate;

-  Label (etichetă) – casetă ce conţine texte fixe de descriere sau instrucţiuni de utilizare;- Text Box (casetă de text) – casetă ce permite afişarea şi editarea datelor de tip text;- Option Group (grup de opţiuni) – casetă dreptunghiulară de dimensiune variabilă în

care se pot plasa: butoane comutatoare, butoane de opţiune sau casete de validare. Numai un singur obiect din interiorul acestei casete poate fi selectat la un moment dat;- Toggle Button (buton comutator) – buton ce trece din starea On în starea Off şi invers

atunci când este selectat.- Option Button (buton de opţiune)  – buton rotund care se comportă identic cu un buton

comutator. Butoanele de acest tip sunt folosite cel mai frecvent în grupurile de opţiune pentru selectarea unei valori dintr-un set de opţiuni;

- Check Box (casetă de validare) – la selectarea căreia aceasta comută din starea On înstarea Off şi invers. Acestea trebuiesc plasate în afara grupurilor de opţiune în situaţia încare dorim să selectăm mai multe opţiuni simultan;

- Combo Box (casetă combinată) – combinaţie între o casetă de text editabilă în care se

 pot introduce valori şi o listă ce permite selectarea de valori dintr-un text;-  List Box (casetă de tip listă) – casetă care conţine o listă derulantă de opţiuni din care

 putem selecta o valoare;- Command Button (buton de comandă) – atunci când se execută click pe acesta se

startează un eveniment care execută o comandă macro sau o procedură VBA;-  Image (imagine) – afişează un element grafic static. Un element de acest tip nu poate fi

editat după ce a fost plasat în formular;- Unbound Object Frame (obiect neasociat) – inserează un obiect creat cu o aplicaţie

server OLE cum ar fi Microsoft Graph sau Microsoft Draw.-  Bound Object Frame (obiect asociat) – pentru inserarea unui obiect OLE inclus într-un

câmp al unei tabele dacă acesta este de tip grafic. În cazul în care acesta nu este grafic seva afişa o pictogramă ce reprezintă obiectul.-  Page Break (delimitator de pagină) – determină imprimanta să treacă la o pagină nouă

începând cu poziţia delimitatorului de pagină din formular sau raport. În modul Runaceste delimitatoare nu sunt afişate pe ecran;

- Tab Control (schimbător de pagină) – acest control se foloseşte în vederea creării uneiserii de pagini ce pot fi schimbate. Fiecare pagină va putea conţine un număr decontroale;

-  Subform / Subreport (subformular / subraport) – ataşează unui formular (sau raport) unsubformular (respectiv un subraport).

-  Line (linie) – creează o linie dreaptă ce poate fi redimensionată şi căreia i se poatemodifica poziţia;

-  Rectangle (dreptunghi) – creează un dreptunghi ce poate fi redimensionat saurepoziţionat;

11

Page 12: Curs III.1.2-Baze de Date

8/8/2019 Curs III.1.2-Baze de Date

http://slidepdf.com/reader/full/curs-iii12-baze-de-date 12/30

 RCCC-RETEA DE CENTRE CIBERNETICE COMUNITARE 

 ________________________________________________________________________________________________ 

-  More Controls – permite introducerea de controale ActiveX instalate în sistem.

 Subformulare

Un subformular este un formular inclus într-un alt formular pentru a permite afişarea datelor dinmai multe tabele sau cereri de interogare, aflate în general în relaţii de tipul unu la unu sau unu lamai mulţi. Astfel, în formularul principal vor fi afişate datele din partea unu a relaţiei, iar însubformular, cele din partea mai mulţi. În mod implicit legătura dintre un formular şi unsubformular reflectă legătura dintre tabelele pe care se bazează acestea. Într-un formular careconţine un subformular se pot specifica criterii de filtrare numai asupra câmpurilor din formularul

 principal. Exemplu: folosind relaţia 1-n dintre tabelele Factură şi Conţinut factură se poate crea unformular unde se vor afişa facturile şi în care se poate include un subformular pentru afişareamaterialelor specificate în acea factură.

Ca formă de prezentare subformularul poate fi: foaie de date ce permite crearea într-un mod foartesimplu a unui tabel în care se pot face modificări privind dimensiunea şi ordinea coloanelor sauformular ce oferă posibilităţi multiple de aranjare a datelor, utilizarea culorilor, crearea de antete şisubsoluri de pagină precum şi includerea de câmpuri OLE.

Pentru crearea unui formular ce include un subformular sunt posibile trei variante: creareaformularului şi subformularului în acelaşi timp, crearea subformularului şi adăugarea lui la unformular existent sau crearea separat a celor două formulare şi apoi combinarea lor. Ultima variantăeste cea mai simplă şi necesită parcurgerea următoarelor etape:

- se creează formularul principal şi subformularul ca formulare independente;-

se realizează legătura între formularul principal şi subformular;- se verifică legătura şi apoi rezultatul.

Pentru a aduce un subformular în formularul principal:- se deschide formularul principal în mod Design;- se trece în fereastra Database (se poate folosi tasta F11) şi din categoria Forms se

deplasează pictograma corespunzătoare subformularului în spaţiul formularului principal, ceea ce va avea ca efect adăugarea unui control de tip subformular;

- dacă este cazul, se deplasează controlul de subformular în locul dorit şi seredimensionează;

- se dă dublu click pe bordura subformularului pentru a afişa lista de proprietăţi a acestuia;

- se verifică legătura dintre formularul principal şi subformular prin proprietăţile Link child fields şi Link master fields care sunt automat definite de Access pe baza legăturilor dintre tabele, dacă acestea nu corespund cerinţelor se pot modifica manual;

- se trece în modul Forms pentru verificarea rezultatului;-  pentru a aduce modificări asupra formularului principal se poate comuta înapoi pe

modul Design.

II.4. Interogarea bazei de date

Interogarea bazei de date se poate face în mai multe moduri:

-  prin vizualizarea în totalitate a conţinutului tabelelor folosind foaia de date asociată( Datasheet View);-  prin vizualizarea parţială sau totală a conţinutului tabelelor cu ajutorul unor formulare

sau situaţii finale;12

Page 13: Curs III.1.2-Baze de Date

8/8/2019 Curs III.1.2-Baze de Date

http://slidepdf.com/reader/full/curs-iii12-baze-de-date 13/30

 RCCC-RETEA DE CENTRE CIBERNETICE COMUNITARE 

 ________________________________________________________________________________________________ 

-  prin cereri explicite.

Primele două moduri sunt interogări simple, fără restricţii şi se referă la o singură tabelă.

Interogarea prin cereri explicite este complexă şi se realizează în general pe mai multe tabele alecăror date sunt filtrate folosind diverse criterii. În Access aceasta poate fi de cinci feluri: selecţie( select ), analiză încrucişată (crosstab), acţiune (action), SQL (Structured Query Language) şiparametrată ( parameter ). Rezultatul unei asemenea cereri este plasat într-o foaie de răspuns ce seaseamănă foii de date asociate unei tabele.

Avantajele obţinute prin interogarea bazei de date folosind cereri explicite sunt:- selecţia câmpurilor din tabele şi a înregistrărilor acestora pe baza unor criterii impuse de

necesităţile informaţionale;- ordonarea rezultatelor după anumite criterii;- introducerea unor câmpuri calculate pe baza unor formule care operează cu câmpuri din

tabele;- combinarea datelor ce provin din mai multe tabele;- modularitatea cererilor, ceea ce permite ca rezultatul unei cereri să poată fi folosită ca

intrare pentru o nouă cerere;- crearea unor formulare şi rapoarte care au la bază cereri de interogare create anterior;-  posibilitatea de realizare a unor reprezentări grafice pe baza unor cereri de tip analiză

încrucişată.

Modalităţile posibile de creare a cererilor de interogare sunt:-  proiectarea pas cu pas folosind Design View;

- utilizând instrumentul wizard;- exprimarea cererii folosind limbajul SQL;- crearea unui filtru şi salvarea acestuia ca cerere de interogare;

Pentru crearea unei cereri de interogare folosind Design Wizard trebuiesc parcurşi următorii paşi:1. În fereastra Database se selectează secţiunea Queries şi apoi New;2. În caseta de dialog New Query se execută click pe Design View şi apoi pe OK ;3. Din caseta Show Table se selectează tabelele şi interogările ce se doreşte a fi incluse în

cererea ce se proiectează. După selectarea opţiunii Close se poate accesa fereastra delucru ce este structurată pe două secţiuni:

secţiunea de afişare a structurii tabelelor / cererilor ce au fost selectateanterior şi a legăturilor dintre ele (dacă există);• secţiunea ce conţine grila de proiectare (design grid ) în care se va construicererea din punct de vedere structural şi funcţional. Această grilă mai poartă numeleşi de grilă QBE (Query By Example).

4. La crearea de interogări ce folosesc mai multe tabele trebuie verificat dacă între eleexistă legăturile necesare pentru a răspunde cerinţelor impuse de noua cerere deinterogare. În cazul în care se doreşte realizarea unor legături suplimentare, acestea se

 pot stabili interactiv;5. Câmpurile ce apar în structura unei cereri pot fi preluate sau calculate. Câmpurile

 preluate pot fi trecute în grila de proiectare prin drag and drop sau dublu click.

Transferul întregii liste de câmpuri dintr-o tabelă sau cerere sursă în grila de proiectarese poate face folosind linia ce conţine *;

6. Ordonarea datelor (crescător sau descrescător) se poate face după unul sau mai multecâmpuri. Pentru aceasta se foloseşte poziţia corespunzătoare din linia Sort unde se poate

13

Page 14: Curs III.1.2-Baze de Date

8/8/2019 Curs III.1.2-Baze de Date

http://slidepdf.com/reader/full/curs-iii12-baze-de-date 14/30

 RCCC-RETEA DE CENTRE CIBERNETICE COMUNITARE 

 ________________________________________________________________________________________________ 

alege Ascending sau Descending . Ordinea de sortare este ordinea de apariţie în grila de proiectare a câmpurilor după care se face sortarea, de la stânga la dreapta;

7. În celulele aflate pe linia Criteria din grila de interogare se pot defini criterii de selecţie

care pot fi simple sau compuse. Criteriile simple pot fi:• apartenenţa la un interval de valori : BETWEEN de_la AND până_la;• apartenenţa la o listă de valori : IN (val1, val2,…);• expresii construite folosind operatori de comparaţie: <, >, <=, >=, <>, =;• expresii construite folosind operatorul de negaţie: NOT valoare;• expresii ce fac referire la câmpuri ce conţin sau nu valori: NOT NULL, IS 

 NOT NULL sau NULL, IS NULL;• conformitatea cu şabloane de tip text. Textul specificat trebuie inclus întreghilimele în cazul în care conţine spaţii şi poate conţine caractere generice (wildcard)cum sunt ? şi *.

Criteriile compuse se constituie prin legarea unor criterii simple folosind operatoriilogici ŞI, SAU. Dacă se doreşte selecţia după mai multe criterii simple conectate prin ŞIacestea se vor specifica pe aceeaşi linie. Dacă se doreşte acelaşi lucru folosind SAU,atunci criteriile simple se vor specifica pe rânduri diferite.Există de asemenea posibilitatea preluării de valori pentru definirea criteriilor dinformulare ce au fost deja definite folosind prefixarea câmpului din formular cu numeleformularului şi al obiectului Forms (ex.: Forms![nume_formular]![nume_câmp] .Pentru determinarea numărului de înregistrări dintr-o tabelă se poate folosi count(*).

8. Pentru crearea de câmpuri calculate:• se selectează coloana şi se introduce comanda View->Totals ce va duce laapariţia în grila de proiectare a liniei Total ;

• se selectează Expression în linia Total;• în prima linie Field se introduce formula de calcul care are următoarea formăgenerală: nume-rezultat: [câmp1]operator[câmp2] …

În coloana Totals sunt prezente de asemenea şi opţiuni corespunzătoare unor calcule predefinite (SUM, AVG, MIN, MAX, COUNT, STDEV, FIRST, LAST).

9. Se salvează cererea de interogare cu File->Save.

Cereri de interogare tip “analiză încrucişată” 

Aceste cereri permit generarea de tabele complexe sub formă matriceală în care numele liniilor şicoloanelor reprezintă criterii mixte de grupare iar valorile din celulele tabelului se obţin prinaplicarea unei funcţii predefinite (Sum, Min, Max etc.) asupra unui câmp din tabelă. Crearea uneicereri de interogare de acest tip se face folosind Query->Crosstab Query şi apoi se specificăcâmpurile ce furnizează liniile, coloanele şi valorile din tabel.

Cereri de interogare de tip “acţiune” 

Acestea se folosesc pentru:- crearea de noi tabele pe baza celor existente;- ştergerea de înregistrări din una sau mai multe tabele;- modificarea datelor dintr-un grup de înregistrări;

- adăugarea unui grup de înregistrări la o tabelă existentă.

Etapele de realizare a unei interogări de tip acţiune se face în trei etape:- crearea unei cereri de interogare de tip selecţie şi verificarea rezultatului acesteia;

14

Page 15: Curs III.1.2-Baze de Date

8/8/2019 Curs III.1.2-Baze de Date

http://slidepdf.com/reader/full/curs-iii12-baze-de-date 15/30

 RCCC-RETEA DE CENTRE CIBERNETICE COMUNITARE 

 ________________________________________________________________________________________________ 

- transpunerea cererii de interogare de tip selecţie într-o cerere de tip acţiune;- verificarea rezultatelor în tabele;- selectarea tipului de interogare folosind una din opţiunile prezente în meniul Query:

Make-Table Query, Update Query, Append Query, Delete Query;

Cereri de interogare parametrate

Sunt utile atunci când criteriile de selecţie trebuiesc modificate frecvent. Avantajul unei cereri parametrate este acela că permite ca unele criterii din cadrul acesteia să primească valori înmomentul executării acesteia.

Etapele de realizare sunt următoarele:- se lansează operaţia de realizare a cererii;-

se selectează tabelele în zona de lucru şi se aduc câmpurile dorite în grila de proiectare;- se introduce numele parametrilor urmaţi de caracterul “:” între paranteze drepte laintersecţia liniei Criteria cu câmpurile cărora li se vor aplica criterii parametrate;

- se alege Query->Parameters în care se vor introduce numele parametrilor definiţi îngrila de proiectare şi tipurile acestora;

- după închiderea şi salvarea cererii, aceasta poate fi activată folosind View->Datasheet view. La activare se va solicita utilizatorului valorile parametrilor stabiliţi în cadrulcererii.

II.5. Rapoarte

Rapoartele (numite şi situaţii finale) constituie finalităţi ale ciclului de creare-actualizare-exploatarea unei baze de date, conţinutul lor fiind vizualizat pe ecran, ori listat la imprimantă. În Accesscrearea de rapoarte se realizează apelând la butonul New prezent în secţiunea Reports a ferestrei

 bazei de date ce pune la dispoziţie următoarele posibilităţi:- crearea rapoartelor asistată de utilitarul wizard urmată de selecţia variantei de lucru

“Report Wizard” ce permite generarea de rapoarte complexe, fără cunoaştereaamănunţită a facilităţilor Access;

- realizarea rapoartelor de către utilizator folosind opţiunea “Design View”;- generarea automată, fără intervenţia utilizatorului, a unor rapoarte în care datele sunt

 prezentate fie pe o singură coloană (“Autoreport: Columnar”), fie sub formă de table

obişnuit (“Autoreport: Tabular”);- crearea de rapoarte sub formă de grafic (cu opţiunea “Chart Wizard”);- realizarea unor rapoarte de dimensiunea unor etichete ce pot fi utilizate pentru

corespondenţă (“Label Wizard”).

Rapoartele pot cuprinde date dintr-una sau mai multe tabele şi/sau interogări sau pot exista rapoartecare nu au o anumită sursă de date dar care pot îngloba informaţii utile subrapoartelor definite petabele sau interogări între care nu au fost stabilite relaţii. Între rapoarte şi formulare există foartemulte elemente comune, cum ar fi:

- ambele sunt împărţite în secţiuni în mod asemănător ( Report Header / Footer , Page Header / Footer , Detail );

- controalele ce pot fi utilizate sunt aceleaşi cu menţiunea că unele dintre acestea (cum ar fi casetele de tip listă sau combinate sau butoanele de comandă) sunt inutile în cazulrapoartelor;

15

Page 16: Curs III.1.2-Baze de Date

8/8/2019 Curs III.1.2-Baze de Date

http://slidepdf.com/reader/full/curs-iii12-baze-de-date 16/30

 RCCC-RETEA DE CENTRE CIBERNETICE COMUNITARE 

 ________________________________________________________________________________________________ 

-  proprietăţile controalelor sunt similare cu observaţia că în rapoarte nu sunt active proprietăţile din categoria Event .

Generarea rapoartelor asistată de Wizard 

Trebuiesc parcurse următoarele etape:1. Se selectează Reports, New şi apoi, în fereastra New Report se alege varianta Report 

Wizard ;2. Se precizează numele tabelei, sau a interogării, care va fi sursa de date pentru raportul de

realizat;3. În fereastra următoare se vor selecta câmpurile ce vor alcătui structura raportului

folosind butoanele “>”, ”>>”, ”<” şi “<<” pentru selectare sau deselectare,individual sau în grup;

4. Se alege modul de prezentare al datelor în raport: în cazul în care câmpurile fac parte din

mai multe tabele legate între ele se poate stabili după care dintre aceste tabele se va face parcurgerea atunci când se va genera raportul;

5. Se vor preciza criteriile de grupare a datelor. Folosind săgeţile Priority se stabileşteordinea operaţiunilor de grupare iar prin utilizarea butonului Grouping Options se poateopta pentru realizarea grupărilor folosind întreg câmpul selectat pentru grupare saunumai un anumit număr de caractere de la începutul acestuia;

6. Se aleg câmpurile după care se va face sortarea raportului şi opţiunile de sortarecorespunzătoare. Tot aici se pot specifica opţiuni de realizare de calcule de grup cum ar fi totalurile parţiale sau generale, medii, etc. folosind butonul Summary Options;

7. Se selectează modul de dispunere şi de aliniere a datelor raportului folosind unul dincele 6 formate prestabilite din cadrul Layout şi aşezarea în pagină a acestuia din cadrulOrientation;

8. Se selectează una din combinaţiile prestabilite de fonturi şi de culori;9. Se specifică numele raportului şi apoi se optează pentru previzualizarea raportului sau

modificarea sa în Design View.10. Raportul poate fi modificat folosind Design sau poate fi vizualizat în forma tipăribilă

folosind modul Open;11. Pentru tipărirea raportului se poate folosi File->Print sau butonul corespunzător din

toolbar.

 Definirea rapoartelor de către utilizator 

Deoarece nu întotdeauna rapoartele generate folosind wizard -ul corespund cerinţelor formulate desolicitanţi, se recurge la realizarea lor de către utilizator, după cum urmează:

- Se selectează Reports, New, Design View din meniul Database;- Dacă este necesar se va crea antetul şi sfârşitul raportului selectând File->Report 

 Header/Footer . În situaţia în care una din aceste secţiuni nu este utilă se va reducedimensiunea acesteia la zero;

- Se poate realiza gruparea şi/sau sortarea datelor folosind View->Sorting and Grouping ;- Se aduc în secţiunea Detail câmpurile ce vor alcătui structura raportului şi se definesc

câmpurile calculate scriind în casetele de tip text formula de calcul. Pentru afişarea listeide câmpuri se poate apela la View->Field List . Este recomandat ca etichetele ataşate în

mod automat câmpurilor să fie şterse şi copiate în secţiunea Page Header . De asemenea pentru crearea casetelor care să afişeze valori de tipul numărului curent se va ataşa

16

Page 17: Curs III.1.2-Baze de Date

8/8/2019 Curs III.1.2-Baze de Date

http://slidepdf.com/reader/full/curs-iii12-baze-de-date 17/30

 RCCC-RETEA DE CENTRE CIBERNETICE COMUNITARE 

 ________________________________________________________________________________________________ 

 proprietăţii Control Source expresia “=1” şi apoi la Running Sum se va alege domeniulde numerotare (pe grup sau total);

- Pentru totaluri se proiectează în Group Footer sau  Page/Report Footer etichetele şi

casetele text necesare şi apoi se înscriu funcţiile corespunzătoare ( sum(), avg(), min(),max, etc.);

 Proprietăţi ale obiectelor de tip raport şi ale secţiunilor lor 

Rapoartele conţin patru categorii de proprietăţi:• Format – ce cuprinde următoarele:- Caption –  pentru stabilirea unui titlu pe bara albastră în modul print preview;-  Page Header şi Page Footer  – pentru specificarea paginilor din raport pe care se vor 

afişa antetul, respectiv subsolul de pagină;-

 Picture – pentru specificarea unui fişier de tip imagine ce va fi afişat pe fundal;-  Picture Pages – se precizează paginile pe care se va afişa fundalul;•  Data

-  Record Source –  se precizează o tabelă, o interogare sau o frază Select care constituiesursa de date pentru raportul respectiv;

-  Filter – permite stabilirea unei condiţii-filtru pe care trebuie să o îndeplinească datele cevor fi afişate în raport;

-  Filter On – dacă s-a setat Yes, criteriul specificat în devine activ;- Order By – se specifică câmpurile de sortare în ordinea gradului de generalitate, cu

virgulă între ele;- Order By On – permite activarea / dezactivarea proprietăţii Order By.•  Event – proprietăţi de tip eveniment   –   permite specificarea funcţiilor, procedurilor sau

macro-urilor ce se vor ataşa evenimentelor Open, Close, Activate, Deactivate şi No Data.

• Other – alte proprietăţi 

-  Record Locks – permite blocarea informaţiilor folosite în raport în timpul afişăriiacestora;

-  Date Grouping – pentru utilizarea tipului implicit de dată sau a tipului setat de utilizator;-  Fast Laser Printing – permite realizarea unei tipăriri rapide a raportului.

Secţiunile rapoartelor conţin la rândul lor proprietăţi, dar în număr mai mic. Ele folosesc la

atribuirea unui nume de secţiune ( Name), la stabilirea saltului la pagină nouă ( Force New Page), laascunderea sau afişarea datelor (Visible), etc.

II.6. Comenzi macro

În Microsoft Access comenzile macro reprezintă o modalitate simplă şi eficientă de automatizare aanumitor operaţii, oferind posibilitatea dezvoltării de aplicaţii de complexitate sporită fără afi necesare cunoştinţe de Visual Basic. Practic, o macrocomandă este o acţiune sau osecvenţă de acţiuni specificate printr-o listă ce realizează acţiuni cum ar fi deschiderea sauînchiderea formularelor, tipărirea rapoartelor, lansarea în execuţie a altor programe, salvareaînregistrărilor sau execuţia unor secvenţe SQL.

17

Page 18: Curs III.1.2-Baze de Date

8/8/2019 Curs III.1.2-Baze de Date

http://slidepdf.com/reader/full/curs-iii12-baze-de-date 18/30

 RCCC-RETEA DE CENTRE CIBERNETICE COMUNITARE 

 ________________________________________________________________________________________________ 

Crearea unei comenzi macro

1. Se selectează eticheta Macros a bazei de date şi se dă click pe butonul New.

2. În coloana Action se selectează din listă acţiunea dorită;3. Se completează în coloana Comment explicaţii cu privire la acţiunile selectate;4. În grila Action Arguments din parte de jos a ferestrei se completează argumenteleacţiunii selectate. Conţinutul acestei grile se modifică funcţie de acţiunea selectată.

 Lansarea în execuţie a unei comenzi macro

Sunt disponibile următoarele variante:- lansare directă prin dublu click pe pictograma asociată macrocomenzii sau Macro->Run

Macro din meniul Access;- executarea prin intermediul unui alt macro selectând din lista de acţiuni opţiunea

 RunMacro. În acest mod se poate realiza şi executarea repetitivă a macrocomenzilor;- lansarea dintr-o procedură Visual Basic;- lansarea în execuţie ca răspuns la un eveniment. Acest mod se obţine prin ataşarea unui

macro unui obiect, ca răspuns la un eveniment survenit în desfăşurarea aplicaţiei;- adăugarea unui nou buton într-o bară de instrumente prin apelarea meniului Tools->

Customize;- lansarea în execuţie în momentul deschiderii bazei de date prin crearea unui macro cu

numele autoexec. Acesta va fi declanşat la fiecare deschidere sau compactare a fişieruluidacă nu se ţine tasta Shift apăsată;

- ca răspuns la apăsarea unei combinaţii de taste. Pentru aceasta se va crea un grup macro

(folosind opţiunea View->Macro Names în fereastra de editare a macrourilor). Grupulmacro va conţine în coloana Macro Name combinaţia de taste corespunzătoare fiecăreiacţiuni (pentru redarea tastei Ctrl se foloseşte simbolul ^).

18

Page 19: Curs III.1.2-Baze de Date

8/8/2019 Curs III.1.2-Baze de Date

http://slidepdf.com/reader/full/curs-iii12-baze-de-date 19/30

 RCCC-RETEA DE CENTRE CIBERNETICE COMUNITARE 

 ________________________________________________________________________________________________ 

III. Interfaţarea SGBD Access cu alte aplicaţii

III.1. Importul şi exportul de date

 Importul de date

În momentul când se dezvoltă o aplicaţie datele ce trebuiesc prelucrate este posibil să fie disponibileîn alt format decât formatul MDB al lui Microsoft Access. Pentru utilizarea unor astfel de date sunt

 puse la dispoziţie două posibilităţi: crearea unei legături către sursa externă de date şi importulacestora.

Legătura la o sursă externă reprezintă o interfaţă Access către datele existente într-un fişier alaltei aplicaţii. Se pot efectua modificări, ştergeri şi adăugiri fără a schimba formatul în care suntdisponibile datele. Un neajuns al acestei metode este imposibilitatea de a aduce modificări înstructura tabelei. Pentru crearea unei legături la o sursă externă se poate selecta New din secţiuneaTables a ferestrei Database şi apoi se va selecta varianta Link Table.

Importarea datelor implică convertirea acestora din formatul în care sunt stocate în fişierul sursăşi copierea lor într-o nouă tabelă Access. Modificările care vor fi aduse se vor reflecta doar asupradatelor copiate nu şi asupra fişierului din care au fost preluate. Pentru a realiza importul se poateselecta New din secţiunea Tables a ferestrei Database şi apoi se va selecta varianta Import Table.

Microsoft Access poate importa date din formate precum: Dbase, Paradox, FoxPro, Lotus 123,Excel, fişiere text, Microsoft Exchange sau chiar fişiere HTML. În cazul în care sursa de date este

tot un fişier Access (eventual o versiune mai veche) există posibilitatea de import şi pentru alteobiecte cum sunt rapoarte, formulare, interogări şi module.

 Exportul de date

Exportul presupune realizarea unei copii a datelor din Access în formatul solicitat de programuldestinaţie. Există posibilitatea exportului către alte baze de date Access sau către fişiere Dbase,Paradox, Microsoft Excel, Microsoft Word, FoxPro, Lotus 123, HTML sau fişiere text. Pe lângăexportul datelor se pot exporta de asemenea şi alte obiecte pentru a putea fi reutilizate în contextulunei alte aplicaţii Access. Pentru a realiza exportul către o altă aplicaţie se selectează în fereastra

 Database obiectul dorit şi apoi File->Export .

Pentru realizarea comunicării cu Microsoft Word şi Microsoft Excel sunt disponibile prinintermediul Tools->Office Links opţiunile:

- Merge it With MS Word – pentru folosirea datelor din Access într-o operaţiune defuziune a documentelor (Mail Merge) disponibilă în Microsoft Word;

-  Publish It with MS Word  – creează un fişier în format rich-text pe baza obiectuluiselectat în fereastra Database pe care îl transferă apoi utilitarului MS Word;

-  Analyze It with MS Excel  – creează şi deschide un fişier de tipul MS Excel pe bazaobiectului sursă selectat;

De asemenea sunt disponibile facilităţi avansate privind comunicarea dintre aplicaţii. Acestea pun ladispoziţia programatorilor facilităţi puternice ce permit aplicaţiilor realizate în Access să realizezeschimburi de informaţii cu alte programe. În această categorie se încadrează:

- comunicarea prin OLE (Object Linking and Embedding);

19

Page 20: Curs III.1.2-Baze de Date

8/8/2019 Curs III.1.2-Baze de Date

http://slidepdf.com/reader/full/curs-iii12-baze-de-date 20/30

 RCCC-RETEA DE CENTRE CIBERNETICE COMUNITARE 

 ________________________________________________________________________________________________ 

- schimbul dinamic de date – DDE (Dynamic Data Exchange);- obiecte ActiveX;- controale ActiveX personalizate;

III.2. Interfaţare Internet

Sistemul de gestiune a bazelor de date Access oferă următoarele posibilităţi de interfaţare cu reţeauaInternet:

-  pagini Web statice (fişiere de tip .html);-  pagini web dinamice ( Active Server Pages);- obiecte de tip pagină Web ( Data Access Pages).

Pentru crearea unei pagini Web statice se parcurg următoarele etape:

- se selectează tabela, cererea de interogare, formularul sau raportul pe care dorim să-l publicăm pe Internet;- se activează comanda File->Export care va afişa o fereastră de dialog pentru salvarea

obiectului selectat anterior;- în fereastra de dialog se specifică calea, numele fişierului şi tipul acestuia (HTML);- se specifică un template ce permite afişarea paginii Web într-un format mai atractiv;

Crearea unei pagini Web de tip ASP (Active Server Pages)

ASP este o pagină Web ce conţine un program de tip script în limbaj VBScript care se execută peserverul de Web. La accesare, scriptul respectiv este executat şi produce un rezultat ce va fi trimisclientului. Prelucrarea făcută de script constă în deschiderea bazei de date, execuţia unei cereri deinterogare, formatarea rezultatului şi trimiterea acestuia către clientul care l-a solicitat.

Paginile ASP pot fi prelucrate numai pe un server Web Microsoft, adică Internet InformationServer (IIS) sau pentru testare la nivel local Personal Web Server . Acestea sunt stocate în fişiere.asp şi trebuiesc catalogate într-un folder pe server unde se regăsesc programele executabile.

Multe pagini ASP folosesc obiecte ActiveX (ActiveX Objects) care sunt module software folosite pentru interfaţarea cu Microsoft Office. ActiveX   Data Objects ( ADO) este o colecţie de obiecte ActiveX specializate în prelucrarea bazelor de date, făcând parte din SGBD Access versiunea 2000.Open Database Connectivity (ODBC ) este o interfaţă standard între baze de date diferite.

Înainte de crearea şi testarea unei pagini Web de tip ASP este necesară definirea legăturii bazei dedate cu sistemul prin crearea unui aşa numit Data Source Name (DSN) în configurarea ODBC.

 DSN poate fi de trei tipuri: User DSN – disponibil numai dacă utilizatorul este conectat la reţea,System DSN  – vizibil de către toţi utilizatorii şi File DSN  – memorat într-un fişier. Cel mai utilizateste System DSN .

Pentru crearea unei pagini ASP se selectează tabela, cererea de interogare, formularul sau raportul şise activează comanda File->Export care va afişa fereastra de dialog pentru exportul obiectuluiselectat. Se selectează calea şi numele fişierului ce trebuie exportat şi apoi butonul Save care va

duce la apariţia ferestrei de dialog Microsoft Active Server Pages Output Options în care singurulelement care trebuie specificat obligatoriu este Data Source Name. Tot aici mai pot fi specificate şialte elemente cum ar fi HTML Template – model pentru crearea paginii Web, User to Connect As şi

 Password for User  – pentru specificarea numelui de utilizator şi a parolei de conectare dacă pagina

20

Page 21: Curs III.1.2-Baze de Date

8/8/2019 Curs III.1.2-Baze de Date

http://slidepdf.com/reader/full/curs-iii12-baze-de-date 21/30

 RCCC-RETEA DE CENTRE CIBERNETICE COMUNITARE 

 ________________________________________________________________________________________________ 

este protejată împotriva accesului neautorizat, Server URL – specifică URL-ul care va găzdui pagina şi Session Timeout  – pentru stabilirea timpului maxim necesar pentru deschiderea bazei dedate (în general acesta este setat în driverul de acces la baza de date).

21

Page 22: Curs III.1.2-Baze de Date

8/8/2019 Curs III.1.2-Baze de Date

http://slidepdf.com/reader/full/curs-iii12-baze-de-date 22/30

 RCCC-RETEA DE CENTRE CIBERNETICE COMUNITARE 

 ________________________________________________________________________________________________ 

IV. Limbajul SQL

IV.1. Noţiuni generale

Unul dintre cele mai puternice limbaje structurate pentru interogarea bazelor de date relaţionale îlconstituie în prezent SQL (Structured Query Language). Acesta a devenit standard pentru o gamădin ce în ce mai mare de sisteme de gestiune a bazelor de date. Limbajul SQL este un limbajneprocedural (declarativ) deoarece permite descrierea numai a informaţiilor ce se doresc a fiobţinute în urma interogării, fără a fi nevoie să se stabilească modalităţile de a ajunge la rezultate.

Instrucţiunile SQL, în funcţie de rolul lor, pot fi grupate astfel:- instrucţiuni de definire a datelor care permit descrierea structurii bazei de date;- instrucţiuni de manipulare a datelor, în sensul adăugirii, modificării şi ştergerii

înregistrărilor;- instrucţiuni de selecţie a datelor care permit consultarea bazei de date;- instrucţiuni de procesare a tranzacţiilor care privesc unităţile logice de prelucrare şi

constituie în fapt operaţii multiple de manipulare a datelor;- instrucţiuni de control al cursorului;- instrucţiuni privind controlul accesului la date.

Pentru scrierea corectă a unei instrucţiuni SQL în Access este necesară respectarea strictă a unor reguli de sintaxă. Iată câteva dintre acestea:

- orice instrucţiune SELECT se va încheia cu “;” ;- într-o interogare unde se folosesc câmpuri din cele mai multe tabele, pentru a separa

numele tabelului de numele câmpului, se va utiliza “;” ;-  parantezele drepte încadrează numele de câmpuri doar când acestea conţin spaţii sau

simboluri neacceptate de SQL;-  pentru a delimita parametrii dintr-o listă se utilizează virgula;- valorile de tip şir de caractere se delimitează prin apostrof sau ghilimele;- inegalităţile se specifică folosind “<>”;- simbolurile “?” şi “*” sunt folosite pentru a desemna unul sau mai multe caractere de

înlocuire;-  pentru a evidenţia valorile de tip dată / timp se foloseşte delimitatorul “#”.

IV.2. Instrucţiuni de definire a datelor

În limbajul Access SQL sunt accesibile următoarele instrucţiuni de definire a datelor: CREATE TABLE  – Plecând de la structura unei înregistrări şi de la tipurile de date asociatecâmpurilor din cadrul acesteia utilizatorul poate să creeze o tabelă. Tipurile de date disponibile suntcele descrise anterior la secţiunea cu privire la crearea structurii bazei de date.

Sintaxă: CREATE TABLE nume_tabelă(câmp1 tip_dată1 [NOT NULL], câmp2 tip_dată2 [NOT NULL], câmp1 tip_dată1 [NOT NULL], …);

Exemplu: CREATE TABLE vanzari(nr number, cod_m number, data_v date NOT NULL, localitchar);

22

Page 23: Curs III.1.2-Baze de Date

8/8/2019 Curs III.1.2-Baze de Date

http://slidepdf.com/reader/full/curs-iii12-baze-de-date 23/30

 RCCC-RETEA DE CENTRE CIBERNETICE COMUNITARE 

 ________________________________________________________________________________________________ 

ALTER TABLE – permite adăugarea unui câmp la o tabelă existentă. Nu este însă posibilăştergerea unui câmp şi adăugarea de câmpuri la nivelul întregii baze de date.

Sintaxă: ALTER TABLE nume_tabelă() ADD nume_câmp tip_dată;

Exemplu: ALTER TABLE personal_vanzare ADD telefon integer;

DROP TABLE – se foloseşte pentru ştergerea completă a unei tabele dintr-o bază de date (inclusivindecşii şi valorile asociate).

Sintaxă: DROP TABLE nume_tabelă;

Exemplu: DROP TABLE vanzari;

IV.3. Interogări

Instrucţiunile de selecţie reprezintă una din cele mai importante categorii de instrucţiuni alelimbajului SQL. Indiferent dacă acestea sunt simple sau complexe ele încep cu SELECT şi au rolulde a regăsi şi afişa informaţiile solicitate de utilizator.

 Interogări simple

Interogările simple folosesc următoarea sintaxă:SELECT [domeniu] listă_selecţie

FROM nume_tabelă1, nume_tabelă2, …[WHERE criteriu_de_selecţie][ORDER BY câmpuri_de_ordonare [ASC|DESC]];

unde elementele specificate au următoarea semnificaţie:•  Domeniu – determină stabilirea modalităţii de manipulare a înregistrărilor din baza de

date. Acesta poate lua valorile: ALL pentru includerea tuturor înregistrărilor ce satisfaccondiţiile impuse (ALL se consideră implicit atunci când nu se specifică domeniul),DISTINCT – permite eliminarea înregistrărilor care conţin duplicate pe câmpurileselectate (se va a fişa o singură dată o valoare ce apare de mai multe ori) şiDISTINCTROW pentru eliminarea înregistrărilor duplicate în ansamblul lor, nu numai

 pe cele ce conţin câmpuri duplicate;•  Listă_selecţie – cuprinde câmpurile ce vor apărea în tabela cu rezultatele interogării.

Câmpurile adăugate în rândul Field din grila de selecţie a machetei QBE care au marcatăopţiunea Show sunt aceleaşi cu cele menţionate în lista de selecţie.

• FROM – clauză ce specifică numele tabelelor ce vor constitui suportul interogării. Însituaţia în care se include câmpuri din mai multe tabele acestea trebuiesc prefixate cunumele tabelei din care face parte.

• WHERE – se specifică faptul că vor fi afişate numai înregistrările care îndeplinesccriteriul descris.

• ORDER BY – se utilizează pentru a ordona rezultatele interogării în mod crescător (ASC) sau descrescător (DESC). Sortarea se poate realiza după unul sau mai multecâmpuri specificate sub formă de listă în ordinea importanţei.

23

Page 24: Curs III.1.2-Baze de Date

8/8/2019 Curs III.1.2-Baze de Date

http://slidepdf.com/reader/full/curs-iii12-baze-de-date 24/30

 RCCC-RETEA DE CENTRE CIBERNETICE COMUNITARE 

 ________________________________________________________________________________________________ 

Exemplu: SELECT denumire, cifra_afaceri, [cifra_afaceri]*1.1 AS ca_progonoza FROM indicatoriWHERE localit=”Brasov” ORDER BY denumire DESC;

În scrierea interogărilor de selecţie simple se pot folosi şi funcţii totalizatoare cum sunt: COUNT –  pentru returnarea numărului de înregistrări ce respectă condiţiile stabilite prin clauza WHERE, SUM – realizează suma tuturor valorilor dintr-un câmp, AVG – calculează valoarea medie a unuicâmp numeric, MIN şi MAX – calculează valoarea minimă respectiv maximă a unui câmp.

 Interogări complexe

SQL Access permite de asemenea, pe lângă definirea de interogări de selecţie simple, crearea destructuri complexe precum cele ce utilizează funcţii agregate, asocieri (UNION) sau combinări(JOIN). La acestea se adaugă folosirea instrucţiunilor în cadrul formularelor, a rapoartelor sau amacro-urilor şi stabilirea parametrilor de interogare.

• Funcţiile de grup (agregat)

Acestea permit construirea unor interogări prin care se pot efectua diverse calcule pentru grupuri deînregistrări ce conţin aceleaşi valori într-o listă de câmpuri specificată. În acest caz se foloseşteurmătoarea sintaxă:

SELECT [domeniu] funcţie_agregată(nume_câmp) AS alias [, listă_selecţie]FROM nume_tabelă1, nume_tabelă2, …

GROUP BY câmp_de_grupare1, câmp_de_grupare2, …[HAVING criteriul_de_grupare][ORDER BY câmpuri_criteriu [ASC|DESC]];

unde:•  Listă selecţie – se va referi la una sau mai multe funcţii agregate care au ca argument

nume de câmpuri de tip numeric ale bazei de date;•  AS alias – asociază un nume rezultatului utilizării funcţiei agregat;• GROUP BY  – clauză ce precizează câmpurile pe baza cărora se va efectua gruparea

înregistrărilor;•  HAVING – specifică criteriul care va fi aplicat înregistrărilor rezultate în urma

operaţiilor de grupare şi calcul pe grupuri.

Exemplu: SELECT localitate, valoare_nominală, AVG(nr_act) AS medie, SUM([nr_act]) AS totalFROM capitaluri WHERE localitate IN (“Bucuresti”, “Ploiesti”) GROUP BY localitate,valoare_nominală HAVING SUM([nr_act])>=10000;

Exemplul de mai sus stabileşte numărul mediu, şi totalul acţiunilor emise în localităţile Bucureşti şiPloieşti, pe categorii de valori nominale şi numai pentru cazurile în care totalul acţiunilor emise adepăşit 10000.

• Asocierile (interogările JOIN)

Se folosesc pentru combinarea datelor ce provin din două sau mai multe tabele. Se pot distinge maimulte tipuri de joncţiuni: CROSS (încrucişată) ce realizează combinarea înregistrărilor de maniera“fiecare cu fiecare”, ECHIVALENTĂ (echijoncţiune) presupune selectarea numai a înregistrărilor 

24

Page 25: Curs III.1.2-Baze de Date

8/8/2019 Curs III.1.2-Baze de Date

http://slidepdf.com/reader/full/curs-iii12-baze-de-date 25/30

 RCCC-RETEA DE CENTRE CIBERNETICE COMUNITARE 

 ________________________________________________________________________________________________ 

ce satisfac un criteriu de egalitate (se foloseşte clauza WHERE cu o expresie de egalitate) sau NEECHIVALENTĂ (non echijoncţiune) ce realizează selectarea înregistrărilor ce nu satisfac orelaţie de egalitate.

Sintaxa generală pentru joncţiunile echivalente şi neechivalente este:

SELECT [domeniu] listă_selecţieFROM nume_tabelă1, nume_tabelă2,…

[WHERE criteriu_de_asociere]ORDER BY câmpuri_de_ordonare [ASC|DESC]];

Exemplu: SELECT cl.nume, cont.suma_existentă*(0.51/12) AS dobanada FROM clienti AS cl,cont_depunere AS cont WHERE cl.cod_client=cont.cod_client ORDER BYcl.cod_client;

Din alt punct de vedere joncţiunile pot fi: interne (INNER JOIN) sau externe (OUTER JOIN). Învarianta joncţiunilor interne rezultatul obţinut este egal cu produsul numărului de înregistrări dinfiecare tabelă. Joncţiunile externe sunt la rândul lor de două tipuri: de stânga (LEFT OUTER JOIN)şi de dreapta (RIGHT OUTER JOIN). Sintaxa pentru astfel de joncţiuni este următoarea:

SELECT [domeniu] listă_selecţieFROM nume_tabelă1

{INNER|LEFT OUTER|RIGHT OUTER} JOIN nume_tabelă2ON criteriu_de asociere1

[{INNER|LEFT OUTER|RIGHT OUTER} JOIN nume_tabelă3ON criteriu_de asociere2]…

[WHERE criteriu_de_selecţie]ORDER BY câmpuri_de_ordonare [ASC|DESC]];

În situaţia asocierii a două tabele pe baza unui câmp comun, funcţie de tipul asocierii în rezultat sevor obţine: înregistrările pentru care câmpul de asociere are aceleaşi valori în ambele tabele pentruINNER JOIN, toate poziţiile din prima tabelă dintre care vor fi completate cu date din cea de-a douatabelă numai cele pentru care condiţia de asociere este satisfăcută în cazul LEFT OUTER JOIN sautoate poziţiile din cea de-a doua tabelă dintre care vor fi completate cu date din prima tabelă numaicele pentru care condiţia de asociere este satisfăcută în cazul RIGHT OUTER JOIN.

• Combinările (interogările UNION)

În SQL Access există posibilitatea de a combina rezultatele mai multor interogări prin combinareaieşirilor acestora folosind clauza UNION. Sintaxa generală este:

SELECT listă_câmpuri1 FROM tabela1UNION SELECT listă_câmpuri2 FROM tabela2

[GROUP BY câmp_de_grupare2][HAVING criteriu_de_agregare2]

UNION SELECT listă_câmpuri3 FROM tabela3

[GROUP BY câmp_de_grupare3][HAVING criteriu_de_agregare3]…[ORDER BY câmp_criteriu_de_sortare];

25

Page 26: Curs III.1.2-Baze de Date

8/8/2019 Curs III.1.2-Baze de Date

http://slidepdf.com/reader/full/curs-iii12-baze-de-date 26/30

Page 27: Curs III.1.2-Baze de Date

8/8/2019 Curs III.1.2-Baze de Date

http://slidepdf.com/reader/full/curs-iii12-baze-de-date 27/30

 RCCC-RETEA DE CENTRE CIBERNETICE COMUNITARE 

 ________________________________________________________________________________________________ 

 Instrucţiunea UPDATE 

Are ca scop modificarea valorii câmpurilor din înregistrările existente.

Sintaxa:UPDATE nume_tabela

SET nume_câmp1=valoare1[,nume_câmp2=valoare2] …

[WHERE criteriu_de_actualizare];

27

Page 28: Curs III.1.2-Baze de Date

8/8/2019 Curs III.1.2-Baze de Date

http://slidepdf.com/reader/full/curs-iii12-baze-de-date 28/30

Page 29: Curs III.1.2-Baze de Date

8/8/2019 Curs III.1.2-Baze de Date

http://slidepdf.com/reader/full/curs-iii12-baze-de-date 29/30

 RCCC-RETEA DE CENTRE CIBERNETICE COMUNITARE 

 ________________________________________________________________________________________________ 

29

Page 30: Curs III.1.2-Baze de Date

8/8/2019 Curs III.1.2-Baze de Date

http://slidepdf.com/reader/full/curs-iii12-baze-de-date 30/30