Documente noi - cercetari, esee, comentariu, compunere, document
Documente categorii

Sistemul de gestiune a bazelor de date Access 2000

Sistemul de gestiune a bazelor de date Access 2000

1 Prezentare generala

Sistemul de Gestiune a Bazelor de Date Microsoft ACCESS 2000 face parte din pachetul de programe Microsoft Office si este cea de-a cincea versiune a produsului de la lansarea sa initiala in anul 1992.

Principalele caracteristici ale SGBD-ului ACCESS sunt:

este relational si lucreaza sub sistemul de operare Windows;

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

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

permite realizarea unor aplicatii complexe prin utilizarea limbajului Visual Basic;

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

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

este autodocumentat prin help, apelabil contextural sau la cerere;

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

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

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

permite personalizarea bazei de date;

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

Arhitectura Microsoft ACCESS



O baza de date ACCESS poate fi definita ca fiind 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.

Cererea de interogare (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 unei baze de date:

La pornire, SGBD ACCESS afiseaza ecranul din figura din care rezulta doua posibilitati:

crearea manuala a unei baze de date goale: Blank Access database

crearea unei BD cu ajutorul asistentului.

Deschiderea unei baze de date existente: daca se doreste modificarea sau consultarea unei baze de date creata anterior, aceasta trebuie mai intai deschisa. In fereastra principala se selecteaza Open an existing file si se activeaza butonul [OK] care va deschide o noua fereastra de dialog Open asemanatoare cu fereastra de dialog File New Database, in care se selecteaza baza de date ce se doreste a fi modificata.

2 Crearea structurii bazei de date

In vederea facilitarii intelegerii modului in care se creeaza o aplicatie in Microsoft ACCESS 2000, vom folosi un studiu de caz practic (prezentat in capitolul anterior).

Crearea tabelelor:
Crearea structurii tabelelor se poate face in trei moduri:

Utilizand fereastra de proiectare (Create table in design view)

Prin introducerea datelor (Create table by entering data);

Utilizand instrumentul Wizard (Create table by using wizard).

Modul cel mai eficient de creare a tabelelor il reprezinta utilizarea ferestrei de proiectare, motiv pentru care vor fi prezentate mai intai pe scurt celelalte doua moduri.

Crearea unui tabel utilizand instrumentul wizard permite adaugarea unor campuri standard ce se afla deja in cadrul bibliotecilor de tabele standard. De exemplu, daca se doreste realizarea unui tabel cu clientii (Customers), utilizandu-se instrumentul wizard, se pot selecta anumite campuri standard pentru aceasta tabela, precum si relatiile pe care acestea le au cu alte campuri din alte tabele. Nu recomandam aceasta modalitate deoarece campurile din cadrul tabelelor standard au fost create pentru sistemul de lucru anglo-saxon, care, in anumite privinte, nu corespunde sistemului romanesc.

Revenind la primul mod de creare a unei tabele, prin realizarea unui dublu clic pe Create table in design view pe ecran va aparea fereastra Table.

In cadrul acestei ferestre se definesc numele campului (Field Name), tipul de date (Data Type) si, optional, o descriere a campului respectiv (Description). In panoul de jos al acestei ferestre se introduc celelalte proprietati ale campului.

Field name: numele campurilor poate fi format din maximum 64 de caractere, poate sa contina spatiu si nu trebuie sa contina urmatoarele caractere: [ , ], ., ', ! . De asemenea, nu trebuie sa fie cuvant rezervat al ACCESS.

Data type: tipuri si subtipuri de date:

Microsoft ACCESS 2000 permite ca numele de camp sa fie format din mai multe cuvinte, de exemplu [Numar factura]. In versiunile mai vechi de ACCESS denumirea acestui camp ar fi fost scrisa intr-un singur cuvant sub forma Numar_factura.

Format: formatul in care sunt afisate datele:
Proprietatea Format se utilizeaza pentru stabilirea modului in care numere, date calendaristice, timp si text vor fi afisate. Ea nu afecteaza si modul de introducere a datelor. Numarul de zecimale (Decimal places):
In cadrul acestei proprietati se stabileste numarul de zecimale ce pot fi atribuite campului. Exista o lista de optiuni si se pot selecta valori cuprinse intre 0 si 15 sau Auto pentru determinarea automata a numarului de zecimale.

Input Mask (formatul de introducere). Proprietatea Input Mask (sablon de introducere a datelor) se poate specifica utilizand trei sectiuni:

specifica sablonul insusi, cum ar fi: !(999) 999-9999;

specifica daca Microsoft Access va memora toate caracterele tastate; daca se utilizeaza 0 in aceasta sectiune, toate caracterele vor fi memorate ca valoare a campului in cauza (de exemplu, parantezele pentru prefix ori separatorii unui numar de telefon vor fi memorati impreuna cu numarul insusi); daca se alege 1 sau nu se tasteaza nimic, vor fi memorate numai caracterele care alcatuiesc valoarea propriu-zisa a campului respectiv;

specifica acel caracter pe care Microsoft Access il va afisa in locul in care trebuie sa apara in sablon; in aceasta sectiune se poate utiliza orice caracter; pentru afisarea unui sir de caractere vid, se utilizeaza un spatiu cuprins intre ghilimele (' ').

Caption: aceasta permite specificarea unui al doilea nume in situatiile in care primul nu este destul de semnificativ. El apare in antetul cererilor de interogare, formularelor si rapoartelor.

Default Value (Valoarea implicita): este o valoare care este atribuita automat, in momentul cand utilizatorul nu introduce nici o valoare in acel camp.

Validation Rule (regula de validare): regulile de validare testeaza, conform criteriului furnizat sub forma unei expresii ACCESS, valoarea introdusa intr-un camp. Acestea folosesc:

operatorii: =, -, *, /, , Mod, <, >, <>, =, <=, >=, AND, OR, BETWEEN, IN, IS NULL;

identificatorii se dau in paranteze drepte [];

functii si constante.

Daca nu se specifica nici un operator, ACCESS asuma automat operatorul de egalitate.

Validation Text (textul de validare): reprezinta textul care va aparea pe bara de mesaje in cazul in care valoarea introdusa nu respecta criteriul impus de regula de validare.

Required (cerut): prin aceasta proprietate se stabileste daca prin introducerea unei inregistrari in cadrul tabelei este obligatorie si completarea respectivului camp.

Indexed (Indexat): dintr-o lista derulanta se poate alege intre un index care admite valori duplicat sau unul care cere ca fiecare valoare a campului sa fie unica. Access defineste automat cheia primara a tabelei ca fiind indexata si fara duplicate (No Duplicated).

Prin activarea tab-ului Lookup din panoul de proprietati, se pot specifica o serie de proprietati care se refera in principal la sursa de introducere a datelor.

Dupa descrierea campurilor componente ale unei tabele (conform teoriei modelului relational) trebuie sa stabilim cheia primara a acesteia. Daca uitam, Access ne avertizeaza de acest lucru si ne sugereaza el o cheie primara. Aceasta poate fi formata din unul sau mai multe campuri (cheie compusa). Daca cheia primara este formata dintr-un singur camp, se selecteaza acesta si apoi se activeaza butonul cheia primara. Daca cheia primara este formata din mai multe campuri se selecteaza primul, iar celelalte se selecteaza in combinatie cu apasarea tastei CTRL, dupa care se activeaza butonul cheie primara .

Relatii intre tabele:

Din punct de vedere al momentului crearii acestora, exista doua tipuri de relatii intre tabelele unei baze de date ACCESS, si anume:

relatii permanente - se stabilesc dupa definirea tabelelor si sunt cerute de modelul relational facand parte din structura bazei de date. Acestea se realizeaza de obicei prin corespondentele cheie primara - cheie externa si sunt memorate in baza de date;

relatii temporare - se stabilesc intre tabele cu ocazia definirii unor cereri de interogare, nefiind inregistrate in structura bazei de date.

In cadrul unei baze de date nu este obligatoriu ca intre toate tabelele sa existe relatii. Este posibil ca in cadrul unei aplicatii sa utilizam si tabele independente si/sau de lucru (tabele temporare). In cadrul acestora se scriu si se sterg datele aferente unei anumite operatii.

Relatiile care se pot stabili intre tabele sunt de trei tipuri:

unu la mai multi (one to many);

unu la unu (one to one);

mai multi la mai multi (many to many).

Revenim in cadrul ferestrei Relationships

pentru a descrie procesul de construire a relatiilor dintre tabele. O relatie intre doua tabele se realizeaza prin operatia drag and drop de la cheia primara a tabelei principale la cheia externa a tabelei secundare.

Cu aceasta ocazie, ACCESS va deschide fereastra de dialog Edit Relationship, in care se observa legatura stabilita intre cheia primara si cheia externa.

In cazul in care este selectata proprietatea Enforce Referential Integrity (Impune integritate referentiala) in cadrul unei aplicatii, aceasta inseamna ca atunci cand se introduce o noua inregistrare in tabela secundara, se verifica daca valoarea cheii externe se gaseste in tabela primara, in campul corespunzator cheii primare. Aceasta inseamna ca este necesara mai intai incarcarea datelor in tabela principala si apoi in cea secundara.

Introducerea datelor in tabele:

In cadrul aplicatiilor ACCESS datele pot fi introduse in tabele printr-o multitudine de metode. In fereastra Database selectam tabela Camere, in care dorim sa introducem date si activam butonul . Pe ecran va aparea fereastra

, Datasheet (foaie de date). In cadrul acestei ferestre se pot vizualiza si/sau modifica datele deja introduse sau se pot introduce date noi.

3 Formulare (simple, avansate)

Formularele (Forms) reprezinta interfata principala intre utilizator si o aplicatie MS Access, fiind obiecte ale bazei de date ce permit introducerea si afisarea datelor intr-o maniera cat mai atractiva.

In cadrul unei aplicatii, formularele pot indeplini mai multe functii:

afisarea si editarea datelor;

controlul operatiilor realizate de aplicatie;

introducerea de date;

afisarea de mesaje;

tiparirea informatiilor.

Un formular este compus din trei parti: antetul, zona de detaliu si subsolul:



Lucrul cu formulare se poate realiza in unul din urmatoarele moduri de vizualizare:

Design View

in acest mod de vizualizare poate fi modificat design-ul formularului

Form view

vizualizarea propriu-zisa a formularului

Datasheet view

mod de vizualizare sub forma tabelara

Spre exemplu formularul Magazie se prezinta astfel in cele trei moduri de vizualizare:

Design View

Form View

Datasheet View

Pentru crearea formularelor in Access 2000 se utilizeaza controale. Un control este un obiect grafic care poate fi pozitionat pe un formular, raport sau pagina de acces la date (Data access page). Un control poate afisa date si/sau efectua actiuni.

Pentru crearea unui formular exista mai multe moduri prin care se poate crea un formular, dar cele mai importante sunt urmatoarele:

prin utilizarea instrumentului wizard: Create form by using wizard,

crearea in fereastra de proiectare (manual) Create form in Design view.

Un subformular, este un formular inclus intr-un alt formular, pentru a permite afisarea datelor din mai multe tabele sau cereri de interogare, aflate in general in relatii de tipul unu la unu sau unu la mai multi. Astfel, in formularul principal vor fi afisate datele din partea unu a relatiei, iar in subformular cele din partea mai multi. In mod implicit, legatura dintre un formular si un subformular reflecta legatura dintre tabelele pe care se bazeaza. Prin urmare, la un moment dat in formular vor fi afisate o inregistrare aflata de partea unu a relatiei iar in subformular inregistrarile corespondente din tabela aflata de partea mai multi a acesteia. Intr-un formular care contine un subformular se pot specifica criterii de filtrare numai asupra campurilor din formularul principal.

Facand apel la exemplul nostru, relatia de tip 1- n dintre tabelele Categorii si Camere face posibila crearea unui formular unde se vor afisa Camerele si in care se poate include un subformular pentru afisarea tarifului corespondent fiecarei camere.

Din punct de vedere al formatului de prezentare, un subformular poate fi de doua feluri:

foaie de date (Datasheet view) - se poate crea intr-o maniera foarte simpla si permite modificari privind dimensiunea si ordinea coloanelor;

formular (Form view)- ofera o mare suplete de prezentare prin posibilitati multiple de aranjare a datelor, de utilizare a culorilor, de creare de antet si subsol de pagina si de includere a unor campuri de tip OLE.

Pentru includerea unui subformular intr-un formular principal trebuie aarcursi urmatorii pasi:

creare formularului principal,

crearea subformularului,

faceti drag&drop cu subformular peste formularul principal.

Pentru a aduce un subformular intr-un formular principal:

se deschide formularul principal in modul Design;

se trece in fereastra Database, prin activarea tastei F11, se activeaza butonul , care va afisa lista tuturor formularelor din baza de date;

se deplaseaza pictograma corespunzatoare subformularului din fereastra bazei de date in spatiul formularului principal, ceea ce va avea ca efect adaugarea unui control de tip subformular;

daca este cazul se deplaseaza controlul in locul dorit si se redimensioneaza in functie de necesitati;

se face dublu clic pe bordura controlului ce reprezinta subformularul, pentru a afisa lista de proprietati a acestuia;

se verifica legatura dintre formularul principal si subformular prin proprietatile Link child fields si Link master fields, care sunt automat definite de ACCESS pe baza legaturilor dintre tabele; in caz contrar se stabilesc cele doua campuri de legatura;

se trece in modul Forms pentru verificarea rezultatului;

pentru a aduce modificari in formularul principal se comuta inapoi in modul Design.

Astfel MS Access va crea automat o legatura ibtre cele doua formulare.

Legatura automata este posibila in urmatoarele doua situatii:

formularul principal si subformularul se bazeaza pe tabele aflate in relatii primare de tip 1-1 sau 1-n; situatie in care campurile de legatura vor fi cheia primara din tabela aflata de partea 1 si cheia externa din tabela aflata de partea n a relatiei;

formularul principal si subformularul contin doua campuri care sunt identice ca nume si ca tip, iar cel din formularul principal este cheie primara a tabelei sursa; situatie in care legatura se face prin cele doua campuri.

Atat formularele,rapoartele cat si controalele poseda o serie de proprieta.

Proprietatile unui obiect se pot modifica respectand urmatoarea succesiune:

daca este vorba de un formular/raport se deschide in modul Design;

se selecteaza formularul/raportul din meniul Edit->Select Form (Select Report)); daca este vorba de un obiect plasat pe un formular sau pe un raport acesta se selecteaza printr-un clic pe obiectul dorit;

