QReferate - referate pentru educatia ta.
Cercetarile noastre - sursa ta de inspiratie! Te ajutam gratuit, documente cu imagini si grafice. Fiecare document sau comentariu il poti downloada rapid si il poti folosi pentru temele tale de acasa.



AdministratieAlimentatieArta culturaAsistenta socialaAstronomie
BiologieChimieComunicareConstructiiCosmetica
DesenDiverseDreptEconomieEngleza
FilozofieFizicaFrancezaGeografieGermana
InformaticaIstorieLatinaManagementMarketing
MatematicaMecanicaMedicinaPedagogiePsihologie
RomanaStiinte politiceTransporturiTurism
Esti aici: Qreferat » Documente informatica

Sgbd access



SGBD ACCESS



Principalele caracteristici ale SGBD-ului ACCESS sunt:

q  este relational si lucreaza sub sistemul de operare Windows;



q  este deschis comunicarii cu alte Sisteme de Gestiune a Bazelor de Date cum ar fi FoxPro sau Paradox;

q  este compatibil cu tehnologia ActiveX, care permite realizarea aplicatiilor client/server;

q  permite realizarea unor aplicatii complexe prin utilizarea limbajului Visual Basic;

q  permite comunicarea cu SQL Server, un alt produs Microsoft care gestioneaza baze de date;

q  permite accesul la baze de date din reteaua Internet, fiind un instrument util pentru publicarea informatiilor in paginile Web;

q  este autodocumentat prin help, apelabil contextual sau la cerere;

q  contine instrumente wizard care permit utilizatorului crearea intr-o maniera foarte simpla a obiectelor bazei de date;

q  permite crearea de comenzi rapide (shortcuts) in vederea accesarii obiectelor ACCESS;

q  permite crearea de grupuri de obiecte definite de utilizator in cadrul bazei de date;

q  permite personalizarea bazei de date;

q  permite utilizarea obiectelor ACCESS din cadrul altor aplicatii rulate sub sistemul de operare Windows;

q  Se permite publicarea datelor in cadrul unei retele Intranet sau pe Internet prin pagini HTML dinamice;

q  Pe baza facilitatii de compactare, se minimizeaza dimensiunea bazei de date la inchidere;

q  Se permite crearea de aplicatii care sa utilizeze baze de date stocate in SQL Server, in cadrul unei retele de calculatoare.

Arhitectura Microsoft ACCESS

O baza de date ACCESS poate fi definita ca o colectie de obiecte: tabele (table), cereri de interogare (query), formulare (form), rapoarte (report), pagini Web (pages), comenzi macro (macro) si module (module).

Tabela (Table) este un obiect definit de utilizator in care sunt stocate datele primare (expresia modelului relational).

Formularul (Form) este un obiect care permite introducerea datelor, afisarea acestora sau controlul intregii aplicatii.

Interogarea (Query) este un obiect care permite vizualizarea informatiilor obtinute prin prelucrarea datelor din una sau mai multe tabele si/sau alte cereri de interogare.

Raportul (Report) este un obiect care permite formatarea si tiparirea informatiilor obtinute in urma consultarii bazei de date sub forma de documente.

Pagina Web de accesare a datelor (Pages) reprezinta un obiect care include un fisier HTML si alte fisiere suport in vederea furnizarii accesului la date prin intermediul browser-elor Internet.

Comanda Macro (Macro) reprezinta un obiect care contine o definitie structurata a uneia sau mai multor actiuni pe care ACCESS le realizeaza ca raspuns la un anumit eveniment.

Modulul (Module) reprezinta un obiect care contine proceduri definite de utilizator si scrise in limbajul de programare Visual Basic.


Crearea tabelelor


A. Design View Utilizatorul stabileste absolut toti parametrii necesari pentru descrierea structurii unui tabel: numele campurilor, tipurile de date ale acestora, reguli de validare, etc. Fereastra Access de descriere a tabelei este formata din doua zone: zona a in care se definesc campurile din structura tabelei

si zona b in care sunt precizate proprietatile acestora.


Descrierea campurilor

q  Numele campului (Field Name);

Numele unui camp trebuie sa respecte urmatoarele reguli:

Poate sa contina litere (majuscule sau minuscule, sau ambele tipuri), cifre si numeroase caractere speciale;

Poate sa contina maximum 64 de caractere;

Este interzisa utilizarea caracterelor: punct (.), semnul exclamarii (!), parantezele drepte ([]).

Numele campului nu poate sa inceapa cu un spatiu.



q  Tipul de date al campului (Data Type); utilizatorul are la dispozitie noua tipuri de date de baza, pentru unele dintre ele fiind disponibile subtipuri de date, in functie de necesitati; subtipurile se configureaza in zona de jos a ferestrei (sectiunea General);

q  Proprietatile campului (Field Properties)

Tipurile si subtipurile de date Access sunt :


Tip de date

Subtip de date

Descriere

Text


Este un tip de date alfanumeric, de lungime maxima 255. Implicit, Access propune dimensiunea (proprietatea Field Size) 50 pentru un camp de tip Text. Un camp de acest tip poate sa contina practic orice caracter.

Memo


Este un tip de date alfanumeric (poate contine orice caracter), in lungime maxima de 65535 caractere. Utilizatorul nu poate configura o dimensiune mai mica decat aceasta.

Number

(tip de date numeric)

Byte

Tip de date intreg a carui plaja de valori admisa este intre 0 si 255. Spatiul ocupat de un asemenea camp este de 1 byte.

Integer

Tip de date intreg cu plaja de valori admisa intre
-32768 si +32768.
Ocupa 2 bytes.

Long Integer

Tip de date intreg de dimensiuni foarte mari cu plaja de valori admisa intre -2147483648 si +2147483647. Ocupa 4 bytes.

Single

Tip de date cu plaja de valori admisa intre
-3,402823x1038 pana la -1,401298x10-45 pentru numere negative, iar pentru numere pozitive intre

1,401298x10-45 pana la 3,402823x1038. Ocupa 4 bytes si are precizie de 7 zecimale.

Double

Tip de date de dimensiuni foarte mari cu plaja de valori admisa intre -1,79769313486231x10308 pana la -4,94065645841247x10-324 pentru numere negative, iar pentru numere pozitive intre 4,94065645841247x10-324 pana la 1,79769313486231x10308. Ocupa 8 bytes si are precizie de 15 zecimale.

Replication ID

Tip de date GUID (Global unique identifier). Ocupa 16 bytes. Sunt utile pentru campurile care sunt (sau fac parte dintr-o) cheie externa ale caror chei primare sunt de tipul AutoNumber, ReplicationID.

Decimal

Tip de date cu plaja de valori admisa intre
-1028 -1si +1028-1.
Ocupa 12 bytes si precizie (proprietatea Precision) maxima de 28.

Date/Time


Memoreaza date calendaristice, inclusiv ora in formate predefinite. Datele calendaristice admise sunt intre anul 100 si 9999. Formatele de afisare se stabilesc in proprietatea Format. Ocupa 8 bytes.

Currency


Tip de date numeric, care opereaza cu maxim patru zecimale si maxim 15 pozitii in stanga punctului zecimal. Ocupa 8 bytes.

AutoNumber

LongInteger

Tip de date care isi atribuie automat valori, la crearea unei noi inregistrari. Valorile atribuite pot fi secventiale (proprietatea New Values=Increment) sau aleatoare (proprietatea New Values=Random). Campurile de tip AutoNumber, nu pot fi actualizate. Ocupa 4 bytes.

ReplicationID

Tip de date care isi atribuie automat valori de tip GUID. Exemplu de valoare GUID: . Ocupa 16 bytes.

Yes/No


Tip de date logic, care poate lua doar doua valori: adevarat (valoarea -1) sau fals (valoarea 0). Ocupa 1 bit.

OLE Object


Tip de date care poate sa includa imagini, documente WORD, foi de calcul EXCEL, etc. Dimensiunea maxima este de 1 GB, cu conditia sa existe acest spatiu pe disk. Nu poate fi cheie si nici nu poate fi index.

Hyperlink


Sir de caractere, care poate memora o adresa WEB, ce va fi utilizata sub forma de hyperlink. Este formata din trei parti: textul de afisat, adresa si subadresa. Dimensiunea maxima a fiecarei parti este de 2048 caractere.

Lookup Wizard


Campuri ale caror valori vor fi completate automat prin selectia dintr-o lista simpla de valori (List Box) sau dintr-o lista derulanta de valori (Combo Box).

q  Comentarii (Description), este o proprietate optionala, unde utilizatorul poate introduce sub forma de siruri de caractere diverse informatii cu privire la un camp.


In zona b a ferestrei (General si Lookup) se pot stabili valori pentru doua categorii de proprietati:

proprietati pe care le au toate campurile;

proprietati specifice anumitor campuri, in functie de tipul de date.


Proprietati din categoria General:

Field Size - stabileste dimensiunea maxima admisa pentru tipurile de date Number, AutoNumber, Text. Pentru primele doua, valorile maxime admise sunt cele precizate in tabelul anterior, iar pentru tipul Text o valoare intre 0 si 255.

Decimal Places - stabileste numarul de zecimale utilizat pentru afisarea unui numar. Valorile posibile sunt Auto (numarul este afisat cu atatea zecimale cu cate a fost calculat; nu sunt afisate mai mult de 15 zecimale) sau un numar intre 0 si 15. Numarul de zecimale afisat poate fi influentat si din proprietatea Format.


Format - stabileste formatul de afisare al unui camp. Aceste formate se pot defini de utilizator cu ajutorul unor secvente speciale de caractere sau pentru unele tipuri de date exista deja predefinite formate uzuale asa cum rezulta din tabelul alaturat.




Pe langa aceste formate predefinite se mai pot utiliza anumite combinatii speciale de caractere. Pentru campurile numerice formatul de afisare se imparte in patru zone separate prin caracterul ";" :

prima zona se refera la modul de afisare al numerelor pozitive;

a doua zona se refera la modul de afisare al numerelor negative;

a treia zona se refera la modul de afisare al numarului zero;

a patra zona se refera la modul de afisare al valorii Null;

Caracterele ce se pot utiliza intr-un format de afisare al unui camp numeric:

.- separatorul zecimal este punctul;

, - separatorul miilor este virgula;

0 - sunt afisate cifre sau zero;

# - sunt afisate cifre sau spatiu;

$ - este afisat si caracterul $;

% - numarul este inmultit cu 100 si alaturi este afisat caracterul procent (%);

E+, E-, e+, e- stabileste formate de afisare in format stiintific.


Formatele predefinite de afisare pentru campurile de tip Date/Time sunt in tabelul alaturat.

Caractere care se pot utiliza intr-un camp de tip Date/Time:

: - separator pentru timp;


/ - separator pentru data calendaristica;

d - ziua este afisata sub forma de valori de la 1 la 31;

dd - ziua este afisata sub forma de valori de la 01 la 31;

ddd - sunt afisate numai primele trei caractere din numele unei zile;

dddd - este afisat numele complet al unei zile;

w - ziua este afisata ca valoare din saptamana, de la 1 la 7;

ww - este afisat numarul saptamanii in an, de la 1 la 53;

m - este afisat numarul lunii din an, de la 1 la 12;

mm - este afisat numarul lunii din an de la 01 la 12;

mmm - sunt afisate numai primele trei caractere din numele unei luni;

mmmm - este afisat numele complet al lunii;

y - numarul zilei din an;

yy - sunt afisate ultimele doua caractere din an de la 01 la 99;

yyy - anul este afisat complet de la 100 la 9999;

q - data este afisata ca numarul trimestrului din an, de la 1 la 4;

h - ora este afisata prin numere de la 0 la 23;

hh - ora este afisata prin numere de la 00 la 23;

n - minutele sunt afisate prin numere de la 0 la 59;

nn - minutele sunt afisate prin numere de la 00 la 59;

s - secundele sunt afisate prin numere de la 0 la 59;

ss - secundele sunt afisate prin numere de la 00 la 59;

AM/PM sau am/pm sau A/P sau a/p - este afisat AM, am, A sau a pentru primele 12 ore ale zilei si PM, pm, P sau p pentru ultimele 12 ore din zi;


Exemple:

'Data: 'dd/mm/yy' saptamana: 'ww

afiseaza Data: 01/06/01 saptamana: 22

dddd/mmmm/yyyy afiseaza vineri/iunie/2001

'ORA:'hh:nn:ssAM/PM afiseaza ORA:12:00:00AM


Caption - stabileste un sir de caractere care va fi afisat in titlul unei coloane, in momentul introducerii datelor; daca aceasta proprietate nu are nici o valoare, sirul afisat in titlul unei coloane este chiar numele campului; valoarea acestei proprietati nu are nici o influenta asupra numelui campului in utilizarea sa in interogari, VBA, etc.


Default Value - stabileste o valoare implicita care este propusa in momentul in care se introduc date intr-un tabel; se recomanda in cazul in care exista o valoare preponderenta a continutului unui camp;


Input Mask - stabileste un format (masca, sablon) de introducere a datelor pentru un anumit camp. La fel ca in cazul proprietatii Format, exista o serie de caractere prin care se stabileste acest format de introducere a datelor. In cazul in care se utilizeaza ambele proprietati, proprietatea Format are prioritate fata de proprietatea Input Mask.


Validation Rule - defineste o regula de validare pentru un camp, practic o expresie ce se va testa pentru continutul introdus intr-un camp. Regulile de validare se testeaza dupa introducerea unei valori intr-un camp sau in momentul in care se incearca salvarea unei inregistrari (in momentul in care se incearca introducerea unei inregistrari noi, la trecerea de la o inregistrare la alta, sau la salvarea explicita a acesteia) pentru campurile nevizitate de utilizator. Daca o regula de validare a unui camp nu se verifica, inregistrarea nu se poate salva decat daca se corecteaza continutul campului in asa fel incat sa se verifice regula de validare stabilita. Expresia pentru aceasta proprietate se poate scrie si in mod asistat cu ajutorul ferestrei Expression Builder, ce poate fi invocata din butonul .


Numele campurilor dintr-o expresie Validation Rule trebuie scris intre caracterele []. O expresie Validation Rule la nivel de camp nu poate referi alte campuri, decat cel curent. Se pot utiliza functii Access, constante, operatori, etc.

Exemple de reguli de validare pentru un camp de tip Number, Integer:

>100 and <=200 stabileste valorile posibile intre 101 si 200

<>Null sau Is Not Null - campul trebuie sa contina o valoare.

Exemple de reguli de validare pentru un camp de tip Text:

"Calarasi" Or "Bucuresti" Or "Brasov" sau In('Calarasi'; 'Bucuresti'; 'Brasov') - valoarea campului nu poate fi decat una din cele trei.

Mid([nume];1;1)='A' - primul caracter introdus in campul nume nu poate fi decat A sau a.

Exemple de reguli de validare pentru un camp de tip Date/Time:

>=Date() - data introdusa trebuie sa fie mai mare sau egala cu data sistemului.

Year([data factura])=Year(Date()) - anul din campul data factura trebuie sa fie in momentul introducerii, acelasi cu cel din data sistemului.

Validation Text - defineste un mesaj de atentionare care va fi afisat in momentul in care regula de validare definita in proprietatea Validation Rule este incalcata.

Required - poate lua valoarea Yes sau No, corespunzatoare valorilor logice adevarat (True) sau fals (False) si stabileste daca valoarea unui camp este obligatoriu (Yes) de introdus sau nu (No). Pentru campurile de tip Text, Memo, Hyperlink este bine sa se utilizeze aceasta proprietate in stransa legatura cu proprietatea Allow Zero Length.


Allow Zero Length - stabileste daca este permisa introducerea unui sir de lungime zero (Yes) sau nu (No) intr-un camp de tip Text, Memo sau Hyperlink. Variantele de memorare in conditiile utilizarii proprietatilor Required si Allow Zero Length sunt prezentate in tabelul urmator.


Valoarea din proprietatea

Allow zero length

Valoarea din proprietatea

Required

Actiunea utilizatorului

Valoare memorata

No

No

Enter

Null

Bara spatiu

Null

Sir de lungime 0

Nu este permis

No

Yes

Enter

Null

Bara de spatiu

Null

Sir de lungime 0

Nu este permis

Yes

No

Enter

Null

Bara de spatiu

Null

Sir de lungime 0

Sir de lungime 0

No

Yes

Enter

Nu este permis

Bara de spatiu

Nu este permis

Sir de lungime 0

Nu este permis

Yes

No

Enter

Nu este permis

Bara de spatiu

Sir de lungime 0

Sir de lungime 0

Sir de lungime 0



Indexed - stabileste un camp drept index. Valori posibile:

q  No - neindexat

q  Yes (Duplicates OK) - index; sunt permise valori duplicate pe campul index;

q  Yes (No Duplicates) - index; nu sunt permise valori duplicate pe acest camp.


Definirea cheii primare si a indecsilor

Orice tabela trebuie sa posede o cheie primara (Primary Key), adica un camp sau un grup de campuri care identifica in mod unic fiecare inregistrare. Daca utilizatorul nu stabileste o cheie primara, Access stabileste una in mod implicit creand un camp de tip AutoNumber care va contine un numar unic pentru fiecare inregistrare. Desi Access creeaza in mod implicit o cheie primara, urmatoarele ratiuni recomanda utilizatorului sa defineasca o cheie primara:

cheia primara este un index.

indecsii realizeaza o clasificare a datelor dupa unul sau mai multe campuri ceea ce are drept consecinta cresterea vitezei de realizare a interogarilor.

la fiecare adaugare a unei noi inregistrari, Access nu autorizeaza inregistrari duble pentru campul cheie primara.

Microsoft Access afiseaza datele in ordinea cheii primare.


In afara de indecsi pe un singur camp se pot defini si indecsi multipli, care functioneaza pe mai multe campuri simultan. Acestia se pot defini/modifica numai in fereastra Indexes. In aceeasi fereastra se pot gestiona si indecsii pe un singur camp. Fereastra cu indecsii unei tabele (Indexes) se activeaza din meniul View, optiunea Indexes.


Pentru definirea unui index (sau pentru o cheie primara) format din mai multe campuri, se scrie numele indexului in coloana Index Name, iar in coloana Field Name se aleg campurile care formeaza indexul sau cheia primara. Coloana Sort Order indica modul de ordonare al datelor in index. In cazul indecsilor ce includ mai multe campuri, valoarea proprietatii Indexed, pentru fiecare camp in parte este No.


Proprietatile din fereastra Indexes:

Primary - valoarea Yes indica faptul ca indexul este cheie primara;

Unique - valoarea Yes indica faptul ca indexul va avea valori unice, nefiind permise duplicatele; pentru o cheie primara, aceasta proprietate are obligatoriu valoarea Yes.

Ignore Nulls - valoarea Yes indica faptul ca sunt permise valorile Null intr-un index; pentru o cheie primara, aceasta proprietate are obligatoriu valoarea No.


Exemplu: intr-un tabel care va memora facturi, ce are drept cheie primara un camp generic ID de tip AutoNumber, se stabileste un index numit Factura, care este format din campurile Serie Factura si Numar Factura. Proprietatea Unique va avea valoarea Yes pentru acesta deoarece seria impreuna cu numarul unei facturi sunt unice la nivel national. Un alt index se defineste pe campul Data Factura, care nu trebuie sa aiba valori unice.




Pe langa modalitatea descrisa anterior, cheia primara a unui tabel se mai poate defini astfel:

  • Daca este vorba de o cheie formata dintr-un singur camp, se pozitioneaza cursorul in campul respectiv si se actioneaza butonul din bara de instrumente Table Design;
  • Pentru chei primare formate din mai multe campuri, se selecteaza campurile din bordura ferestrei de proiectare si se actioneaza butonul mentionat anterior.

NOTA: O cheie externa nu se defineste explicit nicaieri in Access sub notiunea de cheie externa, ea fiind stabilita prin definirea relatiilor dintre tabele. Pentru cresterea performantelor se recomanda definirea de indecsi pentru fiecare cheie externa.


B. Datasheet View este echivalenta cu actionarea hyperlink-ului Create table by entering data. In aceasta varianta, Access propune o fereastra de introducere date sub forma unui tabel cu nume de campuri generice Field1, Field2.Field10. Inserarea de noi campuri pe langa cele zece propuse implicit, se realizeaza din meniul Insert-Column.

Schimbarea numelor implicite ale coloanelor se realizeaza din meniul Format-Rename Column.In functie de datele introduse in celule, la salvarea tabelului, Access stabileste ce tip de date va aloca fiecarui camp.




B. Table Wizard este echivalenta cu actionarea hyperlink-ului Create table by using wizard. Alegerea acestei variante are ca efect activarea unei ferestre in care se propun diverse modele de tabele cu o mare varietate de campuri, toate denumirile fiind in limba engleza. Pentru un utilizator care doreste crearea unor tabele in limba romana, desi acest instrument wizard prin definitie se doreste a fi de mare ajutor, alegerea sa este total neinspirata. Probabil daca variantele Microsoft Office localizate vor contine si Access in limba romana, atunci acest instrument se va dovedi de un real folos pentru utilizatorii romani.


C. Import Table, permite importul tabelei dintr-o alta aplicatie Access, Oracle, Excel, etc.


D. Link table, permite includere prin atasare (legare) dintr-o alta baza de date


Proprietati ale unui tabel

Pentru a vizualiza fereastra cu proprietati a unui tabel se activeaza optiunea.

Properties din meniul View, sau se actioneaza butonul din bara de instrumente Table Design.

Validation Rule - are aceeasi semnificatie ca proprietatea cu acelasi nume atasata campurilor, numai ca opereaza la nivel de tabel. In momentul in care se incearca salvarea unei inregistrari (in momentul in care se incearca introducerea unei inregistrari noi, la trecerea de la o inregistrare la alta, sau la salvarea explicita a acesteia), daca nu se verifica aceasta regula de validare, nu se va putea salva inregistrarea. Fata de aceeasi proprietate la nivel de camp, la nivel de tabel, se pot referi mai multe campuri ale tabelului in expresia care defineste proprietatea.

Exemplu de regula de validare pentru un tabel care are in componenta intre altele urmatoarele campuri: SimbolCont, soldinitialdebitor, soldinitialcreditor. Regula impune ca un cont sa nu aiba simultan soldul initial debitor sau creditor in acelasi timp.

(Not IsNull([soldinitialdebitor]) Imp [soldinitialcreditor]=0) Or (Not IsNull([soldinitialcreditor]) Imp [soldinitialdebitor]=0)

Validation Text - afiseaza un mesaj in momentul in care regula de validare definita la nivel de tabel, este testata si nu se verifica.

Filter - stabileste un criteriu in functie de care vor fi selectate inregistrarile in fereastra de introducere date. Pentru a activa/dezactiva filtrul trebuie actionat butonul Apply Filter sau din meniul Records, optiunea Apply Filter/Sort respectiv Remove Filter/Sort.


Exemplu: [Data factura]>#1/1/2001# va afisa toate facturile de dupa data 1/1/2001.

Order By - stabileste ordinea de afisare a inregistrarilor, in momentul introducerii datelor. Numele campurilor trebuie precizate intre [].

Exemplu: [Serie factura],[Numar factura].


Definirea relatiilor dintre tabele


In S.G.B.D. Access exista urmatoarele posibilitati de realizare a relatiilor dintre tabele:

Relatia 1-1 (one-to-one sau unu la unu) este cea mai simpla relatie intre doua tabele. In aceasta relatie, unei valori a campului cheie principala dintr-o tabela ii corespunde o singura valoare din campul folosit drept cheie externa din cealalta tabela. Tabelele aflate intr-o relatie one-to-one se pot combina intr-o singura tabela, in care apar toate campurile celor doua tabele. Relatiile de acest tip nu sunt uzuale.

Relatia 1-n (one-to-many sau unul la mai multi) constituie tipul cel mai raspandit de relatii. Conform acestei relatii unei inregistrari din tabela aflata in partea stanga a relatiei ii corespund doua sau mai multe inregistrari din tabela aflata in partea dreapta a relatiei. Asocierea se bazeaza pe un camp cheie principala unic intr-o tabela si un camp cheie externa din cealalta tabela care admite valori duplicate.

Relatia n-1 (many-to-one sau mai multi la unul) este opusa relatiei 1-n. Pentru a crea relatia many-to-one este suficient sa se inverseze relatia one-to-many. De aceea, se spune ca relatia many-to-one este reflexiva, adica relatia many-to-one este reflexia relatiei corespondente one-to-many. Daca se selecteaza o inregistrare din tabela din partea many a relatiei se poate afla inregistrarea care corespunde cheii sale externe din tabela din partea one a relatiei. Relatiile n-1 nu sunt bazate pe campuri cheie primara din nici una dintre cele doua tabele.

Relatia m-n (many-to-many sau multi la mai multi) nu poate fi exprimata ca o simpla relatie intre doua tabele. Relatia many-to-many se poate exprima prin intermediul unei a treia tabele care are relatii one-to-many si many-to-one cu cele doua tabele.


Pe langa stabilirea relatiilor intre tabelele unei baze de date, Access permite si specificarea unor reguli care forteaza integritatea datelor. Aceste reguli se numesc restrictii de integritate referentiala; ele permit sa se conserve intacte relatiile intre tabele intr-un sistem de gestiune a unei baze de date relationale. Capacitatea de a asigura in mod automat integritatea referentiala este o caracteristica importanta a SGBD Access.


Dupa plasarea tuturor tabelelor in panoul de editare, definirea propriu-zisa a unei relatii se realizeaza prin drag-and-drop (selectare si glisare) dinspre cheia primara a unei tabele spre o cheia externa corespunzatoare sau invers.


Optiunile din fereastra Edit Relationships au urmatoarea semnificatie:

Enforce Referential Integrity - defineste o restrictie de integritate referentiala. Nu se permite actualizarea valorii unei chei externe, daca aceasta valoare nu exista deja in tabelul unde aceasta este cheie primara.

Cascade Update Related Fields - actualizarea valorii unei chei primare dintr-un tabel se propaga si in inregistrarile din tabelele unde aceasta este cheie externa.

Cascade Delete Related Fields - stergerea valorii unei chei primare, are ca efect si stergerea inregistrarilor din tabelele unde aceasta este cheie externa.