se activeaza fereastra cu proprietati (trebuie sa fie activat meniul View,Properties sau prin actionarea butonului din bara cu instrumente).

Intr-un formular se pot plasa campuri calculate pe baza unor expresii. Plasarea expresiilor in controalele aflate pe un formular sau subformular se realizeaza prin scrierea acestora in proprietatea Control Source a unui control. Scrierea unei expresii se poate face asistat (Expression Builder) sau prin scriere directa. Daca se utilizeaza scrierea unei expresii in modul neasistat, aceasta trebuie precedata de semnul egal (=expresie). Expresiile pot contine orice functie Access 2000 sau functii definite de utilizator, referiri catre controale aflate pe alte formulare (deschise) etc.

Expresiile plasate in formulare/subformulare pot fi grupate in:

expresii simple

expresii care utilizeaza functii agregate (SUM, AVG, COUNT etc.)

Utilizarea in expresii a controalelor din acelasi formular se realizeaza prin referirea numelui controalelor implicate in expresie.

Pentru exemplificare am plasat o caseta de text (numele controlului-proprietatea Name- Valoare) in care am scris in proprietatea Control Source expresia:=Val([Cantitate intrata])*Val([Pret factura]):

Utilizarea in controale a expresiilor din alte formulare se face prin: Forms![Nume formular]![Nume control]. Pentru a putea fi evaluate astfel de expresii, trebuie ca acele formulare de pe care sunt referite controale sa fie deschise in acel moment.