In caseta Relationship Type sunt prezentate tipurile de legaturi care pot exista intre doua tabele:

One to One - 1-1;

One to Many - 1-n

Daca in aceasta caseta este afisat mesajul Indeterminate, inseamna ca tipul de relatie nu poate fi definit, cea mai probabila eroare fiind incompatibilitatea intre tipul de date al cheii primare si cel al cheii externe, sau inexistenta unei chei primare in relatia respectiva.


Obiecte tip formular

Formularele asigura:

q  Interfata prietenoasa cu utilizatorul final realizata prin intermediul diferitelor controale (butoane, casete text, etc.) sau alte elemente grafice incorporate

q  Actualizarea concomitenta a mai multor tabele prin intermediul subformularelor;

q  Reguli de validare suplimentare celor definite la nivelul tabelelor.

Clasificarea formularelor se poate face in functie de urmatoarele criterii:

a. Dupa sursa de date:

Formulare legate (bound)- permit afisarea sau actualizarea datelor din tabele;

Formulare nelegate (unbound)- destinate afisarii sau editarii unor date care nu sunt stocate in tabele (mesaje, informatii despre sistem, date necesare afisarii unui raport etc.)

b. In functie de modul de afisare, sunt disponibile urmatoarele tipuri de formulare:

Single form- afiseaza, in scopul actualizarii, o singura inregistrare la un moment dat (inregistrarea curenta);

Tabular form- permit vizualizarea concomitenta a mai multor inregistrari (inregistrarea curenta putand fi actualizata)


Formular de tip Single

Formular de tip Tabular

Datasheet form- afiseaza datele in vederea actualizarii intr-un format asemanator foilor de calcul. Deosebirea fundamentala dintre acest tip si formularele Tabular consta in aceea ca formularele Datasheet nu permit decat afisarea controalelor asociate campurilor (nu sunt afisate spre exemplu butoane de comanda, casete de optiuni etc.)

Formular Datasheet

Chart Form - afiseaza date sub forma unor grafice generate cu ajutorul utilitarului Microsoft Graph Chart. Acest tip de formulare nu permit actualizarea datelor afisate.



Formular tip Chart

c. Dupa modul de interactiune  cu alte ferestre:

Formulare modale - nu permit accesarea obiectelor continute in alte ferestre pana cand nu sunt inchise (close) sau ascunse (hide). Se mai numesc si formulare de dialog.

Formulare nemodale - permit activarea/deschiderea altor ferestre


Crearea si modificarea formularelor

Etapele necesare crearii unui formular sunt urmatoarele:

Se actioneaza butonul New din fereastra bazei de date pentru activarea asistentului New Form.

Se opteaza pentru una din variantele:

Design View,Form Wizard, AutoForm: Columnar, AutoForm: Tabular, AutoForm: Datasheet, Chart Wizard sau Pivot Table Wizard - noul formular va ingloba o tabela pivot  generata prin Excel (folosind tehnica OLE).

Se stabileste sursa de date (tabel sau interogare).

Asistentul New Form

Tehnica cea mai utilizata la crearea unui formular este urmatoarea: intr-o prima faza, formularele sunt generate prin Form Wizard sau AutoForm, dupa care sunt deschise in modul Design pentru a fi modificate, astfel incat sa corespunda cat mai bine cerintelor utilizatorului final.

Proiectarea formularelor prin varianta Form Wizard presupune urmatoarele etape (atunci cand sursa de date este o tabela):

Se selecteaza campurile din sursa de date, ce vor fi afisate in formular:

Se alege tipul de formular (Columnar, Tabular etc.):

Se stabileste imaginea de fundal pentru formular (Stone, Standard etc.)

In ultima etapa se defineste titlul formularului, precum si modul in care va fi deschis formularul (pentru executie sau pentru modificare):

Un formular are urmatoarea structura:

a. Bara de titlu contine: meniul sistem, titlul formularului si butoanele de minimizare, restaurare, inchidere.

b. Bordura defineste chenarul ce va delimita formularul pe ecran.

c. Barele de defilare verticala si orizontala.

d. Antetul formularului (Form Header) este folosit, de regula, pentru a afisa titlul formularului.

Elementele unui formular

Pentru ca aceasta zona sa fie disponibila in timpul proiectarii, se selecteaza optiunea View-FormHeader/Footer, din meniul Access.

e. Antetul de pagina (Page Header) - este o zona ce apare numai cand formularul este tiparit la imprimanta. Pentru a fi disponibila in cursul proiectarii, se selecteaza optiunea View-PageHeader/Footer din meniul Access.

f. Sectiunea de detaliu (Detail) - va contine toate controalele necesare afisarii/editarii inregistrarilor. In timpul executiei, formularul poate contine in aceasta zona un control numit selector de inregistrare (record selector) situat in marginea din stanga a formularului. Acest control permite:

afisarea starii inregistrarii curente (in curs de editare, inregistrare noua, inregistrare blocata etc.)

selectarea inregistrarii curente in vederea stergerii sau copierii acesteia.

g. Subsolul de pagina (Page Footer) - este afisat numai la tiparirea formularului si poate contine data curenta, numarul de pagina etc.

h. Subsolul formularului (Form Footer) - are aceleasi caracteristici cu zona de antet si poate sa contina, spre exemplu, totalul general sau diverse alte controale (butoane pentru salvare, adaugare, stergere de inregistrari etc).


Structura unui formular la executie

i. Butoane de navigare - sunt afisate numai in timpul executiei formularului si pot fi folosite pentru deplasari in cadrul inregistrarilor.

Proprietatile obiectelor Forms

Proprietatile formularelor pot fi accesate fie prin intermediul ferestrei Properties (activata prin optiunea View-Properties, din meniul Access), fie prin intermediul obiectelor de tip macro sau limbajul VBA. Metodele pot fi accesate (atat la proiectare, cat si in cursul executiei) numai prin actiuni macro sau din cadrul unor proceduri/functii VBA.

In cadrul ferestrei Properties, proprietatile formularului curent sunt impartite in patru categorii:

Format - contine atribute privitoare la dimensiune, aspect, coordonatele de afisare ale formularului etc.;

Data - grupeaza proprietati referitoare la sursa de date si inregistrarile aferente;

Event - contine evenimentele ce pot fi tratate fie prin proceduri sau functii scrise in limbajul VBA, fie prin macro-uri. Proprietatile acestei categorii se numesc proprietati eveniment si au denumiri asemanatoare cu cele ale evenimentelor carora le sunt atasate.

Other - contine diverse alte proprietati.

Build Wizard

 

Posibilitati de selectie a formularului

Fereastra Properties

Pentru ca fereastra Properties sa afiseze proprietatile formularului, acesta trebuie in prealabil selectat fie prin optiunea Edit->Select Form din meniul Access, fie printr-un clic pe caseta de selectie a formularului (View->Ruler) sau pe zona din afara acestuia.

Cele mai uzuale proprietati sunt:

1. Din categoria Format:

Caption - contine titlul formularului ce va aparea in bara de titlu a acestuia;

Default View - specifica modul implicit de afisare, folosit la executia formularului (Single Form, Tabular Form, Datasheet);

Scroll Bars - seteaza barele de defilare vizibile in cursul executiei (bara orizontala, bara verticala, amandoua sau nici una);

Record Selectors - afiseaza sau nu selectorul de inregistrare in timpul executiei formularului;

Navigation Buttons - specifica daca formularul va contine butoanele de navigare in cursul executiei sale;

Border Style - specifica tipul bordurii. Setarea acestei proprietati va avea efect si asupra comportamentului formularului:

None - formular fara bordura (formularul nu va putea fi redimensionat la executie);

Thin - bordura subtire (formularul nu va putea fi redimensionat);

Sizable- bordura implicita (formularul poate fi redimensionat);

Dialog - bordura subtire (formularul nu poate fi redimensionat iar bara de titlu va contine doar butonul pentru inchidere Close obtinandu-se astfel un formular de tip Dialog Box).

Control Box - indica prezenta meniului sistem in bara de titlu;

Min Max Buttons - dezactiveaza sau activeaza fie ambele, fie unul din butoanele de minimizare si maximizare din bara de titlu;

Close Button - indica prezenta butonului de inchidere (Close) in bara de titlu;

2. Din categoria Data:

Record Source - contine sursa de date a formularului (tabel sau interogare). Aceasta proprietate poate contine chiar si o comanda SQL (sunt admise numai cererile de selectie).

Nota: Un formular va avea ca sursa de date o interogare daca:

afiseaza in format Datasheet sau Tabular, controale nelegate;

afiseaza campuri din mai multe tabele.

Filter - contine criteriul de selectie care se va aplica inregistrarilor din formular. Conditia de filtrare este o clauza SQL WHERE, insa fara sa contina cuvantul WHERE.

Nota: Pentru ca filtrul sa fie activ, proprietatea FilterOn trebuie setata pe valoarea True (setare ce se poate face numai din VBA).

Order By - permite specificarea campurilor dupa care vor fi sortate inregistrarile din formular. Sintaxa este identica cu sintaxa clauzei SQL - OrderBy.

Nota: Pentru ca operatia de ordonare sa se execute automat la deschiderea formularului, proprietatea OrderByOn trebuie setata pe True (proprietatea este disponibila numai din VBA !).

Data Entry - daca este setata pe valoarea Yes, formularul nu va afisa, la deschidere, inregistrarile existente. Proprietatea este utila pentru formularele ce vor permite numai adaugarea de inregsitrari.

Record Locks - specifica daca si ce inregistrari vor fi blocate pentru alti utilizatori (blocarea se poate face fie pentru toate inregistrarile, fie numai pentru inregistrarea curenta).

3. Proprietati din categoria Event: contin denumiri de functii, proceduri eveniment sau macro-uri ce vor fi executate la aparitia evenimentelor respective. Apar astfel trei posibilitati:

Posibilitati de tratare a evenimentelor

a) eveniment tratat printr-o functie - proprietatea eveniment va contine o expresie de forma

=NumeFunctie([ListaParametrii])

Exemplu: Functia ActualizeazaContor (definita intr-un modul) poate fi atasata proprietatii On Current, in vederea afisarii inregistrarii curente (atunci cand formularul nu contine butoanele de navigare):

Function ActualizeazaContor(Frm As Form, Ctrl As TextBox)


Ctrl.Value = Frm.CurrentRecord ' Seteaza valoarea controlului


End Function

b) eveniment tratat printr-o procedura eveniment - proprietatea eveniment va contine expresia EventProcedure, iar editarea procedurii se poate face prin actionarea butonului BuildWizard, la invocarea caruia Access deschide editorul de module, in care genereaza o procedura vida sub forma:

Private Sub Form_numeEveniment ([ListaParametriiFormali])


End Sub

Intre cele doua linii, utilizatorul poate insera propriile instructiuni.

c) eveniment tratat printr-un macro: proprietatea eveniment va contine numele macro-ului.

Nota: In momentul aparitiei lor, anumite evenimente pot fi abandonate. Acest lucru este posibil din cadrul:

Procedurilor eveniment, prin atribuirea valorii 1 (True) parametrului Cancel (daca acesta exista in lista de parametrii a procedurii eveniment);

Functiilor utilizator, prin apelarea metodei CancelEvent a obiectului DoCmd (vezi capitolul destinat VBA);

Macro-lor, prin actiunea CancelEvent (vezi capitolul Obiecte de tip macro)


Controale in formulare

Controalele sunt obiecte grafice (elemente vizuale) ce sunt incluse in formulare sau rapoarte, in scopul editarii/afisarii datelor sau executarii unor actiuni (ex.: etichete, casete text, butoane, etc.). Adaugarea controalelor se poate face numai in etapele de creare sau modificare a formularelor, astfel:

a)  Din fereastra Toolbox se selecteaza butonul aferent controlului dorit;

b) Se descrie, cu ajutorul mouse-lui, o zona dreptunghiulara pe suprafata formularului, definind astfel pozitia si dimensiunea noului control.


Principalele controalele disponibile in fereastra Toolbox sunt :

Buton

Control

Descriere



Indicator

(Select Objects)

Instrument folosit la proiectarea controalelor (selectie, repozitionare, redimensionare, etc.)

Asistenti

(Control Wizards)

Activeaza/dezactiveaza utilitarele Wizards folosite la generarea unor controale mai complexe (casete combinate, casete lista, grupuri de optiune, etc.)

Eticheta

(Label)

Control cu continut fix, folosit pentru afisarea unor mesaje. In general, Access genereaza cate o eticheta pentru majoritatea controalelor definite de utilizator.

Caseta text

(Text Box)

Control utilizat pentru afisarea si editarea datelor.

Butonul de comanda

(Command Button)

Serveste la declansarea unor actiuni:

Caseta lista

(List Box)

Permite selectarea unei valori dintr-o lista.

Caseta combinata

(Combo Box)

Imbina proprietatile unei casete text cu cele ale unei casete de tip lista (permite atat editarea unei valori, cat si selectarea acesteia dintr-o lista derulanta). Caseta combinata este un control ce se foloseste frecvent pentru actualizarea cheilor externe.

Butonul-comutator (Toggle Button),

Butonul de optiune

(Option Button),

Caseta de validare

(Check Box)

Sunt controale folosite pentru editarea unor valori de tip logic (Yes/No, On/Off, True/False).

Grupul de optiune

(Option Group)

Este un control container folosit pentru afisarea unui set de alternative si poate grupa mai multe tipuri de controale (buton de optiune, caseta de validare etc.)

Delimitator de pagina

(Page Break)

Controlul Page Break imparte formularul in mai multe pagini care pot fi vizualizate cu ajutorul tastelor <PageUp> si <PageDown>. Poate fi, de asemenea, folosit pentru salt la pagina noua, in cazul tiparirii formularului.

Index

(Control Tab)

Controlul de tip Tab este un control container ce permite gruparea altor controale in mai multe pagini, atunci cand formularul contine un numar prea mare de controale.

Dreptunghi

(Rectangle)

Linie

(Line)


Controalele servesc la trasarea diverselor figuri geometrice.

Imagine

(Image)

Permite afisarea continutului unor fisiere grafice (.bmp, .gif, .wmf, .pcx, etc.), pe fundalul formularului.




Obiect cadru nelegat

(Unbound Object

Frame)

Este un control ce va contine un obiect (grafic, multimedia, document etc.), importat dintr-o alta aplicatie Windows (Word, Excel, Paint, Sound Recorder etc.) prin tehnologia OLE (Object Linking and Embedding).

Obiect cadru legat

(Bound Object Frame)

Contine un obiect stocat intr-un camp de tip OLE din tabela sursa.


Subformular

(Subform)

Permite definirea unui subformular in cadrul formularului curent.


Alte controale

(More Controls)

Afiseaza alte controale inregistrate, ce pot fi atasate formularului (controale ActiveX etc.)

Un control selectat poate fi mutat, redimensionat si sters. Pozitionarea unui control selectat se poate face fie folosind combinatiile de taste <CTRL> + fie cu ajutorul mouse-lui. In acest ultim caz, pointer-ul mouse-lui trebuie deplasat pe marginea controlului pana cand va lua forma , dupa care, folosind tehnica drag-drop, obiectul poate fi mutat dupa voie. in mod similar, pentru a muta un singur control dintr-un grup de controale selectate, mouse-ul trebuie pozitionat pe punctul de mutare, pana cand pointer-ul va lua forma , dupa care controlul poate fi mutat folosind aceeasi tehnica drag-drop.