Utilizarea intr-o expresie de pe un formular a unor controale din subformular se realizeaza prin: [Nume subformular].Form![Nume control].

4 Interogarea bazei de date

Interogarea bazei de date permite afisarea inregistrarilor din una sau mai multe tabele, inregistrari care verifica anumite conditii, care sunt grupate in functie de anumite criterii sau sunt ordonate crescator sau descrescator.

Avantajele oferite de modul de interogare a bazei de date prin cereri sunt:

selectia campurilor din tabele si a inregistrarilor acestora pe baza unor criterii impuse de necesitatile informationale;

ordonarea rezultatelor dupa anumite criterii;

introducerea unor campuri calculate pe baza unor formule, care folosesc drept operanzi alte campuri existente in tabele, precum si posibilitatea determinarii de totaluri pe anumite campuri;

utilizarea intr-o cerere a mai multor tabele;

modularitatea cererilor in sensul ca foaia de raspuns (rezultatul) a unei cereri poate fi folosita ca intrare pentru o noua cerere;

crearea unor formulare si situatii finale (reports), care au la baza cereri de interogare (create anterior);

posibilitatea generarii de reprezentari grafice pe baza unor cereri de tip analiza incrucisata.

Interogarile pot fi realizate prin intermediul obiectelor de tip Query. Pentru utilizarea unui asemenea obiect trebuie:



creata o interogare,

aceasta interogare trebuie executata.

Rezultatul executiei unei asemenea cereri este plasat intr-o foaie de raspuns, asemanator foii de date asociate unei tabele.

Crearea unei cereri de interogare (Query) se poate face in mai multe feluri:

prin utilizarea instrumentului wizard: Create query by using wizard,

crearea in fereastra de proiectare (manual) Create query in Design view.

De asemenea o interogare poate fi creata si apeland la limbajul SQL.

Pentru a crea o cerere de interogare in modul Design view:

In fereastra Database se realizeaza click pe Queries si New;

In caseta de dialog New Query se executa clic pe Design view si apoi Ok.

In caseta de dialog Show Table se executa clic pe tab-ul care furnizeaza lista obiectelor bazei de date (tabele, cereri).

Dublu clic pe numele fiecarui obiect pe care vrem sa-l folosim si apoi clic pe Close.Fereastra de lucru este structurata in doua parti:

o       cea de sus care afiseaza structura tabelelor/cererilor selectate la punctul 4 si eventualele legaturi dintre ele;

o       cea de jos numita grila de proiectare (design grid), in care se va construi cererea din punct de vedere structural si functional; aceasta mai este cunoscuta si sub numele de grila QBE (Query By Exemples).

Daca avem mai multe tabele si/sau cereri de interogare, trebuie sa ne asiguram ca intre ele exista legaturile necesare pentru a raspunde cerintelor impuse de noua cerere de interogare.

Daca nu exista legaturile necesare intre tabele, se stabilesc prin glisarea mouse-ului de pe campul de legatura din tabela principala spre campul de legatura din tabela secundara; campurile numerice de legatura Field Size trebuie sa fie: byte, integer sau long integer.

In functie de sursa acestora, campurile din structura unei cereri sunt de doua feluri: preluate din tabele/cereri sau calculate. Trecerea campurilor preluate din tabele/cereri in grila de proiectare se face prin deplasarea mouse-ului din lista de campuri in celulele din linia Field. Aceasta trecere poate fi partiala sau totala, in functie de rezultatul final urmarit. Trecerea tuturor campurilor dintr-o tabela/cerere in grila de proiectare se poate face in doua moduri:

o       dublu clic in bara de titlu a listei de campuri, clic in lista de campuri (oriunde) si apoi deplasarea in grila de proiectare;

o       prin deplasarea caracterului * (care se gaseste in capatul listei) in grila de proiectare.

Ordonarea datelor intr-o cerere se poate face crescator sau descrescator, dupa unul sau mai multe campuri. Pentru aceasta se realizeaza clic in celula de la intersectia coloanei campului cu caseta Sort si apoi se alege intre Ascending sau Descending. In cazul in care se specifica mai multe campuri de ordonare (chei de sortare), operatia se executa incepand cu primul camp din stanga si continuand cu celelalte spre dreapta pana la ultimul. Ordinea campurilor de sortare influenteaza rezultatul acestei operatii.

Criteriile de selectie se introduc in celula aflata la intersectia coloanei campului cu linia Criteria din grila de interogare. Acestea pot fi simple sau compuse (cu ajutorul operatorilor AND/OR) si pot utiliza o serie de cuvinte rezervate si expresii definite de utilizatori.

Crearea unor campuri calculate:

o       se selecteaza coloana si se introduce comanda View > Totals care va introduce in grila de proiectare linia Totals, daca nu exista;

o       se selecteaza Expresion;

o       in prima linie Field se introduce formula de calcul care are forma generala: Nume-rezultat: [Camp1] Operator-aritmetic [Camp2] . (de exemplu: TVA: [Pret-unitar] * 0.19).

Pentru formularea unor cereri de interogare bazate pe mai multe tabele, este necesar ca acestea sa fie legate prin intermediul unor campuri. Aceste relatii intre tabele se pot stabili fie in momentul definirii structurii bazei de date (structura tabelelor), prin comanda [Tools, Relationships] sau in timpul formularii unei cereri de interogare prin aducerea tabelelor necesare in zona de lucru si stabilirea legaturilor necesare. Prima modalitate genereaza relatii permanente intre tabele, care permit totodata definirea restrictiilor de integritate referentiala, cea de-a doua genereaza relatii temporare, valabile numai pentru cererea in cauza si care nu permit verificarea restrictiilor de integritate referentiala.

In ambele cazuri relatiile intre tabele se stabilesc prin punerea in corespondenta a unui camp dintr-o tabela sursa (principala) cu un alt camp din tabela destinatie (secundara). Cele doua campuri trebuie sa fie de acelasi tip si dimensiune si pot fi chei primare sau externe.

In ambele cazuri relatiile intre tabele se stabilesc prin punerea in corespondenta a unui camp dintr-o tabela sursa (principala) cu un alt camp din tabela destinatie (secundara). Cele doua campuri trebuie sa fie de acelasi tip si dimensiune si pot fi chei primare sau externe.

O cerere de interogare a bazei de date pe mai multe tabele este expresia operatiei de compunere (join) din algebra relationala. Din punct de vedere al SGBD ACCESS, aceasta operatie este de trei feluri: echicompunere, compunere externa si compunere reflexiva.

Prin operatia de echicompunere se extrag toate inregistrarile din tabela sursa care au inregistrari echivalente in tabela destinatie (pentru care campurile de legatura sunt identice). De exemplu daca vrem sa aflam intrarile de materiale pentru fiecare material (cantitativ), este clar ca in cadrul tabelei Categorii se pot gasi mai multe materiale decat in tabela Camere (anumite materiale pot exista in cadrul bazei de date dar nu au fost achizitionate pana in prezent). Prin urmare va fi utilizata operatia de echicompunere.

Prin operatia de compunere externa se extrag toate inregistrarile din tabela sursa si inregistrarile din tabela destinatie, care au valori egale in campurile de legatura. Pentru inregistrarile din tabela destinatie, care nu au corespondente in tabela sursa, se vor afisa campuri vide.