Modificarea dimensiunii unui control selectat poate fi realizata fie prin folosirea tastei <SHIFT> in combinatie cu una din tastele de directionare ( , fie cu ajutorul mouse-lui. Stergerea controlului selectat se face cu ajutorul tastei <Delete> sau prin selectarea optiunii Edit /Delete din meniul sistem.


Proprietatile controalelor

Proprietatile unui control sunt afisate in fereastra Properties, atunci cand controlul respectiv este selectat. Ca si in cazul formularelor, metodele aferente controalelor sunt grupate in patru categorii (Format, Data, Events, Other) si sunt disponibile numai prin intermediul macro-urilor sau modulelor VBA.

Cele mai uzuale proprietati sunt:

1. Proprietati din categoria Format:

Caption - contine textul afisat de control (numai pentru controalele needitabile: etichete, butoane etc.);

Visible - determina afisarea sau nu a controlului in timpul executiei formularului;

Fore Color - culoarea textului afisat de control;

Font Name - tipul fontului aferent textului din control;

Font Size - dimensiunea fontului;

Picture - specifica numele si calea fisierului grafic ce va fi afisat in interiorul controlului (numai pentru butoane si controale de tip imagine);

Text Align - stabileste modul de aliniere a textului in interiorul controlului.

2. Proprietati din categoria Data:

Control Source - contine sursa de date a controlului si poate fi:

Numele unui camp (pentru controale legate);

O expresie de calcul precedata de semnul '=' (pentru casete text nelegate).

Exemplu: o caseta text ce va afisa valoarea unui material contractat, pe baza pretului si a cantitatii contractate, va contine in proprietatea control source expresia:

=[Cantitate] *[Pret]

unde [Cantitate] si [Pret] sunt denumirile a doua campuri (sau controale) din formular;

Input Mask- indica formatul folosit la introducerea datelor (numai pentru casete text)

Default value, Validation Rule, Validation Text, ca si la tabele;

Enabled - activeaza sau dezactiveaza controlul. Un control dezactivat va fi inaccesibil la executia formularului;

Locked - serveste la protejarea datelor afisate de control (controlul va deveni read-only).

Rolul subformularelor este de a actualiza mai multe tabele prin intermediul unei singure ferestre (formular). Subformularele sunt create in general pentru anumite tabele dependente (tabele in care campul comun este cheie externa), din cadrul unei relatii de tip 1-n.

Definirea unui subformular presupune inglobarea (includerea) unui formular in cadrul altui formular, primul devenind subformular, iar al doilea formular principal.

Avantajele oferite de utilizarea subformularelor constau in:

Posibilitatea actualizarii mai multor tabele printr-un singur formular.

Sincronizarea automata a subformularului cu formularul principal, operatie care consta in:

actualizarea automata a campului cheie externa din subformular, cu valoarea detinuta de campul cheie primara din formularul principal;

filtrarea automata a inregistrarilor din subformular, in functie de valoarea cheii primare din formularul principal.

Pentru definirea unui subformular se procedeaza astfel:

Se deschide in modul Design, formularul ce se doreste a fi formular principal;

Se activeaza fereastra bazei de date;

Folosind tehnica drag&drop, se 'depune' formularul, ce se doreste a fi subformular, in interiorul formularului principal;

Se salveaza formularul principal.

Orice modificare facuta ulterior asupra subformularului, ca obiect de tip formular, se va reflecta automat si in formularul principal.

Sincronizarea formular-subformular se realizeaza prin intermediul campurilor de legatura: cheia primara din sursa de date aferenta formularului principal si cheia externa din sursa de date aferenta subformularului. Denumirile acestor campuri sunt inscrise automat de Access in proprietatile Link Master Field si Link Child Field ale controlului de tip subform din formularul principal.


Interogarea BD


O cerere de interogare Access poate fi utilizata pentru:

q  regasirea si ordonarea datelor dupa anumite criterii;

q  efectuarea de calcule;

q  actualizarea bazei de date (prin cereri de tip actiune);

q  pregatirea datelor in vederea afisarii lor in formulare sau rapoarte;

Tipuri de interogari


q  Interogari de selectie care permit extragerea de date din una sau mai multe tabele si/sau cereri precum si efectuarea de calcule;

q  Interogari de analiza incrucisata care permit sintetizarea datelor si a rezultatelor obtinute din calcule, sub forma unei foi de calcul tabelar;

q  Interogari tip actiune cu functia de creare de noi tabele si de actualizare a bazei de date;



Pentru crearea unei cereri de selectie se alege optiunea Design View din caseta New Query.

Caseta Show Table ofera posibilitatea precizarii sursei de date pentru construirea cererii.




Sursa de date pentru o cerere (Query) poate fi reprezentata de:

q  una sau mai multe tabele;

q  una sau mai multe interogari;

q  tabele si interogari.

Se vor selecta tabela/tabelele si/sau cererile sursa si se va actiona butonul Add pentru a realiza aducerea acestora in fereastra de proiectare a cererii.


Fereastra Select Query


Fereastra Select Query este impartita in doua zone:

q  Zona superioara, in care se vizualizeaza tabelele/interogarile sursa de date precum si relatiile definite intre acestea;

q  Grila Query Design structurata astfel:

Linia Field: rezervata pentru definirea numelui atributului selectat;

Linia Table: destinata precizarii sursei de date;

Linia Sort: permite precizarea sensului sortarii pentru atributul din coloana respectiva;

Linia Show: permite inhibarea afisarii realizarilor campului respectiv;

Linia Criteria: ofera posibilitatea precizarii criteriilor de selectie prin introducerea expresiilor Access corespunzatoare;

Liniile Or: permite precizarea mai multor criterii de selectie in cazul expresiilor Access utilizand operatorul OR.


In privinta cererilor de selectie care au ca sursa mai multe tabele trebuie precizat ca, in mod implicit, Access utilizeaza operatia de echicompunere, fapt ce conduce la selectarea inregistrarilor ce au corespondent in ambele tabele (interogari de tip Inner Join).

De exemplu, daca se realizeaza o cerere asupra tabelelor Produse si Continut Comanda, fara a se specifica vreun criteriu, in lista rezultatelor nu vor figura decat produsele pentru care s-a efectuat cel putin o comanda. Daca se doreste realizarea unei interogari de tip Outer Join (folosind operatia de compunere externa) se va efectua dublu click asupra liniei de legatura dintre tabele si, in caseta Join Properties
se poate preciza selectarea tuturor inregistrarilor din una dintre tabele, indiferent daca au sau nu corespondent in cealalta tabela.

Pentru realizarea operatiei de compunere pe baza unei relatii de inegalitate (<, >, <>) a


campurilor de legatura dintre tabele se poate folosi limbajul SQL. O cerere ce are ca sursa doua tabele intre care nu exista nici o relatie va avea ca rezultat produsul cartezian al inregistrarilor din cele doua tabele.


Executarea interogarii de actiune se poate realiza in unul din urmatoarele moduri:

Utilizand butonul Query View (primul in bara de instrumente);

Utilizand butonul Run din bara de instrumente;

Utilizand optiunea Datasheet din meniul View;

Utilizand optiunea Run din meniul Query.


Campuri calculate in interogari de selectie

Interogarile de selectie pot cuprinde si campuri calculate. Aceste campuri returneaza, la executarea interogarii, valoarea expresiilor Access asociate lor.


Pentru a adauga un camp calculat intr-o interogare se tasteaza numele acestuia intr-o noua coloana din grila Query Design, se adauga doua puncte: si apoi se completeaza expresia dorita.

Operatorii utilizati in construirea expresiilor Access se pot clasifica astfel:

Aritmetici +, - , * , / , Mod (returneaza restul impartirii la un intreg), ^ (ridicare la putere).

De atribuire si comparare =, <, >, <=, >=, < >.

Acesti operatori returneaza valorile logice True si False. Exceptie reprezinta cazul in care unul dintre operatori are valoarea Null si deci orice comparare va returna valoarea Null.

Logici: And, Or, Not. Se pot utiliza pentru construirea expresiilor Access compuse.

De concatenare a sirurilor de caractere: +, &.

De identificare: ! si . (punct). Aceste doua caractere sunt utilizate ca separatori, astfel:

o  Combina numele colectiior de obiecte si numele obiectelor pentru a selecta un anumit obiect sau proprietate a lui:
Ex Forms![Clienti]

o  Identifica atribute apartinand unei tabele:
Ex Clienti![Localitate]

o   Deosebeste numele obiectelor de cele ale proprietatilor:
Ex:
TextBox1.FontSize=12 unde: TextBox reprezinta un obiect de control
FontSize reprezinta o proprietate (stabileste dimensiunea fontului)

Alti operatori: IS, LIKE, IN, BETWEEN


Parametrizarea interogarilor


O astfel de interogare se caracterizeaza prin faptul ca in grila Design, pe coloana dorita, in linia Criteria, se va preciza intre paranteze drepte un mesaj ce urmeaza a fi afisat la executarea cererii permitand ca utilizatorul sa introduca criteriul de selectie dorit. Parametrii pot fi utilizati nu doar in randul de criterii, ci si in formulele campurilor calculate, daca se doreste introducerea unui termen variabil in expresii. Exemplul din figura urmatoare prezinta o cerere care va solicita utilizatorului numarul comenzii ce se doreste a fi afisata si procentul ce va fi folosit pentru a calcula campul Reducere.

Interogari de sintetizare a datelor


Pe langa posibilitatea de a utiliza expresii pentru a adauga campuri calculate in interogari, Access permite utilizatorilor realizarea unor cereri prin intermediul carora se pot aplica functii unor inregistrari grupate dupa criterii prestabilite. Prin intermediul acestor query cu rol de sintetizare a datelor se pot construi cu usurinta cereri care sa returneze totalul, media, minimul sau maximul unor grupuri de tupluri.

Pentru a realiza o cerere de sintetizare a datelor se va elabora interogarea de selectie aducandu-se in grila Query Design campurile necesare si adaugandu-se eventualele campuri calculate, dupa care se va apasa butonul Totals  din bara de instrumente. Ca rezultat al acestei operatii, in grila Query Design, va fi disponibil un nou rand intitulat Total. In mod implicit, gruparea datelor dupa valorile campului toate coloanele vor avea selectata


in linia total optiunea Group By care conduce la respectiv[1]. Se va pastra optiunea Group By in dreptul campurilor de grupare, urmand ca pentru celelalte campuri sa fie selectata din lista de selectie functia dorita

Lista contine noua functii de tip agregat ce sunt prezentate in tabelul urmator:

Functia

Returneaza

Tipul de campuri pentru care se poate aplica

AVG

Media aritmetica

Number, Date, Currency, AutoNumber

COUNT

Numarul total de valori

Toate tipurile

FIRST

Prima valoare

Toate tipurile

LAST

Ultima valoare

Toate tipurile

MAX

Valoarea maxima

Text, Number, Date, Currency, AutoNumber

MIN

Valoarea minima

Text, Number, Date, Currency, AutoNumber

STDEV

Deviatia standar a valorilor

Number, Date, Currency, AutoNumber

SUM

Suma valorilor

Number, Date, Currency, AutoNumber

VAR

Varianta valorilor

Number, Date, Currency, AutoNumber


Pe langa aceste functii mai sunt disponibile optiunile WHERE si EXPRESSION.

q  Optiunea Where se va utiliza daca un camp trebuie utilizat pentru a preciza anumite criterii de selectie, dar nu se doreste efectuarea gruparii dupa campul respectiv.

q  Optiunea Expression se va utiliza pentru campurile calculate ce returneaza un singur rezultat la nivelul grupului.

Interogari de analiza incrucisata


Interogarile de tip tabel incrucisat (CrossTab Query) sunt extrem de utile in scopul analizei multidimensionale a datelor permitand obtinerea unor situatii sintetice asemanatoare tabelelor pivot consacrate de procesoarele de tabele (Microsoft Excel, Lotus 123, etc.).

Practic, este posibila elaborarea unor tabele in care gruparea si ordonarea datelor se realizeaza atat pe linii cat si pe coloane la intersectia carora se pot efectua calcule complexe.

Etapele ce trebuie urmate pentru realizarea unei astfel de cereri de interogare sunt urmatoarele[3]

Elaborarea unei interogari de selectie in modul Design View. Se vor alege tabelele ce contine datele si se vor selecta campurile dorite pentru afisare si eventualele campuri pentru care se vor impune restrictii.

Din meniul Query se va selecta optiunea CrossTab Query ce va avea ca efect imediat afisarea liniilor Total si Crosstab in grila interogarii.

Se va specifica modul de agregare a datelor, respectiv functiile totalizatoare in linia Total.

In linia CrossTab se va opta pentru Row Heading in cazul campurile ce vor fi afisate pe liniile tabelului, Column Heading pentru campul ce va fi afisat pe verticala, si Value pentru valorile ce vor fi afisate la intersectia liniilor cu coloanele. Este permisa existenta mai multor campuri ordonate pe orizontala (Row Heading), dar a unui singur camp Column Heading si a unui singur camp Value.

Exemplu urmator prezinta modul de obtinere a unei situatii ce afiseaza valoarea vanzarilor realizate de firma de la inceputul anului din fiecare produs in fiecare localitate


Interogari tip actiune


Extrem de utile in exploatarea bazei de date acestea pot avea ca rezultat:

q  Crearea de noi tabele (Make Table Query)

q  Actualizarea datelor (Update Query)

q  Adaugarea de noi inregistrari (Append Query)

q  Stergerea inregistrarilor (Delete Query)

Modul de elaborare a unei interogari tip actiune este similar celui prezentat in cazul interogarilor de selectie, presupunand ca etapa suplimentara specificarea explicita prin intermediul meniului Query a tipului de cerere dorit.

Modificarile asupra bazei de date sunt efectuate doar in momentul executiei interogarii care se poate realiza prin apasarea butonului din bara de instrumente Query Design sau prin deschiderea interogarii in fereastra Database

Este recomandata proiectarea in prealabil a cererii ca o simpla interogare de selectie si verificarea rezultatelor ce vor fi afectate deoarece nu exista posibilitatea revenirii in cazul stergerii sau modificarii eronate a inregistrarilor

Interogari pentru crearea de noi tabele

Crearea de noi tabele pe baza inregistrarilor din tabelele deja existente este extrem de facila presupunand parcurgerea urmatoarelor etape:

Elaborarea unei interogari de selectie in modul Design View (vor fi luate in calcul doar campurile ce dorim sa faca parte din structura noii tabele, iar, in cazul in care sunt necesare si alte campuri pentru aplicarea unor criterii, acestea nu vor fi marcate in linia Show a grilei QBE).

Apelarea din meniul Query a optiunii Make Table Query si specificarea in caseta Make Table a numelui noii tabele (se poate opta pentru crearea noii tabele intr-o alta baza de date bifand optiunea Another Database si specificand numele fisierului).

Lansarea in executie a interogarii.

Trebuie mentionat ca tabela rezultata va mosteni doar tipurile de date si dimensiunile campurilor din tabelele sursa, nu si cheia primara sau eventualele proprietati la nivel de camp ori tabela.


Interogari pentru actualizarea datelor

Acest tip de interogari permit modificarea valorilor datelor din unul sau mai multe campuri ale inregistrarilor ce satisfac restrictiile impuse de utilizator.

Pentru a realiza o interogare de tip Update este necesara selectarea in modul Design View a campurilor ce vor fi actualizate si, eventual, a celor ce fac obiectul restrictiilor, dupa care se va apela din meniul Query optiunea Update Query. Ca rezultat al acestei operatii in grila QBE va fi disponibila linia Update To in care se va putea completa formula de calcul sau valoarea dorita pentru actualizare.


Interogari pentru adaugarea de inregistrari

Interogarile pentru adaugare ofera utilizatorilor posibilitatea inserarii de noi inregistrari in tabelele pornind de la inregistrarile existente.

Pentru a realiza o interogare de tip Append este necesara parcurgerea urmatoarelor etape:

Elaborarea unei interogari de selectie in modul Design View. Se va alege tabela ce contine datele si vor fi luate in calcul doar campurile ce contin valorile ce vor fi adaugate, iar, in cazul in care se doreste aplicarea unor criterii de selectie a acestora, se vor adauga campurile de restrictionat.

Se vor tasta eventualele conditii in linia de criterii a interogarii.

Din meniul Query se va selecta optiunea Append Query ce va conduce la afisarea casetei Append in care se va selecta numele tabelei in care dorim adaugarea.

Transformarea interogarii de selectie intr-o interogare de adaugare are ca efect imediat aparitia randului Append To in fereastra de proiectare a interogarii. In acest rand se va specifica pentru fiecare camp din tabela ce contine datele denumirea campului corspondent din tabela unde vor fi adaugate.


Interogari pentru stergerea de inregistrari

Interogarile actiune de tip Delete ofera posibilitatea eliminarii mai multor inregistrari din tabele pe baza unor criterii impuse de utilizator. Actiunea interogarilor de stergere acompaniata de optiunea de stergere in cascada configurata in fereastra Relationships poate conduce la stergerea simultana a datelor din mai multe tabele.

Pentru a realiza o interogare de stergere se elaboreaza in mod normal o cerere selectandu-se campurile dorite si impunandu-se restrictiile necesare dupa care se apeleaza din meniul Query optiunea Delete.

OBIECTE TIP RAPORT


Generarea rapoartelor cu instrumentul Wizard

Rapoartele (situatii finale) au aceiasi tehnologie ca si formularele.

Etapele definirii asistate a structurii unui raport sunt urmatoarele:

1. Alegerea variantei Report Wizard din fereastra New Report.

Alegerea, din lista derulanta a tabelei ori interogarii, stabilite drept sursa de date a raportului .

Crearea asistata a unui raport, pe baza interogarii Stocuri

Lista simpla Available Fields contine toate campurile create in interogarea Stocuri, aleasa drept sursa de date, iar cea intitulata Selected Fields afiseaza campurile selectate, dintre cele disponibile, pentru a defini structura raportului.



Stabilirea criteriilor de grupare a datelor

Gruparea datelor inseamna cautarea tuturor inregistrarilor (randurilor) din sursa de date care contin aceeasi valoare pentru campul stabilit drept criteriu de grupare si afisarea lor, consecutiv, in raport.

Datele vor fi grupate dupa depozit, in cadrul acestuia, dupa data, iar pe fiecare luna, toate intrarile in stoc vor fi grupate dupa material. Selectarea/deselectarea unui criteriu de grupare se realizeaza cu dublu clic pe acesta sau cu clic pe campul ales drept criteriu si apoi activarea butoanelor / . Pentru precizarea faptului ca gruparea se face dupa luna din fiecare data de stocare, s-a deschis fereastra Grouping Intervals, in care, dupa cum se observa, pe linia , s-a precizat Month.   Se va obtine, prin urmare, o situatie a stocurilor, pe depozite, pe luna si pe fiecare material stocat.

Se stabilesc campurile in functie de valorile carora datele din raport vor fi ordonate (sortate), precum si cele pentru care se vor executa operatii de sinteza (cu butonul

Stabilirea criteriilor de sortare a datelor

Se va executa operatiunea de insumare pentru campul Valoare, pe fiecare material, pe luna si pe fiecare depozit, apoi pe toate depozitele.



Prezentarea datelor in raport , precum si dispunerea () verticala ori orizontala a structurii raportului pe coala de imprimare.

Alegerea stilului (aldin, centrat, italic, incadrat ori nu, etc.) in care sunt afisate fiecare categorie de informatie



Ultima etapa presupune stabilirea titlului raportului. Daca utilizatorul doreste sa faca unele mici modificari privind structura raportului astfel creat, inainte de a activa butonul , se selecteaza optiunea "Modify the report's design".


Crearea obiectelor de tip raport folosind optiunea Design View

1. Selectarea butonului Reports, New, Design View.

2. Alegerea, din lista derulanta Choose the table or query where the object's data comes from:, a numelui tabelei, ori interogarii, stabilite drept sursa de date a raportului (in exemplul dat, interogarea Stocuri).

In momentul deschiderii, fereastra de definire a raportului prezinta doar trei sectiuni

Meniul contextual al raportului

(asemanatoare celor din formulare): Page Header/Footer si Detail. Pentru crearea unui titlu al raportului (antet) si pentru definirea sfarsitului de raport (de regula, linii de total general), se utilizeaza meniul View, optiunea , sau aceeasi optiune din meniul contextual (clic buton dreapta mouse pe suprafata alba de lucru) al raportului. Cu un control de tip eticheta, , se defineste titlul raportului si se formateaza (se stabilesc culori pentru fond, font si linia de incadrare, precum si tipul acesteia, cu butoanele , , , , din bara de meniuri).

Daca una dintre sectiuni se considera inutila, atunci se reduce la zero largimea acesteia. Alaturat se observa renuntarea la sectiunea Page Footer, cu ajutorul mouse-ului, care are

cursorul sub forma unei sageti bidirectionale in cruce. Linia neagra orizontala indica distanta de la Report Footer cu care s-a micsorat sectiunea Page Footer.

Gruparea datelor si/sau sortarea lor se realizeaza fie cu meniul View, optiunea , fie cu aceeasi optiune din meniul contextual.

S-a optat pentru extragerea lunii din data stocarii materialelor si constituirea ei drept al treilea criteriu de grupare si de sortare in ordine invers cronologica (Descending). Daca se doreste numai sortare in functie de valorile unui anumit camp, nu si grupare, atunci in rubricile Group Header, Group Footer se lasa valoarea No.


Fereastra de definire a criteriilor de sortare si grupare a datelor dintr-un raport

In fiecare antet si subsol creat se definesc etichete, casete text, etc. cu datele care intereseaza

In sectiunea Detail se aduc campurile care se vor afisa in raport pentru a caracteriza fiecare intrare de material. Lista de campuri, daca n-a fost afisata automat, se poate vizualiza activand fie meniul View, optiunea , fie butonul din bara de meniuri Report Design. Expresiile de calcul se definesc cu ajutorul unor casete text, in care se vor scrie formulele, precedate de semnul "=".

Fereastra de definire a structurii raportului

Se poate observa ca pentru a extrage luna din cadrul datei de stocare a unui material si a o afisa scriindu-i denumirea cu caractere alfabetice, urmata de an, s-a scris formula <<=Format$([Data stocarii],'mmmm yyyy',0,0)>>. Pentru definirea afisarea numarului curent al fiecarui material (obtinut prin incrementare), s-a creat o caseta text cu proprietatile de mai jos.

Fereastra de proprietati a casetei text pentru numar curent

In caseta Control Source se trece " =1", iar pentru ca numaratoarea sa se desfasoare unitar pentru toate materialele intrate in stoc, indiferent de depozit ori luna, se alege Over All ("peste tot") in caseta Running Sum. Pentru calculul valorii s-a scris intr-o caseta text formula: "=[Cantitate stocata]*[Pret unitar]", iar pentru a insuma

cantitati si valori si a afisa subtotaluri pe luna, pe material si pe depozit (numai valoric) in Group Footer-urile corespunzatoare, s-a utilizat functia Sum() (ca si in proiectarea formularelor), aplicata cantitatii si expresiei valorii. La fel se procedeaza pentru a calcula si afisa, la final de raport (Report Footer), un total general valoric, precedat de eticheta "Total general intrari:".

Fereastra Conditional Formating

6. Pentru evidentierea anumitor date (afisare cu caractere si chiar culori diferite a informatiilor in raport, in functie de indeplinirea unor conditii) se utilizeaza optiunea Conditional Formating din meniul Format. Aceasta este disponibila numai dupa selectarea unui control legat la o sursa de date (o caseta text (Text Box), de regula). In exemplul dat, se vor afisa diferit randurile de total pe luna cu valori intre 500 si 800 milioane si intre 2 si 8 miliarde lei. Se selecteaza caseta text de subtotal pe luna: , apoi se alege optiunea Conditional Formating din meniul Format si se stabilesc cele doua conditii (utilizand butonul Add pentru adaugarea celei de-a doua conditii de formatare). Pentru renuntarea la o conditie se activeaza butonul Delete. Se pot stabili maxim trei conditii (dupa cea de-a treia, butonul Add devine inactiv).


Figura 4.

Crearea de rapoarte cu subrapoarte

Ca si in operatiunea de creare a subformularelor, se utilizeaza butonul din caseta de instrumente (controale) - Toolbox, cu sau fara activarea Wizard-ului . De asemenea, se poate aduce subraportul pe suprafata de lucru, intr-una dintre sectiunile raportului principal, din fereastra Database, utilizand tehnica drag-and-drop.In cazul in care operatiunea de creare de subraport se desfasoara fara Wizard, utilizatorul trebuie sa verifice daca proprietatile subraportului: Link Child Fields si Link Master Fields au primit numele aceluiasi camp: cel care realizeaza legatura dintre raportul principal si subraport.


Proprietati ale obiectelor de tip raport si ale sectiunilor lor

Proprietati ale rapoartelor

Se pot deosebi patru categorii de proprietati ale rapoartelor:

a.  Format. In cadrul acesteia, Caption este utilizata pentru stabilirea unui titlu afisat pe bara albastra de titlu, in modul Print Preview de vizualizare a raportului; Page Header si Page Footer sunt utilizate pentru specificarea paginilor pe care se vor afisa antetul, respectiv subsolul de pagina (variante: toate paginile; toate, mai putin prima; toate, mai putin ultima; toate, mai putin prima si ultima); Picture permite specificarea fisierului afisat pe fundalul raportului; Picture Pages precizeaza paginile pe care se va afisa fundalul ales.

b. Data. Record Source precizeaza o tabela, o interogare, ori o fraza SQL care va fi sursa de date a raportului; Filter se foloseste pentru stabilirea unei conditii-filtru pe care trebuie s-o indeplineasca datele ce vor fi afisate in raport; Filter on permite selectarea a doua valori: Yes, ceea ce presupune ca criteriul specificat in Filter devine activ (se aplica datelor) si No, care anuleaza actiunea filtrului.

Figura 4. Filtru pentru raportul Furnizori

De exemplu, in raportul Furnizori se vor afisa numai cei din localitatea indicata de valoarea parametrului ORAS (Figura 4. 2). Tot in categoria Data se afla si Order By, care precizeaza criterii de sortare, in ordinea gradului de generalitate, cu virgula intre ele; Order By On poate cuprinde valorile Yes sau No, activand sau dezactivand proprietatea Order By.

c.  Event - proprietati de tip eveniment. On Open serveste , in principal, la definirea de filtre; On Close poate realiza stergerea fisierelor temporare create in timpul executiei raportului. In general, acestora le sunt atasate functii ori proceduri.

d. Other - alte proprietati. Record Looks asigura blocarea informatiilor dintr-un raport in timpul afisarii acestuia; Date Grouping permite utilizarea tipului implicit de data sau a tipului setat de utilizator; Fast Laser Printing, cu valoarea Yes, realizeaza o tiparire rapida a unui raport, etc.

Toate categoriile de proprietati se regasesc in rubrica (tab-ul) All.

Proprietati ale sectiunilor rapoartelor

Acestea nu sunt foarte numeroase. Categoria Data lipseste. Ele servesc la atribuirea unui nume fiecarei sectiuni (Name), la efectuarea saltului la pagina noua (Force New Page), la ascunderea/afisarea anumitor date (Visible - Yes/No), la pregatirea sectiunilor pentru afisare (On Format ori On Print), la reformatarea sectiunilor (On Retreat), etc.




In cazul in care mai multe coloane au selectata in linia Total optiunea Group By, gruparea se va face intai dupa primul camp din stanga, apoi dupa al doilea, s.a.m.d.

Functii ce permit calculul unor valori totalizatoare la nivel de grup.

Microsoft Access dispune si de un program wizard ce permite elaborarea asistata a unor astfel de interogari.

Lansarea interogarilor de tip actiune prin intermediul comenzilor macro sau a instructiunilor VBA este prezentata in

In cazul executiei unei astfel de cereri utilizatorul are posibilitatea de a renunta pe parcurs, fiind informat prin intermediul unor casete de dialog asupra numarului de inregistrari ce vor fi afectate.

Nu se poate descarca referatul
Acest document nu se poate descarca

E posibil sa te intereseze alte documente despre:


Copyright © 2024 - Toate drepturile rezervate QReferat.com Folositi documentele afisate ca sursa de inspiratie. Va recomandam sa nu copiati textul, ci sa compuneti propriul document pe baza informatiilor de pe site.
{ Home } { Contact } { Termeni si conditii }