Cele doua cereri se rezolva prin compunere externa. Relatia dintre doua tabele, din punct de vedere al operatiei de compunere externa, este privita in ambele sensuri:

de la tabela sursa spre tabela destinatie (de la stanga la dreapta), ceea ce a condus la notiunea de compunere externa stanga (left outer join);

de la tabela destinatie spre tabela sursa (de la dreapta la stanga), ceea ce a condus la notiunea de compunere externa dreapta (right outer join).

Prin aceste operatii s-a creat posibilitatea formularii unor cereri de interogare inverse, asa cum sunt cele doua exemplificate mai inainte. Pentru alegerea tipului de compunere in cadrul unei cereri de interogare:

se realizeaza dublu clic pe linia de legatura intre cele doua tabele, care va afisa fereastra Join Properties;

se alege una din optiunile: 1 - echicompunere, 2 - compunere externa stanga sau 3 - compunere externa dreapta si apoi Ok.

Interogarile de tip 'analiza incrucisata' permit obtinerea unui set de rezultate complexe sub forma matriceala, in care numele liniilor (Li) si coloanelor (Cj) reprezinta criterii mixte de grupare, iar valorile din celulele tabelului (Vij) se obtin prin aplicarea unei functii predefinite (Sum, Min, Max, etc.) asupra unui camp dintr-o tabela.

Crearea unei cereri de interogare de acest tip, se face la fel ca o cerere care comporta calcule, cu deosebirea ca trebuie specificate campurile care furnizeaza liniile, coloanele si valorile din tabel.

In acest sens se procedeaza dupa cum urmeaza:

se lanseaza crearea unei noi cereri de interogare si se aduc in zona de lucru tabelele necesare;

se aduc din tabele in grila de proiectare campurile dorite si se stabilesc criteriile de selectie;

se alege Query > Crosstab query, care va aduce in grila de interogare liniile Total si Crosstab si va afisa Group by in celulele din linia Total;

se executa clic in celula Crosstab a campului care va da numele liniilor tabelului si se va selectiona Row Heading din lista derulanta;

clic in celula Crosstab a campului care va da numele coloanelor tabelului si se va selectiona Column Heading din lista derulanta;

clic in celula Crosstab a campului care va furniza valorile din tabel si se va selectiona Value din lista derulanta;

clic in celula Total a campului care va furniza valorile din tabel si se va selectiona operatia dorita (Sum, Count, Max, Min, etc.);

comanda View, Datasheet View pentru vizualizarea rezultatului.

Se pot specifica mai multe campuri pentru a furniza numele de linii ale tabelului si numai unul pentru a da numele coloanelor. Obligatoriu, campurile care furnizeaza numele liniilor si coloanelor trebuie sa aiba in linia Total criteriile Group by. La o cerere de interogare de acest tip pot participa una sau mai multe tabele.

Tabelele care rezulta in urma executiei acestor cereri, in mod standard, vor avea numele coloanelor plasate de la stanga la dreapta in ordine alfabetica. Exista posibilitatea schimbarii acestei ordini in functie de necesitatile si preferintele utilizatorului.

MS Access permite si crearea unor interogari de tip actiune:

Cererile de interogare de tip actiune se folosesc pentru:

crearea de noi tabele pe baza celor existente;

stergerea de inregistrari din una sau mai multe tabele;

modificarea datelor dintr-un grup de inregistrari;

adaugarea unui grup de inregistrari la o tabela.

Crearea unei cereri de interogare de tip actiune se face in trei etape:



crearea unei cereri de interogare de tip selectie si verificarea rezultatului acesteia;

transpunerea cererii de interogare de tip selectie intr-o cerere de tip actiune;

verificarea rezultatelor in tabele.

Spre exemplu pentru a transforma o cerere de interogare de tip selectie in una de tip actiune cu functia de creare a unei noi tabele se parcurg etapele:

se trece in modul de lucru Design view;

se alege Query > Make table - query, care va afisa o caseta de dialog;

in aceasta caseta de dialog se introduce numele tabelei, se stabileste daca aceasta va face parte dintr-o baza de date ACCESS sau de alt tip (cum ar fi Paradox) si daca va inlocui o tabela deja existenta (prin alegerea acesteia dintr-o lista);

se activeaza butoanele Ok din caseta de dialog si apoi comanda Query > Run, ceea ce va afisa intr-o caseta de dialog numarul de inregistrari din tabela creata;

pentru completarea cererii se activeaza butonul Ok din ultima caseta de dialog, ceea ce va avea ca efect inregistrarea in baza de date a noii tabele.

5 Rapoarte

Situatiile finale (rapoartele) constituie, asadar, finalitati ale ciclului de creare-actualizare-exploatare a unei baze de date, continutul lor fiind vizualizat pe ecran, ori listat la imprimanta.

Cu Access 2000 se pot realiza diferite obiecte de tip raport, utilizand optiunea Reports din meniul Insert.

Exista urmatoarele modalitati de lucru:

crearea rapoartelor asistata de un wizard,

realizarea rapoartelor de catre utilizator, dupa alegerea optiunii Design View,

generarea automata, fara vreo interventie a utilizatorului, a unor rapoarte in care datele sunt prezentate fie pe o singura coloana pentru fiecare inregistrare (optiunea Autoreport: Columnar), fie sub forma de tabel obisnuit (optiunea Autoreport: Tabular),

crearea de rapoarte sub forma de grafic (cu optiunea Chart Wizard),

realizarea unor rapoarte de dimensiuni corespunzatoare unor etichete utilizate, eventual, pentru corespondenta (Label Wizard).

Situatiile finale pot cuprinde date provenind dintr-o tabela, sau dintr-o interogare (atunci cand sunt necesare date din mai multe tabele), caz in care se raspunde mesajului 'Choose the table or query where the object's data comes from:' prin selectarea din lista a tabelei sau interogarii care va sta la baza realizarii raportului. Exista si posibilitatea realizarii de rapoarte care nu au o anumita sursa de date, dar care vor ingloba informatii utile subrapoartelor definite pe tabele ori interogari intre care nu au fost stabilite relatii.

6 Comenzi macro

Un element de maxima importanta in dezvoltarea unei aplicatii Access il reprezinta automatizarea operatiilor efectuate si elaborarea unei interfete care sa faciliteze exploatarea bazei de date si sa eficientizeze actiunile utilizatorului. Integrarea formularelor, interogarilor si rapoartelor intr-un flux continuu, condus de evenimentele declansate de utilizator, precum si executia conditionata a operatiilor trebuie sa permita chiar si neinitiatilor in Access o deprindere rapida a cerintelor aplicatiei.

Comenzile macro din Access 2000 reprezinta o modalitate simpla si eficienta pentru automatizarea anumitor operatii, oferind posibilitatea dezvoltarii unor aplicatii de o complexitate sporita fara a solicita cunostinte de programare in Visual Basic.

Trebuie specificat ca macrocomenzile Access sunt diferite de macro-urile inregistrate din Word sau Excel care se bazeaza pe generarea automata de catre program a codului VBA pentru o serie de comenzi ale utilizatorului.

Practic, o comanda macro reprezinta o actiune sau o secventa de actiuni selectate dintr-o lista prestabilita, ce realizeaza operatiuni diverse precum deschiderea sau inchiderea formularelor, tiparirea rapoartelor, lansarea in executie a altor programe, salvarea inregistrarilor sau executarea unei fraze SQL.

Desi atasarea rapida a macrocomenzilor la evenimentele controalelor de pe formulare, cum ar fi butoanele de comanda, poate parea la o prima vedere suficienta realizarii unor programe complexe, trebuie precizat ca exista anumite limite si deficiente ce fac utilizarea macro-urilor inferioara programarii in VBA. Un prim argument ce poate fi mentionat in acest sens este lipsa de libertate a programatorului in a-si crea propriile functii si proceduri si de a utiliza o serie de functii disponibile in Access. In plus, codul VBA ce raspunde evenimentelor este salvat, importat si exportat impreuna cu obiectele (formulare, rapoarte etc.) conducand la o mai usoara intretinere a bazei de date. Si din punct de vedere al securitatii exista unele dezavantaje: modulele pot fi protejate cu parola, pe cand comenzile macro nu, iar in cazul conversiei bazei de date in format MDE macro-urile raman vulnerabile, putand fi modificate

Crearea unei comenzi macro:

Pentru elaborarea unei noi comenzi macro este necesara parcurgerea urmatoarelor etape:

In sectiunea Objects din fereastra bazei de date se selecteaza eticheta Macros,

Se efectueaza click pe butonul New,

In coloana Action se selecteaza din lista actiunea dorita.

In coloana Comment se tasteaza in dreptul fiecarei actiuni eventualele explicatii. Aceste comentarii sunt optionale.

In grila Action Argument din partea inferioara a ferestrei se completeaza argumentele actiunii selectate. Continutul grilei de argumente se modifica in functie de elementul selectat in lista Action, fiecare actiune avand propriile argumente.

Lansarea in executie a comenzilor macro exista mai multe posibilitati:

lansarea directa in executie se poate realiza efectuand dublu click pe pictograma macrocomenzii dorite in fereastra Database sau selectand din meniul Tools - Macro - Run Macro. In cazul in care se lanseaza in executie un grup macro fara sa se precizeze comanda dorita din cadrul acestuia, va fi executata doar prima comanda a grupului.

executarea prin intermediul unui alt macro se efecteaza selectand in lista de actiuni RunMacro. Argumentele acestei actiuni permit executarea repetitiva a macrocomenzii de un anumit numar de ori.

lansarea in executie din Visual Basic putem declansa o comanda macro din interiorul unei functii sau proceduri VBA, folosind metoda RunMacro a obiectului DoCmd .

lansarea in executie ca raspuns la un eveniment se poate realiza atasand o comanda macro unui obiect, ca raspuns la un eveniment survenit in desfasurarea programului . Prin intermediul modelului orientat pe obiecte si dirijat de evnimente putem declansa o comanda macro ca raspuns la deschiderea sau inchiderea unui formular ori raport (evenimentul OnLoad), in urma selectarii unui element dintr-o lista derulanta (evenimentul AfterUpdate) sau a deplasarii mouse-ului intr-o anumita zona a ecranului (OnMouseMove).

6 Alte facilitati in MS Access 2000

Utilizarea bazelor de date create in versiuni diferite ale Microsoft Access:

Exista situatii care impun utilizarea unui fisier creat in Access 2000 in sisteme unde sunt instalate versiuni mai vechi ale Microsoft Office. De asemenea, dupa instalarea Access 2000, utilizatorii vor dori sa foloseasca in continuare aplicatiile anterior create. In acest sens exista posibilitatea conversiei bazei de date in formatul corespunzator. Putem efectua aceasta operatiune prin intermediul comenzii Tools, Database Utilities, Convert Database.

Compactarea si 'repararea' bazelor de date:

Stergerea inregistrarilor din tabele ori a unor interogari, rapoarte sau alte obiecte ale bazei de date conduce la fragmentarea acesteia. Drept urmare, spatiul ocupat pe disc de respectivul fisier este mai mai mare decat cel necesar in realitate. Pe de alta parte, evenimente precum penele de curent sau inchiderea necorespunzatoare a unei sesiuni de lucru in Access pot determina deteriorarea structurii bazei de date.

Pentru a elimina aceste inconveniente Microsoft Access 2000 pune la dispozitia utilizatorilor facilitatea de compactare si reparare a bazelor de date, Compact and Repair Database. (In versiunea Access'97 cele doua optiuni erau prezentate separat).

Pentru a realiza operatiunea de compactare asupra unei baze de date deja deschise se selecteaza din cadrul meniului Tools optiunea Database Utilities, Compact and Repair Database. In acest caz baza de date compactata va lua locul celei vechi. In cazul unei baze de date distribuite este necesara, in prealabil, inchiderea acesteia de catre toti utilizatorii.

Conversia bazelor de date in format MDE presupune compilarea tuturor modulelor, renuntarea la posibilitatea de editare a codului VBA, precum si compactarea bazei de date destinatie. Codul VBA va continua sa functioneze, dar nu va putea fi vizualizat sau editat. Dimensiunea bazei de date va fi considerabil micsorata, ca urmare a indepartarii codului, iar performantele obtinute vor fi imbunatatite prin gestionarea optima a memoriei.

Database Splitter: acest program utilitar este disponibil in meniul Tools > Database Utilities doar in cazul in care ati selectat Additional Wizards Component la instalarea Access 2000. Prin intermediul Database Splitter se ofera posibilitatea separarii tabelelor de celelalte obiecte ale bazei de date (formulare, rapoarte etc.) generandu-se practic doua fisiere. Este o facilitate extrem de utila, in special in cazul sistemelor multiuser, permitand fiecarui utilizator gestionarea elementelor de interfata intr-un fisier separat.

Fereastra Start-Up:

reprezinta formularul care care este deschis automat la deschiderea bazei de date. De exemplu, un formular care sa ofere butoane pentru accesul la toate functiile aplicatiei (formulare, rapoarte, interogari, tabele), fara ca utilizatorul sa fie nevoit sa cunoasca numele formularelor, rapoartelor etc. Stabilirea acestui formular si a altor parametrii ai bazei de date se realizeaza din meniul Tools-StartUp.

Privitor la securitatea bazei de date, Access 2000 ofera urmatoarele posibilitati:

stabilirea unei parole de acces la baza de date;

crearea de utilizatori pentru accesul la baza de date si stabilirea de drepturi de acces pentru fiecare;

criptarea bazei de date

stabilirea unei parole de acces la baza de date se realizeaza din meniul Tools - Security - Set Database Password. Pentru a putea stabili sau elimina parola bazei de date, aceasta trebuie deschisa pentru utilizare exclusiva.