gestiunea bazelor de date - sjea-dj.spiruharet.ro · evolutia sgbd-urilor este legata, in...
TRANSCRIPT
GESTIUNEA BAZELOR DE DATE
CONŢINUTUL TEMATIC AL DISCIPLINEI
BAZE DE DATE ŞI SISTEME DE GESTIUNE A BAZELOR DE DATE
Conceptul de bază de date
Baze de date: noi funcţionalităţi
Tipuri de baze de date
Sisteme de gestiune a bazelor de date
SISTEMUL DE GESTIUNE A BAZELOR DE DATE MICROSOFT ACCESS
Noţiuni generale
Operaţii asupra obiectelor bazei de date
Facilităţi Access pentru dezvoltarea de aplicaţii
Funcţii accesibile în dezvoltarea aplicaţiilor
Componente de sistem
COLECŢII DE OBIECTE TIP ÎNTR-O BAZĂ DE DATE ACCESS
Concepte de bază
Tabele
Formulare
Interogări
Rapoarte
Controale
FACILITĂŢI ACCESS PENTRU DEZVOLTAREA DE APLICAŢII
FUNCŢII ACCESIBILE ÎN DEZVOLTAREA APLICAŢIILOR
BIBLIOGRAFIE MINIMALĂ
[1] Rotaru, Simona; Ghită, Mirela, (2005), Programarea în Access, Editura Universitaria, Craiova.
[2]Rîcu Lascu, Rotaru, Simona; Ghită, Mirela, (2005), Baze de date. SGBD ACCESS ., Editura
Universitaria, Craiova.
[.3] Fusaru D., Gherasim Z, Andronie M., Bâră A., (2003), Aplicaţii economice în Visual Basic şi
Access, Ed. Fundaţia România de mâine, Bucureşti
[.4] Fusaru D., Gherasim Z, (2005), Programare şi baze de date, , Ed. Fundaţia România de mâine,
Bucureşti
Sisteme de gestiune a bazelor de date (SGBD)
SGBD este un ansamblu complex de programe care asigură interfaţa între o bază de date şi
utilizatorii acesteia. Deci SGBD este componenta software care permite crearea, actualizarea ,
întreţinerea şi exploatarea bazei de date.
Evolutia SGBD-urilor este legata, in principal, de modelul de date pe care-l implementeaza.
Organizarea datelor in memoria externa in baza de date se face conform unui model de date, asa
cum am vazut in capitolele precedente.
Etapele in evolutia SGBD-urilor sunt prezentate in continuare.
1. Pana in anii saizeci datele erau organizate doar in fisiere, gestionate de programe
scrise in diferite limbaje de programare universale(exemple: Cobol, Fortran etc.)
2. La sfarsitul anilor şaizeci a apărut modelul arborescent de organizare a datelor si
primele SGBD-uri care erau ierarhice si implementau acest model (exemplu:IMS).
3.Lainceputul anilor saptezeci a aparut modelul retea de organizare a datelor si SGBD-
urilor retea ce implementau acest model (exemple:IDMS, SOCRATE).
SGBD-urile arborescente si retea fac parte din prima generatie si ele constituie
pionieratul in domeniu.
4. La sfarsitul anilor şaptezeci, începutul anilor optzeci a apărut modelul relaţional de
organizare a datelor si ulterior s-au realizat SGBD-urile relaţionale ce implementau acest model
(exemple: Oracle, Informix,DB2, SQLServer, Visual Foxpro, Access etc.).Este generaţia a doua de
SGBD, care prin simplitate, interactivitate si neproceduralitate domină piaţa actuală.
1. La sfârşitul anilor optzeci, începutul anilor nouăzeci a apărut modelul orientat obiect de
organizare a datelor şi SGBD-urile orientate obiect ce implementau acest model
(exemple:Gemstone, O2, Jasmine etc.). Aceasta este generaţia a treia de SGBD care este în
plină dezvoltare acum.
Până la sfârşitul
Anilor’60
Sfârşitul anilor’60
generaţia I
Începutul anilor’70
Sfârşitul anilor’70
Începutul anilor’80 generaţia a II-a
Sfârşitul anilor’80
Începutul anilor’90 generaţia a III-a
Evoluţia SGBD-urilor
In acest moment, în lume, cea mai mare parte a bazelor de date sunt realizate cu SGBD
relaţionale, o foarte mică parte cu SGBD de generaţia întâi şi câştigă tot mai mult teren cele
realizate cu SGBD orientate obiect.
La trecerea de la o generaţie la alta de SGBD s-au urmărit următoarele aspecte:
1. Păstrarea aspectelor fundamentale care dau conceptul de SGBD: obiectivele, funcţiile şi
componentele. Desigur, la fiecare generaţie apar şi o serie de elemente specifice, de
nuanţă, care însă nu schimbă fundamentele conceptului.
1. doar limbaje de programare
2. SGBD ierarhice
3. SBGD reţea
4. SBGD relaţionale
5. SGBD orientate obiect
2. Încadrarea unui SGBD într-o generaţie se face în funcţie de modelul de date
implementat. Sunt luate în considerare toate cele trei elemente care caracterizează
modelul de date: definirea structurii modelului (entităţile şi legăturile dintre ele),
operatorii de prelucrare, restricţiile de integritate.
3. Îmbunătăţirea organizării datelor în memoria externă prin implementarea unui model mai
performant. Se urmăreşte creşterea independenţei logice şi fizice (până la total),
asigurarea unor limbaje de descriere a datelor (LDD) cât mai performante şi automatizate,
asigurarea unor limbaje de manipulare a datelor (LMD) puternice, asigurarea unor
limbaje de regăsire neprocedurale (exemplu SQL), reducerea şi controlul redundanţei.
4. Îmbunătăţirea accesului la date prin: acces după mai multe chei, acces cocurent,
optimizarea accesului, creşterea securităţii datelor.
5. Oferirea unor facilităţi de utilizare tot mai performante: generatoare specializate, interfeţe
cu alte limbaje de programare, interactivitatea.
6. Diversificarea tipurilor de date ce pot fi utilizate, diversificarea modului de lucru (local
sau reţea), precum şi a tipurilor de aplicaţii ce pot fi dezvoltate. Acest lucru înseamnă că SGBD-
urile se doresc a avea o extensibilitate cât mai mare, care să le permită adaptarea la nou.
7. Utilizarea unor SGBD-uri din generaţiile precedente în paralel cu dezvoltarea unei noi
generaţii.
8. Tendinţa de fundamentare teoretică şi standardizare a conceptelor din fiecare nouă
generaţie de SGBD apărută, ceea ce conferă acestora robusteţe şi deschidere.
Obiectivele unui SGBD
Obiectivul principal al unui SGBD este furnizarea unui mediu eficient, adaptat utilizatorilor
care doresc să consulte sau să actualizeze informaţiile conţinute in baza de date. Bazele de date sunt
concepute pentru a prelucra un volum mare de informaţii. Gestiunea acestora impune nu numai o
structurare riguroasa a datelor, dar si o raţionalizare a procedurilor de acces si prelucrare.
Obiectivul principal impune realizarea unui set minim de obiective:
Obiectiv general
Set minim de
obiective
1.Asigurarea independenţei datelor Se spune că o aplicaţie informatică depinde de date, dacă modificarea structurii de memorare a
datelor sau a strategiei de acces la date afectează şi aplicaţia. Independenţa datelor faţă de aplicaţie
poate fi:
Suport software complet pentru dezvoltarea SBD
1. Independenţa datelor 2. Redundană minimă şi
(logică, fizică). controlată.
3. Facilitaţi de utilizare a 4. Protecţia datelor (securi-
datelor. tate, integritate).
5. Partajabilitatea datelor. 6. Legaturi între date.
7. Performanţe globale ale
aplicaţiei.
-fizică, adică modul de memorare a datelor ţi tehnicile fizice de memorare (strategia de acces),
pot fi aschimbate fără a rescrie programele (exemplu, se poate face acces secvenţial, apoi se poate
indexa şi face un acces direct);
-logică, adică structura de date poate fi schimbată (deoarece este păstrată în dicţionarul
bazei de date) fără a rescrie programele (exemplu, se poate adăuga în structură un nou câmp).
Necesitatea asigurării independenţei datelor faţă de programele de aplicaţie, de către SGBD,
este dată de următoarele aspecte:
1. Diferite aplicaţii au nevoie de viziuni diferite ale utilizatorului asupra aceloraşi date. O bază de
date este realizată pentru o gamă largă de utilizatori, care au la dispoziţie un volum mare de date.
SGBD-ul trbuie să-I permită la un moment dat unui utilizator să „vadă” (să-şi construiască o
viziune) doar o parte din baza de date şi anume numai acelr date care îl interesează;
2. Administratorul bazei de date trebuie să aibă libertatea de a schimba structura de memorie sau
strategia de acces, ca răspuns la cerinţele noi apărute, fără a modifica aplicţiile existente (sistem
deschis). După darea în folosinţă a unei baze de date pot apare schimbări de standarde sau norme, se
pot modifica priorităţile aplicaţiei, se pot modifica unităţile şi modul de memorare ale datelor etc.
Cu alte cuvinte, dinamica lumii reale încojurătoare va genera modificări în baza de date. SGBD-ul
va permite aplicaţiei informatice să funcţioneze cu programele existente şi să convertească datele;
3.Baza de date existentă la un moment dat, precum şi programele de aplicaţie care au fost folosite o
perioadă de timp, reprezintă o investiţie majoră la care nu trebuie să se renunţe pre uşor.
Cheltuielile pentru realizarea unei baze de date sunt mari, iar ele trebuie recuperate integral şi adus
un beneficiu.
2. Redundanţă minimă şi controlată a datelor
Spre deosebire de sistemele clasice (cu fişiere) de prelucrare automată a datelor, stocarea
informaţiilor în bazele de date se face astfel încât datele să nu fie multiplicate. Cu toate acestea,
uneori, pentru a realiza performanţe sporite, în ceea ce priveşte timpul de răspuns se acceptă o
anumită redundanţă a datelor. Aceasta va fi însă controlată pentru a se asigura coerenţa
(corectitudinea datelor) bazei de date.
Exemplu tipic de redundanţă controlată acceptată este cea apărută la proiectarea bazelor de
date relaţionale prin tehnica de normalizare.
3.Facilităţi de utilizare a datelor
Această facilitate presupune ca SGBD-ul să aibă nişte componente specializate pentru
diferite operaţii de utilizare:
- Folosirea datelor de către mai mulţi utilizatori în diferite scopuri (aplicaţii).
- De cele mai multe ori, o bază de date nu este realizată izolat. Mai ales în cazul realizării
unor aplicaţii informatice cu baze de date care fac parte dintr-un sistem integrat, dar nu numai,
datele de la o aplicaţie trebuie să poată fi utilizate în alte aplicaţii. Acest lucru reduce spaţiul de
memorare necesar şi efortul de încărcare/ validare a datelor.
- Accesul cât mai simplu al utilizatorilor la date, fără ca ei să fie nevoiţi să cunoască
structura întregii baze de date, acest lucru rămânând în sarcina administratorului bazei de date.
Utilizatorul final sau intensiv (neinformaticienii), care este beneficiarul aplicaţiei cu
baze de date, are puţine noţiuni de informatică. De aceea pe el nu îl interesează structura bazei de
date, ci numai o utilizare cât mai uşoară.Pentru acest lucru SGBD-ul trebuie să ofere instrumente
specializate pentru dezvoltarea de programe de aplicaţie cât mai prietenoase, care să dirijeze şi să
ajute beneficiarul în utilizarea bazei de date.
- Existenţa unor limbaje performante de regăsirea a datelor care permit exprimarea interactivă a
unor cerei de regăsire a datelor şi indicarea unor reguli pentru editarea informaţiilor solicitate.
Regăsirea datelor este una din operaţiile cele mai folosite într-o bază de date. Fie că este folosită
pentru actualizare sau pentru consultare, sub forme diferite, regăsirea datelor este realizată la
cererea tuturor tipurilor de utilizatori ai bazei de date. Din acest motiv SGBD-urile sunt puternice în
ceea ce privesc facilităţile de regăsire. Acestea au atins performanţe ridicate în sistemele relaţionale,
multe din facilităţile de regăsire de aici fiind preluate în generaţia a treia de SGBD-uri.
- Spre deosebire de sistemul clasic de prelucrare pe fişiere, unde există un singur criteriu de
adresare(cel care a stat la baza organizării fişierului) în cazul bazelor de date, sistemul de gestiune
trebuie să ofere posibilitatea unui acces multicriterial.În timp ce modificarea critriului la fişierele
clasice implică reorganizarea lor, la bazele de date schimbarea criteriului nu afectează cu nimic
datele. SGBD-ul stocheazădatele în entităţile bazei de date şi permite mai multe căi de acces..Pentru
diferite moduri de adresare SGBD creează dinamic, la momentul execuţiei, o serie de fişiere
anexe(de index etc.) care lasă neschimbate entităţile bazei de date.
4. Protecţia datelor
În sistemele de bază de date, protecţia datelor se asigură sub două aspecte: securitatea şi
integritatea.
Securitatea (confidenţialitatea) datelor semnifică faptul că accesul la date se face numai printr-
o autorizare corespunzătoare şi doar controlat(sarcina administratorului bazei de date cu ajutorul
SGBD-ului).
În acest sens, SGBD-ul permite: autorizarea şi controlul accesului la date, utilizarea viziunilor,
realizarea unor proceduri speciale, criptarea datelor.
a) Autorizarea şi controlul accesului la date este realizat de SGBD prin intermediul parolelor.
Acestea identifică clasele de utilizatori, cu anumite drepturi de acces, la anumite date.
Clasele de utilizatori pentru care se poate autoriza accesul la baza de date sunt:
- Utilizatorii obişnuiţi care nu au în proprietate obiecte şi nu au alte privilegii decât cele date de
administratorul BD.
- Proprietarii de obiecte (tabele, viziuni, proceduri etc.) sunt utilizatorii care îşi creează anumite
obiecte. Implicit proprietarul unui obiect are toate privilegiile asupra acestuia, putând să le revoce
sau să le transmită altor utilizatori.
- Administratorul BD este utilizatorul care are implicit toate drepturile asupra datelor şi dreptul de
a revoca sau stabili privilegii pentru ceilalţi utilizatori.
Privilegiile diferiţilor utilizatori sunt gestionate de SGBD astfel: un anumit subiect (utilizator)
poate realiza anumite acţiuni, asupra anumitor obiecte, în limita anumitor restricţii (condiţii
suplimentare). Profilul utilizator este dat de nume (NAME), parola (PASS), nume grup, număr nivel
de acces.
b).Utilizarea viziunilor (view) este asigurată de SGBD pentru reprezentarea schemelor externe ale
bazei de date. Cu ajutorul viziunilor, SGBD-ul permite să se definească partiţii logice ale bazei de
date, definite pentru diferiţi utilizatori, în raport cu cerinţele acestora de acces la date. Securitatea
datelor este asigurată de SGBD prin definirea tuturor drepturilor necesare unui utilizator pentru o
viziune şi revocarea drepturilor pentru obiectele iniţiale.
c) Realizarea unor proceduri speciale de acces asupra datelor este permisă de SGBD. Aceste
proceduri scrise în LMD se păstrează în formă precompilată, iar anumitor utilizatori li se va acorda
dreptul de execuţie şi li se va interzice accesul direct la obiectele bazei de date.
d) Criptarea este asigurată de SGBD prin oferirea unor rutine de criptare (codificare) a datelor
apelate automat sau la cerere şi prin existenţa unor instrumente care permit utilizatorului să
realizeze propriile rutine de criptare. Criptarea şi decriptarea se realizează după algoritmi specifici,
cu o cheie (parolă) de acces la rutină.
Componentle unui sistem de criptare sunt:
- Algoritmul de criptare este o rutină care transformă datele iniţiale într-o
formă cifrată (codificată);
- Cheia de criptare este o valoare secretă (parola) care permite intrarea în
algoritmul de criptare;
- Algoritmul de decriptare este o rutină care treansformă datele din forma
criptată în cea iniţială:
- Cheia de decriptare este o parolă de intrare în algoritmul de decriptare.
Integritatea datelor se referă la corectitudinea (coerenţa) datelor şi este asigurată prin protejarea
acestora împotriva unor incidente intenţionate sau neintenţionate.
Componentele SGBD-ului asigură integritatea datelor (Fig.8.5.) tratând separat cauzele care pot
altera baya de date: integritatea semantică, controlul accesului concurent, salvarea/restaurarea.
a) Integritatea semantică este asigurată prin operaţii efectuate de SGBD asupra datelor ţi a
prelucrărilor. Aceste operaţii alcătuiesc un set de reguli numit restricţii de integritate. SGBD-ul
asigură astfel de restricţii implicite (rezultă din modelul de date implementat) şi explicite (proceduri
incluse în programele de aplicaţie).
b) Accesul concurent asigură coerenţa datelor şi este un obiectiv al SGBD-ului care se pune cu
acuitate mai ales la baze de date distribuite. În acest sens SGBD-ul are o unitate distinctă de
prelucrare a datelor numită tranzacţie, care este constituită dintr-o secvenţă de operaţii marcată de
puncte de început şi sfârşit. Tranzacţia poate fi controlată de SGBD implicit, când punctele de
început şi de sfârşit sunt automat definite, sau explicit, când punctele de început şi de sfârşit sunt
definite prin comenzi specifice.
La execuţia concurentă a tranzacţiilor SGBD-ul trebuie să asigure blocarea datelor utilizate la
un moment dat. Aceasta înseamnă că se interzice accesul celorlalte tranzacţii concurente la aceleaşi
date, până se termină tranzacţia curentă.
Tehnica de blocare utilizată de SGBD se poate aplica la nivelul întregii baze de date, a unui
fişier, a unei înregistrări sau chiar a unui câmp.Ea poate fi pentru citire (partajabilă) sau pentru
scriere (exclusivă).
Cele mai multe SGBD-uri realizează blocarea la nivel de înregistrare şi fişier, prin diferite
metode: setarea unui bit pentru resursa respectivă, construirea unei liste cu resursele blocate,
menţinerea resurselor blocate într-o zonă specială etc.
Interblocarea este situaţia in care două tranzacţii blochează anumite resurse, apoi solicită
fiecare resursele blocate de cealaltă. La nivelul de SGBD trebuie să existe facilitatea de prevenire
sau rezolvare a interblocării.
Prevenirea interblocării presupune că programele bochează toate resursele de care au
nevoie încă de la începutul fiecărei tranzacţii (greu de precizat).
Soluţionarea interblocării presupune că există nişte mecanisme pentru detectarea şi
eliminarea interblocării (de exemplu graful dependenţelor proceselor de executat).
c) Salvarea/restaurarea (backup/recovery) ca facilitate a SGBD-ului permite refacerea
consistenţei datelor care au fost alterate fizic din diferite motive.
Salvarea datelor este un proces de stocare prin realizarea de copii de siguranţă şi prin
jurnalizarea tranzacţiilor şi a imaginilor. SGBD-ul poate asigura salvarea automat sau la cererea
administratorului bazei de date.
Jurnalul tranzacţiilor este un fişier crat şi întreţinut de SGBD, în care se memorează
informaţiile despre tranzacţiile efectuate asupra bazei de date. Aceste informaţii sunt: codul
tranzacţiei, momentul începerii tranzacţiei, identificatorul utilizatorului care a lansat tranzacţia,
actualizările efectuate pe BD.
Jurnalul imaginilor se deosebeşte de cel al tranzacţiilor prin aceea că nu conţine descrierea
operaţiilor efectuate asupra BD, ci efectul acestora.
Există următoarele veriante:
Jurnalul cu imaginea înregistrărilor după actualizarea (after image), ce conţine copia
fiecărei înregistrări în forma de după efectuarea unei actualizări asupra ei.
Jurnalul cu imaginea înregistrărilor înainte de efectuarea unei actualizări (before image), ce
conţine copia fiecărei înregistrări ăn forma de dinaintea efectuarii unei actualizări asupra ei.
Jurnalul mixt ce conţine atât imaginea înregistrărilor dinainte de actualizare cât şi după
actualizare.
Restaurarea porneşte de la colecţii de date stocate prin salvare şi reface consistenţa bazei de
date, minimizând prelucrările pierdute. Restaurarea este asigurată de SBGD, dar se poate realiza şi
manual.
Restaurarea automată a BD este realizată de SGBD cu ajutorul fişierelor jurnal. Pentru a se
putea realiza acest lucru, SGBD realizează o paginare a BD şi la o cerere de regăsire,transferă o
astfel de pagină în memoria internă. Aici are loc prelucrarea ei şi abia după ce această prelucrare s-a
terminat complet, se face transferul paginii înapoi pe disc.Sincronizarea memoriei interne cu baza
de date şi fişierele jurnal, se realizează prin diferite tehnici: algoritmi specifici, executarea unor
puncte de verificare (check point) la intervale de timp sau la cerere etc.
La nivelul SGBD-ului pot exista o serie de parametrii de configurare care influenţează
procesul de restaurare automată. Aceşti parametrii se referă la: intervalul de restaurare, indicatorul
de restaurare (ce informaţii vor fi scrise în fişierul de erori) etc.
Restaurarea manuală a BD implică intervenţia administratorului pentru refacerea bazei de
date de pe un suport tehnic care a fost distrus. Cea mai recentă copie de siguranţă efectuată pentru o
BD afectată este încărcată şi se reiau prelucrările efectuate din momentul copierii până la
producerea defecţiunii. Restaurarea manuală se face prin deconectarea tuturor utilizatorilor de la
BD, încărcarea copiei şi reluarea lucrului.
5. Partajabilitatea datelor Partajabilitatea datelor se referă nu numai la aspectul asigurării accesului mai multor
utilizatori la aceleaşi date, ci şi la posibilitatea dezvoltării unor aplicaţii fără a se modifica structura
bazei de date. Problema pertajabilităţii se pune la nivel superior pentru SGBD-urile care permit
lucrul în reţea.
6. Legăturile între date
Legăturile între date corespund asocierilor care se pot realiza între obiectele unei aplicţii
informatice. Orice SGBD trebuie să permită definirea şi descrierea structurii de date, precum şi a
legăturilor dintre acestea, conform unui model de date. Fiecare tip de model de date permite
anumite legături între date. Un SGBD, care implementează un anumit model de date, va trebui să
asigure şi realizarea legăturilor dintre datele corespunzătoare în conformitate cu schema
conceptuală.
7. Performanţele globale
Performanţele globale ale aplicaţiei sunt influenţate de SGBD. Acesta trebuie să gestioneze
un volum mare de date de o complexitate ridicată, într-un anumit timp de acces rezonabil pentru
diferiţi utilizatori. Pentru toate aceste lucruri SGBD-ul foloseşte diferite metode de acces, tehnici de
optimizare, tipuri de date. Implementarea lor se face în componente specializate ale SGBD-ului.
Notă. Toate obiectivele de mai sus au fost avute în vedere la evoluţia SGBD-urilor,
fiecare generaţie îmbunătăţind performanţele.
Funcţiile unui SGBD
Realizarea obiectivelor prezentate anterior este asigurată de sistemele de gestiune a
bazelor de date printr-o serie de componente ce permit efectuarea unor operaţii specifice. În funcţie
de natura lor şi scopul urmărit, operaţiile pot fi grupate pe activităţi. Activităţile acceptă şi ele o
grupare pe funcţii astfel încât, una sau mai multe activităţi, relativ omogente, vor realiza o anumită
funcţie. Ţinând seama de complexitatea sistemului de gestiune, de facilităţile oferite de acestea, de
limbaje utilizate şi de modul de implementare al modelului de date, gruparea activităţilor pe funcţii
are un anumit caracter relativ.
Diferitele SGBD-uri, în funcţie de model de date implementat, au o serie de particularităţi
identificate prin operaţii şi activităţi specifice. Aceste aspecte specifice vor fi tratate în capitolele
aferente diferitelor tipuri de SGBD-uri.
În ciuda acestor particularităţi, există câteva funcţii general valabile pentru toate tipurile
de SGBD . Acestea sunt nişte funcţii de bază, pe care un sistem software, dacă nu le are în totalitate,
nu poate fi considerat SGBD. Iată care sunt aceste funcţii: descrierea datelor, manipularea datelor,
utilizarea şi administrarea bazei de date.
1. Funcţia de descriere a datelor SGBD-ul prin această funcţie, permite definire structurii bazei de date cu ajutorul limbajului de
definire a datelor (LDD). Definirea datelor poate fi realizată la nivel conceptual, logic şi fizic. Se
descriu atributele (câmpurile) din cadrul structurii bazei de date, legăturile dintre entităţile bazei de
date sau dintre atributele aceleiaşi entităţi, se definesc eventualele criterii de validare a datelor,
metodele de acces la date, aspectele referitoare la asigurarea integrităţii datelor. Concretizarea
acestei funcţii este schema bazei de date, memorată în cod intern. Memorarea se face într-un fişier,
ceea ce permite afişarea şi actualizarea structurii bazei de date, în orice moment.
Această funcţie a fost mult automatizată în timp, LDD având acum puţine comenzi.LDD este
specific fiecârui SGBD, dar el întotdeauna realizează descrierea datelor conform elementelor
modelului de date pe care îl implementează SGBD-ul respectiv.Astfel se realizează definirea şi
descrierea entităţilor si a caracteristicilor lor, definirea legaturilor dintre obiecte (asocierile) şi a
regulilor de integritate specifice modelului de date.
După realizarea funcţiei de descriere, într-un SGBD, entitaţile bazei de date există deja create ca
fişiere, darn u conţin datele propriu-zise, ci numai structura bazei de date (schema bazei de date).
2. Funcţia de manipulare a datelor
Funcţia de manipulare este cea mai complexă şi realizează actualizarea şi regăsirea datelor din
baza de date, cu ajutorul limbajului de manipulare a datelor (LMD).
Sunt realizate următoarele activităţi: încărcarea, actualizarea, prelucrarea şi regăsirea datelor.
a) Încărcarea datelor în baza de date se realizează prin operaţii automatizate sau programate ce
asigură şi criteriile de validare necesare.
b) Actualizarea bazei de date constă în operaţii de adăugare, modificare şi ştergere de
înregistrări.La operaţiile de adăugare şi de modifcare se pastreaza aceleaşi criterii de validare care s-
au folosit şi la activitatea de încărcare a datelor.Actualizarea se realizeaza numai autorizat, prin
asigurarea unei protecţii corespunzătoare a datelor, pentru a se păstra coerenţa bazei de date.
c) Prelucrarea datelor se realizează prin operaţii de selecţie, ordonare, interclasare (compunere)
şi ventilare (descompunere) efectuate asupra entităţilor bazei de date.Acestea sunt, de obicei,
operaţii pregătitoare activităţii de regăsire a datelor.Multe din operaţiile de prelucrare sunt realizate
cu ajutorul operatorilor din modelul de date pe care îl implementează SGBD-ul.
d) Regăsirea (interogarea) datelor constă în operaţii de vizualizare (afişare pe ecran, imprimare
pe hârtie), răsfoire, editarea unor situaţii de ieşire.Situaţiile de ieşire pot fi intermediate sau finale şi
se pot obţine pe diferiţi suporţi tehnici de informaţie (ecran, hârtie, mediu magnetic, mediu optic).
Ele pot avea cele mai diferite forme (punctuale, liste, rapoarte, grafice, imagini, sunet, video) şi se
pot obţinedupă cele mai diferite criterii de regăsire.
Note.
- Funcţia de manipulare a datelor este cea mai folosită în bazele de date şi este cea mai bine
suportată de SGBD faţă de orice alt sistem de gestionare a datelor din memoria externă, care există
până acum.
- Aşa cum arătam mai sus, funcţia de manipulare este asigurată în SGBD de un LMD. Acesta
trebuie să respecte restricţiile de integritate a datelor şi să implementeze operatorii din modelul de
date pe care se bazează SGBD-ul căruia îi aparţine.
LMD poate fi cu limbaj gazdă sau cu limbaj propriu.Cele cu limbaj gazdă sunt dezvoltate prin
adaptarea unor limbaje universale de programare (Cobol, Pascal, C etc.) la cerinţele de lucru ale
SGBD-ului. Se îmbină astfel puterea unui limbaj universal cu necesităţle de regăsire a datelor
(exemplu:ORACLE). Cele cu limbaj propriu sunt dezvoltate printr-un limbaj specific capabil să
unească puterea proceduralului cu regăsirea dintr-un anumit tip de date (exemplu: Visual Foxpro).
- Pentru activitatea de regăsire există limbaje de interogare specializate care pot fi incluse în
LMD sau pot exista ca atare. Ele au aparut datorită lărgirii gamei de utilizatori ai bazelor de date,
care îi include şi pe nuinformaticieni tot mai mult. Pentru aceştia au fost necesare facilităţi de
regăsire simple şi prietenoase, apropiate de modul de lucru şi de gândire uman. În acest sens,
limbajele relaţionale (exemplu SQL) au cele mai bune performanţe.
3. Funcţia de utilizare a bazeide date
Funcţia de utilizare asigură mulţimea interfeţelor necesare pentru comunicarea tuturor
utilizatorilor cu baza de date. Pentru a realiza această funcţie SGBD-ul tu trebuie să asigure facilitaţi
pentru mai multe categorii de utilizatori ai bazei de date: neinformaticieni, specialişti
(informaticieni), administratorul.
a) Utilizatorii neinformaticieni reprezintă principala categorie a beneficiarilor de informaţii
(utilizatori finali şi intensivi) di baza de date. SGBD-ul le oferă acestora limbaje neprocedurale şi
alte facilitaţi de interogare (generatoare, utilitare etc.) a bazei de date într-o formă simplă şi
interactivă. Aceşti utilizatori nu trebuie să cunoască structura bazei de date şi nu trebuie să ştie să
programeze, SGBD-ul ajutându-i interactiv în utilizarea bazei de date. În acest sens SGBD-ul oferă:
meniuri cu opţiuni sugestive, ferestre, şabloane pentru diferite forme, asistenţi tip Wizard,
autodocumentarea (help-uri, mesaje/ferestre explicative).
b) Utilizatori specialişti în informatică crează structura bazei de date şi realizează proceduri
complexe de exploatare a bazei de date. SGBD-ul oferă acestor utilizatori limbajul de descriere şi
limbajul de manipulare a datelor precum şi interfeţe cu limbaje universale. Acestea sunt de
complexitate şi putere diferită, de la un SGBD la altul, oferind atât elemente neprocedurale cât şi
procedurale specialistului în informatică. Cu aceste elemente el descrie schema bazei de date şi
asigură manipularea complexa a datelor.
Pentru realizarea bazei de date, SGBD-ul oferă specialistului şi elemente de CASE (Computer
Aidede Software Engineering). Acestea îl ajută în diferitele activitaţi care intervin in etapele de
proiectare a bazei de date.
b) Administratorul bazei de date, care un utilizator special şi are un rol hotărâtor ăn ceea ce
priveşte funcţionarea optimă a întregului sistem. Datorită importanţei acestei categorii de utilizatori,
SGBD-ul are o funcţie distinctă în acest sens.
4. Funcţia de administrare
Funcţia de administrare esteb complexă şi de competenţa administratorului bazei de date.
Administratorul, care are o bogată experirnţă de analiză, proiectare şi programare, organizează
şi administrează baza de date în toate etapele de realizare a acesteia.
Astfel el organizează baza de date conform unei anumite metodologii, realizează schema
(conceptuală) bazei de date, coordonează proiectarea bazei de date. Pentru toate aceste lucruri
SGBD-ul oferă o seri de elemente de CASE, precum şi o serie de utilitare specializate.
Îi etapa de exploatere a bazei de date, administratorul are rolul de a autoriza accesul la date
(acordă conturi, parole etc.), de a reface baza de date în caz de incidente (prin jurnalizare, copii), de
a utilize efficient spaţiul de memorie internă şi externă (prin organizare, rutine de optimizare), de a
realiza o serie de analize statistice din baza de date (numar şi tip şi utilizatori, numar de accese,
numar de actualizari etc.). Pentru fiecare dintre aceste activitaţi SGBD-ul oferă instrumente şi
tehnici de lucru.
În cazul lucrului în reţea de calculatoare cu baze de date distribuite, SGBD-ul are dezvoltate
foarte mult componentele destinate administratorului. Acest lucru este determinat de faptul că baza
de date este, în acest caz, de mare complexitate, datele sunt distribuite pe calculatoarele din reţea,
iar utilizatorii sunt de toate tipurile şi în număr mare.
În principal pentru funcţia de administrare, dar parţial şi pentru celelalte funcţii, SGBD-ul
asigură protecţia bazei de date. Aici vor fi prezentate aspectele esenţiale, urmând ca în continuare la
fiecare tip de SGBD să se precizeze prin exemple şi aspectele specifice ce apar.
Clasificarea SGBD-urilor
Diversitatea SGBD-urilor, care care au fost şi care sunt în exploatare pe diferite calculatoare şi
sub diferite sisteme de operare, impune o clasificare a lor după diferite criterii.
1) După sistemele de calcul pe care le implementează
- SGBD-ul cu limbaj gazdă este cel care are un limbaj de manipulare a datelor bazat pe unul
de nivel înalt (universal). Limbajul gazdă poate fi chiar un limbaj universal (Cobal, Pascal)
sau o extensie (adaptere) a unui astfel de limbaj. Avantajul acestei soluţii este acela că se
pot dezvolta proceduri complexe de program, se pot realiza interfeţe om-maşină foarte
bune, se valorifică experienţa de programare din limbajele de nivel înalt. (toate rezultă din
avantajele programării procedurale). Dezavantajul major este acela că formularea crerilor
de regasire se face mai greu, de multe ori într-un mod inaccesibil utilizatorilor finali. Acest
lucru este suplinit de SGBD prin alte componente specifice: generatoare, utilitare etc.
(exemplu: Oracle).
- SGBD-ul cu limbaj propriu (autonom) este cel care are un limbaj de manipulare a datelor
specific. Acest limbaj de programare propriu este procedural şi are marele avantaj că
permite implementarea tuturor facilităţilor de SGBD. În el se pot programa proceduri
complexe şi interfeţe puternice ca într-un limbaj universal, dar în plus se realizează un
acces uşor şi optimizat la baza de date. Dezavantajul este că un astfel de limbaj nu poate fi
utilizat decât de specialiştii în informatică (exemplu limbajul din Visual FoxPro).
Tendinţa actuală este ca SGBD-ul să aibă implementat, pe lângă un limbaj procedural, şi un
limbaj de regăsire neprocedural, care să permită formularea de cereri de regăsire uşor, de către toţi
utilizatorii bazei de date. În axest sens, majoritatea SGBD-urilor pentru microcalculatoare au
implementat, parţial sau total, limbajul SQL, care este şi standardizat internaţional.
2) După modelul logic de date implementat
- SGBD ierarhice sunt cele care implementează modelul de date arborescent (ierarhic) şi au
fost primele care s-au utilizat pentru gestionarea bazelor de date. Ele au o serie de avantaje
pentru domenii precise din lumea reală înconjurătoare, de exemplu tehnologia construcţiei
de maşini, dar au limitepentru alte domenii (exemplu: IMS).
- SGBD reţea sunt cele care implementează modelul de date reţea şi care au eliminat multe
din limitele celor ierarhice. Ele au o largă aplicabilitate pentru numeroase probleme din
lumea reală, dar sunt dificil de utilizat datorită complexitaţii ridicate (exemplu: IDMS).
- SGBD relaţionale sunt cele care implementează modelul de date relaţional şi au
aplicabilitate în majoritatea domeniilor din lumea reală. Ele pot fi folosite de o gamă largă
de utilizatori datorită facilitaţilor oferite (generatoare, limbaj neprocedural etc.) (exemple:
Oracle, Visual FoxPro, Paradox, Access, Informix, Progress).
- SGBD orientate obiect sunt cele care implementează modelul de date orientat obiect. Ele
se pretează bine la problemele foarte mari, de complexitate ridicată, precum şi pentru
tipurile noi de aplicaţii (proiectarea asistată, multimedia, sisteme deschise) (exemple: O2,
Orion, Jasmine).
3) După localizarea bazei de date
- SGBD centralizate sunt cele care gestionează datele amplasate într-o singură bază de date
centrală. La acestea au acces toţi utilizatorii autorizaţi pentru a efectua diferite operaţii de
manipulare a datelor. Toate calculatoarele care nu sunt legate în reţea şi lucrează cu baze
de date au instalat un SGBD centralizat.
Tot un SGBD centralizat, dar cu facilitaţi de lucru în reţea, trebuie instalat şi în reţelele de
calculatoare care au plasată baza de date pe un singur calculator (de obicei pe server),
(exemplu: Visual FoxPro, Access).
- SGBD distribuite sunt cele care gestionează datele amplasate pe mai multe calculatoare
dintr-o reţea tratându-le ca un tot unitar. Complexitatea acestor SGBD-uri este ridicată,
având componente speciale pentru realizarea conexiunilor şi tratarea distribuită a datelor
(exemplu: Oracle, DB2, Informix).
SISTEMUL DE GESTIUNE A BAZELOR DE DATE MICROSOFT ACCESS 2002
Prezentare generală a S.G.B.D. Access 2002
Sistemul de gestiune a bazelor de date Microsoft Access menţine avantajele sistemelor de
gestiune, asigurând astfel o interfaţă între baza de date şi utilizator:
Permite definirea, consultarea şi actualizarea datelor şi în plus, partajarea acestor date
între mai mulţi utilizatori;
Interogarea bazei de date se realizează fie în mod grafic, utilizând interfaţa QBE
(Query By Exemple), fie utilizând limbajul SQL (Standard Query Language);
Permite realizarea unor aplicaţii complexe utilizând limbajul Microsoft Visual Basic;
Oferă uşurinţă în realizarea importului / exportului de date către alte aplicaţii ale
pachetului Microsoft Office sau alte SGBD-uri relaţionale (ex. FoxPro, dBase, Paradox);
Este autodocumentat prin Help;
Conţine instrumente Wizard care permit utilizatorului crearea într-o manieră foarte
simplă a obiectelor bazei de date;
Permite accesul la baza de date din reţeaua Internet, fiind un instrument util pentru
publicarea informaţiilor în paginile Web;
Permit personalizarea bazei de date;
Se fundamentează pe concepte noi, cum ar fi conceptele de obiecte, proprietăţi ale
obiectelor, eveniment, procedură declanşată la apariţia unui eveniment, metode la care
obiectele reacţionează în momentul procedurii unui eveniment, programarea orientată pe
obiecte şi evenimente.
Microsoft Access 2002 reprezintă o variantă îmbunătăţită pentru prelucrarea bazelor de date
relaţionale. Aceasta necesită un sistem de operare Microsoft Windows 98, Microsoft Windows 2000
sau Microsoft Windows NT.
Microsoft Access 2002 este asemănător ca aspect şi ca impresie cu Microsoft Access 2000,
versiunea anterioară a acestui program performant pentru bazele de date; oferă acelaşi sistem de
meniuri şi baze de instrumente adaptabile din Microsoft Access 2000, care particularizează
comenzile şi pictogramele din meniuri şi bazele de instrumente pe baza comenzilor utilizate cel mai
adesea.
Microsoft Access 2002 oferă o serie de caracteristici noi cum ar fi:
Vizualizări PivotChart şi PivotTable
Microsoft Access 2002 introduce vizualizări PivotTable şi PivotChart în tabele, interogări,
vizualizări, proceduri stocate, funcţii şi formulare.
Se pot efectua analize de date şi elabora soluţii complexe bazate pe vizualizările PivotTable
şi PivotChart mai rapid. Vizualizările PivotTable şi PivotChart se salvează ca pagini de acces la
date ce pot fi văzute cu Microsoft Internet Explorer 5 sau versiuni mai recente.
Suport XML
În afară de a fi tehnologia standard de interschimbare a datelor în Web, limbajul extensibil de
marcare (XML) devine rapid, tehnologia preferată pentru schimbul de date între aplicaţiile software
generale. Microsoft Access 2002 furnizează modalităţi puternice, intuitive de partajare a datelor
XML indiferent de diferenţele de platformă, format de date, protocol, schemă sau reguli de activitate
Microsoft Access furnizează, de asemenea, metode pentru manipularea mai uşoară a datelor,
simplificând crearea şi aplicarea schemelor şi foilor de stiluri. De exemplu, se poate utiliza
Microsoft Access pentru a crea o schemă care descrie structura datelor, apoi se trimite schema
furnizorilor în aşa fel încât aceştia să cunoască exact cum trebuie să arate datele în facturile lor.
Suport extins pentru proprietăţi cu Microsoft SQL Server 2000.
Integrarea predefinită între Microsoft Access 2002 şi Microsoft SQL Server 2000 s-a
îmbunătăţit semnificativ prin includerea suportului pentru proprietăţi extinse ale bazelor de date
SQL în cadrul proiectului Access.
Dus - Întors
Se poate lucra cu fişiere Access 2000 în Access 2002 fără conversia formatului de fişiere.
Acest mod de lucru permite partajarea mai uşoară cu fişiere de baze de date din versiuni diferite cu
alţi utilizatori Access
Anulări şi refaceri multiple
Există acum posibilitatea de anulare şi de refacere a mai multe acţiuni în modul Vizualizare
proiect în toate obiectele din bazele de date Microsoft Access şi în vizualizările şi procedurile
stocate şi funcţiile din proiectul Microsoft Access
Pagini de acces la date actualizabile off-line
Lucrul Off-line cu baze de date în proiectul Access, şi actualizare automată la reconectarea
pe serverul SQL. Modificările la paginile deconectate sunt efectuate la un proiect Access conectat la
un Microsoft SQL Server 2000 Desktop Engine local.
Consemnarea erorilor de conversie
Listarea erorilor apărute la conversia din Access 95 sau versiuni ulterioare, ceea ce permite
identificarea acestora şi depanarea lor mai rapidă.
Coexistenţa subformulare/subrapoarte în Design view
Este posibilă deschiderea subformularelor şi subrapoartelor în propriile lor ferestre Design
view din formular sau raport sau din meniul View. Îmbunătăţirea defilării uşurează lucrul cu
subformulare şi subrapoarte în modul Design view.
Securitatea parolei în proiectul Access
Este posibilă acum modificarea parolei de conectare specificată în proiectul Access conectat
la o bază de date Microsoft SQL Server 6.5 sau versiuni ulterioare, direct din domeniul Access 2002.
Expertul pentru tabele legate
Expertul pentru tabele legate este un ghid pentru legarea tabelelor la o baza de date SQL
Server, acest lucru realizându-se în cadrul proiectului Access.
Caracteristici de accesibilitate îmbunătăţite
Microsoft Access 2002 uşurează şi mai mult lucrul cu formulare din formulare şi rapoarte:
Prin apăsarea tastei F8 în modul Design view pentru formular sau raport, se afişează
lista de câmpuri.
Prin apăsarea pe tastei ENTER după selectarea unui câmp în lista de câmpuri în
modul Design view pentru formular sau raport, se va adăuga automat câmpul pe
suprafaţa proiectului formularului sau raportului.
Prin apăsarea combinaţiei de taste CTRL+TAB, se va deplasa focalizarea dintr-o
secţiune de formular sau de raport, la o subsecţiune.
Au fost adăugate două valori suplimentare (1000% şi 500%) la opţiunea Zoom din
examinare înaintea imprimării.
Documente Web şi site-uri Web
Salvaţi documentele Microsoft Office ca pagini Web pentru versiunile 3.0 - 6.0 ale diverselor
browsere Web şi acordaţi cititorilor cea mai bună posibilitate de vizualizare posibilă.
Din orice program Microsoft Office, este posibil să salvaţi documente în site-uri Web din
MSN. Acest lucru oferă un spaţiu de colaborare instantanee, unde este posibil să partajaţi fişiere cu
alte persoane.
Salvaţi un site Web ca fişier unic. Un format de fişier de tip arhivă Web specială este
disponibil in Microsoft Access, Microsoft Excel, Microsoft Power Point, Microsoft Publisher şi
Microsoft Word. Acest format de fişier permite salvarea tuturor elementelor unui site Web, inclusiv
text şi reprezentări grafice, într-un singur fişier.
Deschideţi pagini Web Office pentru editare din browser. Programele Microsoft Office
recunosc paginile în format HTML pe care le-au generat. Este posibil să deschideţi un document
Office pe care l-aţi salvat ca pagină Web, în programul în care a fost creat, direct din Microsoft
Internet Explorer.
Protecţie mărită contra viruşilor de macrocomandă
Administratorii de reţea pot elimina Microsoft Visual Basic for Applications, limbajul de
programare al Microsoft Office, când se porneşte aplicaţia Microsoft Office. Acest lucru scade
posibilitatea răspândirii viruşilor prin documente Microsoft Office.
Adăugarea panourilor pentru taskuri
Una dintre cele mai importante schimbări din mediul Microsoft Access (şi din toate
aplicaţiile pachetului Microsoft Office XP, cum ar Microsoft Word 2002, Microsoft Excel 2002 şi
Microsoft PowerPoint 2002) este introducerea panoului pentru taskuri din aplicaţia Microsoft
Office. Panoul pentru taskuri este un panou special care apare în partea dreaptă a ferestrei de
aplicaţie Microsoft Access când folosiţi anumite caracteristici Access (caracteristici care erau
controlate anterior prin intermediul casetelor de dialog)
Adăugarea dictării vocale şi a comenzii vocale
În cazul în care calculatorul este echipat cu o placă de sunet, difuzoare şi cu un microfon se
pot dicta informaţii în tabele Access. Se mai pot utiliza comenzile vocale pentru a activa sistemul de
meniuri şi barele de instrumente din Access.
Crearea unei baze de date
Pentru a crea o bază de date se lansează în execuţie sistemul Microsoft Access, apare panoul
pentru taskuri care oferă posibilitatea de a selecta una dintre opţiunile ferestrei Microsoft Access.
(Fig. 3.1)
Utilizatorul are următoarele opţiuni:
deschiderea unei baze de date (Open a file);
crearea unei baze de date (Blank Database);
accesarea unei baze de date (Blank Date Access Page);
crearea unui nou proiect pe baza unor date existente (Project Existing Data);
crearea unui nou proiect cu date noi (Project New Data)
crearea unei baze de date, proiect sau pagină de Web având ca punct de plecare baza de
date existentă (New from existing file);
crearea unei baze de date, proiect sau pagină de Web pe baza unor machete predefinite
care se pot afla fie pe sistemul pe care se află instalat SGBD Access, fie pe site-ul
www.Microsoft.com, legătură care se face automat dacă sistemul dispune de o legătură
Internet (New from template);
Fig. 3.1
crearea unei baze de date, proiect sau pagină Web pe baza unor documente aflate în
reţeaua Intranet sau Internet (Add Web Folder).
La accesarea opţiunii Add Web Folder apare o casetă de dialog care prezintă 2 opţiuni
Create a shortcut to an existing Web Folder (Documentele cu care se lucrează se află
într-un director aflat în reţeaua Internet sau Intranet)
Create a new Web Folder (Dacă dorim să creem un nou director în reţeaua Internet sau
Intranet în care să se regăsească documentele folosite) permite deschiderea meniului Help
(Microsoft Access Help)
La alegerea opţiunii de creare a unei baze de date (Blank Database) pe ecran se afişează
caseta de dialog File New Database (Fig.3.2)
În rubrica File name se precizează numele bazei de date şi apoi se accesează butonul Create.
Pe ecran se afişează fereastra Database; formatul implicit de salvare a fişierului se face în
format Access 2000.
S-a creat un fişier cu extensia .mdb (management data base) în care se vor realiza obiectele
bazei de date (tabele care sunt obiecte de bază, obiectele de tip cerere, obiectele de tip formă,
obiecte de tip raport, obiecte de tip macro).
Obiecte tip într-o bază de date ACCESS
Fereastra Database conţine 7 tipuri de obiecte:
Tables - este un obiect definit de utilizator, în care sunt stocate datele în format rând, coloană
similar celui folosit în calculul tabelar. Fiecare coloană a tabelului este denumită câmp, iar fiecare
Fig. 3.2
Fig. 3.3
câmp al tabelului reprezintă o înregistrare.
Queries - sunt destinate găsirii datelor din tabele sau prelucrării acestora.
Interogările sunt folosite pentru:
afişarea numai anumitor înregistrări care îndeplinesc criteriile specificate;
crearea unor noi tabele;
ştergerea, modificare sau actualizarea înregistrărilor dintr-un tabel.
Forms - afişează datele conţinute în tabele sau interogări şi permit introducerea altora noi,
modificarea sau ştergerea celor existente. Formularele reprezintă interfaţa între utilizator şi o bază
de date.
Reports - este un obiect prin intermediul căruia datele conţinute în tabele sau interogări sunt
prezentate în format printabil.
Pages - În situaţia în care se doreşte accesarea în cadrul reţelei Intranet sau Internet a bazei
de date.
Macros - definesc o serie de comenzi pe care sistemul Microsoft Access le execută automat
la apariţia unor evenimente.
Module - conţin codul de programare Microsoft Access.
Fiecare obiect tip este accesibil după ce s-a deschis baza de date. Pentru a deschide o bază de
date se alege meniul File, opţiunea Open.
Dezvoltarea rapidă a unei aplicaţii
Se dezvoltă rapid o aplicaţie de evidenţă a furnizorilor . Pentru a rezolva această aplicaţie
trebuie să creem în baza de date (EvidFurniz) două tabele Furnizori şi Factura.
Tabela Furnizori are următoarea structură:
Furnizori (cod furniz., den furniz., adresa, banca, cont banca).
Iar tabela Factura are următoarea structură:
Factura (nr. Fact., data fact., val. Fact., cod furniz.).
Observaţie:
Câmpul subliniat cu linie continuă este cheie primară în tabel iar câmpul subliniat cu linie
punctată este cheie externă.
Etapele care trebuie parcurse sunt:
se alege opţiunea BlankDatabase din panoul pentru taskuri Microsoft Access;
pe ecran se afişează caseta de dialog Create File New Database unde trebuie să se
tasteze numele bazei de date (EvidFurnizori). Numele bazei de date se tastează în rubrica
File name şi apoi se selectează butonul Create.
În baza de date trebuie incluse cele două tabele (Furnizori şi Factura). Acest lucru se poate
face prin exploatarea ferestrei Database şi anume:
se selectează eticheta Tables şi apoi click pe butonul New;
se afişează pe ecran fereastra New Table (Fig. 3.4)
se alege opţiunea Design View şi apoi click pe butonul OK;
se afişează fereastra Table în care trebuie introduse câmpurile tabelului creat.
În coloana FieldName se tastează numele câmpului, în coloana DataType precizăm
tipul de dată şi în coloana Description se precizează un text explicativ.
În urma introducerii acestor elemente fereastra Table va arăta conform Fig. 3.5.
Pentru a salva tabelul trebuie să selectăm meniul File şi apoi opţiunea Save As.
În fereastra apărută se introduce numele tabelului Furnizori.
Observaţie:
Dacă nu se precizează câmpul ce constituie cheia primară, Access generează automat câmpul
ID tip AutoNumber care prin valorile sale, va identifica unic înregistrările de date.
După ce a fost creată structura tabelului trebuie introduse înregistrări. În fereastra Database
se selectează tabelul Furnizori şi se acţionează butonul Open şi apoi se introduc înregistrările (Fig.
3.6).
Fig. 3.4
Fig. 3.6
Fig. 3.5
Parcurgând aceleaşi etape, se creează tabelul Factura.
Se doreşte să se selecteze din tabela Furnizori numai aceia care sunt din Craiova şi au contul
la banca "BancPost".
Pentru rezolvarea acestei probleme se parcurg etapele:
se creează o cerere: din fereastra Database se selectează obiectul Queries şi apoi se
selectează butonul New. Pe ecran se afişează caseta de dialog New Query. Pentru cereri
simple se selectează butonul OK. (Fig. 3.7)
se precizează sursa de date din caseta de dialog Show Table selectând tabela Furnizori
(Fig. 3.8).
Fig. 3.8
în interfaţa QBE, care se va afişa pe ecran sunt specificate câmpurile necesare: den
furnizor, adresa, banca; aceste câmpuri sunt selectate prin dublu click din tabela
Furnizori aflată în partea de sus a ferestrei.
La intersecţia dintre câmpul Adresa şi linia Criteria se tastează "Craiova" iar la intersecţia
dintre Bancă şi linia Criteria se tastează “BancPost” (Fig. 3.9).
Fig. 3.9
Fig. 3.7
Pentru a vedea rezultatul interogării se selectează meniul View şi apoi opţiunea Datasheet
View (Fig. 3.10).
Observaţie:
Microsoft Access generează automat exprimarea cererii în limbajul SQL. Dacă se selectează
meniul View şi apoi opţiunea SQL View, pe ecran se afişează fereastra SQL al cărui conţinut este
Fig. 3.11.
Cererea se poate simplifica de către utilizator folosind limbajul SQL Standard.
Cererea din Fig. 3.11 se poate scrie SQL Standard astfel:
SELECT den furniz, adresa, banca
FROM furnizori
WHERE adresa = “craiova” AND banca = “banc post”
Unde:
SELECT – precizează ce se selectează
FROM - din ce tabelă
WHERE - condiţia care trebuie să o îndeplinească înregistrările pentru a fi selectate
Operaţiile de actualizare a bazelor de date sau de afişare se pot face folosind machete numite
formulare.
Pentru a crea automat un formular se selectează tabela sau interogarea dorită în fereastra
Fig. 3.10
Fig. 3.11
Database şi apoi se alege meniul Insert, opţiunea AutoForm.
Pe ecran se afişează un formular tip coloană (Fig. 3.12).
Formularul construit automat poate fi apoi modificat; pentru a fi modificat se alege meniul
View, opţiunea Design View.
De exemplu, dorim să creem un control care să ne poziţioneze pe următoarea înregistrare.
Pentru a crea un astfel de control trebuie parcurse etapele:
plasarea şi definirea unui buton de comandă din trusa de instrumente Toolbox. (Fig.
3.13);
prin glisare se va plasa butonul de comandă folosind asistentul Command Buton
Wizard.
Din lista de opţiuni disponibile "Categories” se selectează “Record Navigation” şi apoi
se selectează butonul Next.
În noua fereastră se alege simbolul specificat pentru controlul respectiv şi apoi se
selectează butonul Next. (Fig. 3.14).
Fig. 3.13
Fig. 3.14
Fig. 3.12
În ultima fereastră se cere un nume pentru butonul de comandă şi apoi se selectează
butonul Finish.
În final grila de proiectare arată conform Fig. 3.15.
În acelaşi mod se creează şi butoane pentru ştergerea unei înregistrări , pentru adăugarea
unei înregistrări, etc. Se doreşte ca rezultatul interogării unei baze de date să fie prezentat sub forma
unei situaţii finale. Pentru aceasta utilizatorul trebuie să construiască un obiect tip raport.
Din fereastra Database se alege obiectul Reports şi apoi butonul New. Pe ecran apare
fereastra New Reports unde se alege sursa de date (Tabelul Furnizori) (Fig. 3.16).
Se alege opţiunea AutoReport: Tabular iar pe ecran se afişează raportul solicitat (Fig. 3.17).
Modelul raportului generat poate fi îmbunătăţit: se selectează meniul View şi apoi opţiunea
Fig. 3.17
Fig. 3.16
Fig. 3.15
Design View.
Pe ecran se afişează modelul raportului pe care utilizatorul îl poate modifica.
OBIECTE DE TIP TABEL
Reprezintă obiectele bazei de date în care se stochează datele. Fiecare coloană a tabelei este
denumită câmp, iar fiecare rând al tabelului constituie o înregistrare.
La crearea unui tabel se solicită definirea câmpurilor, atribuindu-se fiecăruia o denumire
unică, având un tip de dată şi o dimensiune bine precizată
O modalitate de a crea un tabel este aceea de a activa butonul New, având posibilitatea de a
alege cinci opţiuni din fereastra New Table
1. Datasheet View - permite crearea unui tabel în modul foaie de date; este utilizat pentru
inserarea datelelor şi vizualizare. Apoi executăm click pe butonul OK (Dacă se renunţă la crearea
tabelului executăm click pe butonul Cancel). Se va deschide un tabel cu câmpuri generice: Field 1,
Field2...
Pentru a schimba numele câmpurilor se selectează meniul Format, opţiunea Rename
Column, se tastează noul nume şi se apasă tasta Enter. (Fig 4.1).
2. Design View - permite crearea unui tabel în modul de proiectare.
Pentru a realiza în acest mod un tabel efectuăm click pe eticheta Tables şi apoi click pe
butonul New. Din caseta de dialog apărută selectăm opţiunea Design View şi apoi click pe butonul
OK.
În fereastra apărută în coloana FieldName tastăm numele câmpului, în coloana DataType
precizăm tipul de dată pentru fiecare câmp iar în coloana Description se precizează de către
utilizator un text explicativ având ca scop să descrie câmpul. (Fig. 4.2).
Cheia primară reprezintă un identificator unic pentru un tabel; aceasta reprezintă un atribut
sau un grup de atribute. Pentru a stabili un câmp al tabelului cheie primară trebuie să parcurgem
etapele:
tabelul trebuie să fie deschis în modul Design View;
se selectează câmpul căruia vrem să-i atribuim această identificare;
Fig. 4.1
se selectează meniul Edit şi se alege opţiunea Primary Key;
Rezultatul acestor etape este apariţia unui simbol sub formă de cheie în dreptul câmpului
selectat.
Dacă se încearcă închiderea noului tabel în modul de vizualizare Design View fără a
specifica o cheie principală, apare un mesaj care anunţă că nu a fost atribuită nici o cheie primară.
Executând click pe butonul Yes în caseta de mesaj determinăm Acces-ul să creeze un nou
câmp AutoNumber în tabel şi-l specifică drept cheie primară. Se poate schimba numele acestui nou
câmp după cum este necesar. Pentru a introduce înregistrări în tabelă selectăm meniul View şi
alegem opţiunea Datasheet View.
Tipurile de date disponibile pentru câmpurile Access sunt:
text - sunt cel mai des folosite, astfel încât Access consideră acest tip ca fiind cel
prestabilit. Un câmp text are implicit 50 de caractere, dar se poate alege lungimea de
la 1 la 255;
memo - sunt utilizate pentru a oferi comentarii descriptive. Un câmp Memo nu poate
fi cheie primară şi se poate indexa după el;
number - admite numai numere (nu poate conţine litere, sau o dată calendaristică);
poate fi la rândul său de tip: Byte, Integer, Long Integer, Single, Double, Replication
ID, Decimal;
date/time - indică data calendaristică şi/sau ora;
currency - indică tipul valută, fiind un număr destinat să indice o valoare bancară, cu
15 cifre la partea întreagă, iar la partea zecimală până la sutimi de cenţi;
autonumber - datele de acest tip conţin o valoare numerică pe care Access o introduce
automat pentru fiecare înregistrare adaugată într-o tabelă;
yes/no - datele de acest tip pot primi valorile True/False şi pot fi afişate în una; din
formele True/False, respective On/Off;
OLE Object - include elemente grafice realizate din puncte, desene vectoriale, fişiere
cu semnale audio şi alte tipuri de date care pot fi create de o aplicaţie OLE Server;
Hyperlink - este un text sau o combinaţie de text cu numere stocat(ă) ca un text şi
folosit(ă) ca adresă a unei pagini Web. Este format(ă) din trei părţi: - textul afişat,
adresă şi subadresă;
Lookup Wizard - creează câmpuri care permit utilizatorului să aleagă valori din
cadrul altor tabele sau dintr-o listă de valori.
Fig. 4.2
În afară de definirea tipului de dată, pentru fiecare câmp se definesc o serie de proprietăţi
(care diferă în primul rând de tipul de dată ales şi de cerinţele aplicaţiei).
Zona în care se stabililesc proprietăţile câmpurilor este formată din urmatoarele opţiuni (Fig.
4.3).
Field Size - această propietate stabileşte numărul maxim de caractere care poate fi
stocat în tipul de cîmp respectiv;
Format - această proprietate prezintă o listă derulantă cu formatele disponibile pentru
respectivul tip de câmp;
Decimal Places - proprietatea care se stabileşte pentru câmpurile numerice; se pot
stabili poziţiile zecimal afişate de un număr;
Input Mask - proprietatea prin care se controlează introducerea datelor;
Caption - proprietatea utilizată pentru a a afişa titlurile numelor de câmp în modul de
afişare Datasheet;
Default Value - proprietatea care permite definirea unei valori implicite care va fi
generată automat în ecranele de culegere a datelor;
Validation Rule - proprietatea care permite definirea restricţiilor referitoare la
domeniul de valori;
Validation Text - proprietatea care permite specificarea conţinutului textului care se
va afişa, în cazul introducerii unei realizări ce nu respectă regula de validare;
Requiered - proprietatea care se utilizează în momentul în care se doreşte
introducerea în câmpul respectiv a unei valori în mod expres, valoarea câmpului nu
poate fi nulă;
Indexed - proprietatea care permite definirea unui fişier index pe atributul respectiv;
indecşii asigură mecanismul de regăsire rapidă a datelor. Un atribut se indexează în
condiţiile în care atributul cuprinde valori cu gamă largă; de variaţie şi atributul va fi
folosit în mod semnificativ în criteriile de selecţie sau sortare.
3. Table Wizard - permite crearea de tabele ca ajutorul magicianului; este cea mai rapidă
metodă de creare a unai tabel.
Alegând această metodă se va afişa fereastra de dialog Table Wizard care este compusă din:
(Fig. 4.4)
Fig. 4.3
un grup de două opţiuni Bussiness şi Personal care lasă posibilitatea de a alege
categoria de tabele;
lista Sample Tables care conţine exemple de tabele corespunzătoare categoriei
Bussiness / Personal;
lista Sample Fields care conţine câmpuri corespunzătoare tabelului selectat;
caseta Fields in my new table – în care sunt vizualizate numele câmpurilor selectate;
Butonul Rename Field: - buton cu care se poate modifica numele cîmpului selectat.
După ce toate setările sunt efectuate se trece la fereastra următoare accesând butonul Next. În
această fereastră se stabileşte numele tabelului şi cheia primară. (Fig. 4.5).
4. Import Table - permite importarea tabelelor şi obiectelor din altă bază de date.
5. Link Table - permite crearea tabelelor în baza de date curentă, care sunt legate cu alte
tabele din baze de date externe.
Relaţii între tabele
Relaţiile între tabele se formează prin precizarea legăturilor între un tuplu dintr-un tabel şi
tuplurile corespunzătoare din alt tabel.
Relaţiile standard pot fi de tip:
1. Relaţia unu la unu (1:1) corespunde situaţiei când unui tuplu dintr-o tabelă îi corespunde
un singur alt tuplu dintr-o altă tabelă. Se mai numeşte şi biunivocă;
Exemplu:
Fig. 4.5
Fig. 4.4
Considerăm tabela Furnizori şi tabela Produs
Codfurnizor Codprodus
Denfurnizor Denprodus
Adresa UM
Contbanca Preţprodus
Bancă Cod furnizor
Relatia 1:1 între cele două tabele se poate transpune prin faptul că: un furnizor poate livra
doar un singur produs, iar produsul este livrat doar de un singur funizor.
Relaţia unu la mai mulţi (1:n) corespunde situaţiei în care unui tuplu dintr-o înregistrare îi
corespund mai mutte tupluri dintr-o tabelă. Tabelul din partea unu a relaţiei trebuie să aibă o cheie
unică, numită cheie primară, iar tabelul din partea mai mulţi trebuie să conţină o cheie străină
numită cheie externă.
Exemplu:
Considerăm tabela Furnizori şi tabela Facturi
Codfurnizor Nrfactură
Denfunizor Codfurnizor
Adresa Codprodus
Contbancă Preţfactură
Bancă Datafactură
Cantitate
Relaţia 1: n între cele două tabele se poate transpune prin faptul că un furnizor poate emite
mai multe facturi, iar o factură nu poate fi emisă decât de un furnizor.
3. Relaţia mulţi la mulţi (m:n) corespunde situaţiei când unui tuplu dintr-o tabelă îi pot
corespunde mai multe tupluri dintr-o altă tabelă. Aceste tipuri de relaţii sunt asocieri libere.
Exemplu:
Considerăm tabela Funizori şi tabela CentruComercial
Codfurnizor Codccom
Denfurnizor Denccom
Adresa Cod furnizor
Relaţia m:n între cele două tabele se poate transpune prin faptul că: un funizor poate
aproviziona mai multe centre comerciale, iar un centru comercial se poate aproviziona de la mai
mulţi furnizori. Descrierea procesului de construire a relaţiilor dintre tabele se face în fereastra
Relationships (Opţiunea Relationships se află în meniul Tools). Plasarea tabelelor în această
fereastră se face prin intermediul ferestrei Show Table din meniul Relatioships. Selectarea tabelelor
se face acţionând butonul Add sau click dublu pe tabelul respectiv. O relaţie între tabele se
realizează prin operaţia drag and drop de la cheia primară a tabelei principale la cheia externă a
tabelei secundare. Legătura între tabele este marcată printr-o linie care se numeşte linie de corelare.
Fereastra de dialog Edit Relationships (se deschide selectând meniul Relationships, optiunea Edit
Relationship) prezintă legătura între cheia primară şi cheia externă. (Fig. 4.6)
În partea de jos a casetei de dialog Edit Relatioships există trei casete de validare; validarea
acestora are urmatoarele efecte:
validarea casetei Enforce Referential Integrity (Impune integritate referenţială) în
cadrul aplicaţiei, înseamnă că în momentul când se introduce o nouă înregistrare în tabela
secundară, se verifică dacă valoarea cheii externe se găseşte în tabela primară, în câmpul
corespunzător cheii primare. Este necesară încărcarea datelor în tabela principală mai
întâi şi apoi în cea secundară;
validarea casetei Cascade Update Related Fields - modificarea unei valori a unei chei
primare din tabela principală duce la modificarea valorilor cheii externe corespondente
din tabela secundară.
Exemplu:
Dacă se modifică codul unui beneficiar din tabela Beneficiari, se modifică şi facturile
corespondente.
validarea casetei Cascade Delete Related Recors - ştergerea unei valori a cheii primare
din tabela principală duce automat la ştergerea înregistrărilor corespondente din tabela
secundară (cele care au valoarea cheii exteme egale cu valoarea cheii primare).
Exemplu:
Dacă se şterge un beneficiar, automat se şterg şi facturile corespondente.
Câmpurile de legătură între două tabele trebuie să fie de acelaşi tip şi să aibă aceeaşi
dimensiune.
OBIECTE DE TIP QUERY(CERERE). INTEROGAREA BAZELOR DE DATE
Interogarea unei baze de date înseamnă regăsirea şi extragerea informaţiilor. O cerere are ca
sursă una sau mai multe tabele sau chiar o altă cerere.
Clasificarea. interogărilor:
Interogări de selecţie - sunt cele mai utilizate interogări şi permit vizualizarea,
modificarea şi extragerea datelor din una sau mai multe tabele sau cereri.
Fig. 4.6
Interogări de tip acţiune - au ca rol de a actualiza, de a şterge, a adăuga, a modifica şi
de a crea noi tabele. Interogările de tip acţiune sunt:
a. Make Table Query - permit crearea unui nou tabel;
b. Delete Query - permite ştergerea uneia sau mai multor înregistrări dintr-un tabel;
c. Append Query - permite adăugarea de noi înregistrări la un tabel dintr-un tabel sursă;
d. Update Query - permite modificarea unui grup de înregistrări selectate pe baza unui
criteriu dintr-un tabel.
Interogări parametrate - se utilizează atunci când este necesară modificarea frecventă a
criteriilor de selecţie în baza de date.
Interogări de tip “Analiză încrucişată” permit generarea unor tabele complexe sub
forma unei foi de calcul tabelar
Crearea interogărilor de selecţie
Atunci când se realizează o interogare selectăm butonul Queries din fereastra Database şi
apoi butonul New. Ca rezultat pe ecran se afişează fereastra New Query care permite realizarea
interogării în următoarele moduri: (Fig. 4.7)
1. Design View - reprezentând modul grafic de proiectare.
Pentru a crea o interogare în acest mod accesăm butonul OK şi se va afişa o fereastră Select
Query şi caseta de dialog Show Table. (Fig. 4.8)
Fig. 4.8
Fig. 4.7
Fereastra Select Query este structurată în două părţi:
partea superioară, unde sunt afişate structurile tabelelor din baza de date
partea inferioară numită grilă de proiectare în care se construieşte interogarea din punct
de vedere structural. Aceasta grilă de proiectare este cunoscută şi sub denumirea QBE
(Query By Exemples).
Caseta de dialog Show Table prezintă tabelele existente când este selectat butonul Tables,
interogările când este selectat butonul Queries şi la accesarea butonului Both sunt prezentate şi
tabelele şi interogăriile
Pentru adăugarea tabelelor în fereastra Select Query se acţionează butonul Add; după ce
tabelele sunt selectate caseta de dialog Show Table este inchisă. În cazul în care mai trebuie adăugat
un alt tabel fereastra Show Table va fi readusă pe ecran selectând meniul Query, opţiunea Show
Table. Selectarea unui câmp în grila interogării se face executând dublu click pe numele câmpului.
Numele câmpului va fi afişat în dreptul rândului Field iar tabelul sursa se specifică în dreptul
rândului Table.
Ordonarea se poate face crescator (Ascending) sau descrescător (Descending); această
sortare se face la intersecţia coloanei câmpului respectiv cu caseta Sort.
Criteriile de selecţie
Criteriile de selecţie reprezintă restricţiile pe care le stabilim într-o interogare, pentru a
identifica anumite înregistrări din baza de date. Criteriile se introduc în celula aflată la intersecţia
coloanei câmpului cu linia Criteria din grila de interogare.
Principalele criterii simple sunt prezentate în tabelul 4.1. Criteriile complexe se vor construi
prin utilizarea operatorilor logici And sau Or, care permit legarea criteriilor simple.
Exemplu:
Să presupunem că se doreşte vizualizarea facturile emise doar către beneficiarii care au
conturile la Banca BCR iar modul de vizualizare să se facă in mod descrescător după câmpul Cod
Furnizor.Fereastra Select Query corespunde cerinţelor impuse (Fig. 4.9).
Tabelul 4.1. Principalele criterii simple
OPERAŢIA SEMNIFICAŢIA EXEMPLU
BETWEEN Apartenenţa la un
interval de valori
BETWEEN val_inf
and val_super
Fig. 4.9
IN Apartenenţa la lisă
de valori
IN(val 1, val2, ...)
>
<
>=
<=
=
Mai mare
Mai mic
Mai mare sau egal
Mai mic sau egal
Egal
NOT Operator de negaţie Not valoare
LIKE Comparare cu un
nume generic
LIKE ,, valoare”
Rezolvarea acestei interogări se regăseşte mai jos (Fig.4.10).
Crearea unor câmpuri calculate
În prima linie Field liberă se introduce formula de calcul care are formula generală:
Nume_rezultat: [Câmp 1] Operator matematic [Câmp 2]...
Exemplu:
Se doreşte vizualizarea produselor cu codul (120, 121) şi calcularea câmpului valoare pentru
tabela Produs (Cod_produs, Den produs, UM, Preţ, Cantitate)
Se prezintă fereastra Select Query care corespunde cerintelor impuse. (Fig. 4.11).
În figura 4.12 se prezintă rezultatul obţinut.
Fig. 4.10
Fig. 4.11
Fig. 4.12
2. Simple Query Wizard - este cea mai simplă metodă de a crea o interogare.
Pentru a crea o interogare în acest mod selectăm opţiunea Simple Query Wizard şi apoi
selectăm butonul OK.
Fereastra deschisă prezintă mai multe opţiuni:
din lista Tables / Query selectăm tabelul sau interogarea dorită;
din lista câmpurilor disponibile Available Field se selectează numele de câmp şi apoi
pentru a-l muta în lista câmpurilor selectate accesăm butonul “>” (Fig. 4.13); dacă se
doreşte selectarea tuturor numelor de câmpuri selectăm butonul “>>”. Când operaţia
de selectare a numelor de câmpuri s-a încheiat executăm click pe butonul Next;
se afişează fereastra unde specificăm modul de prezentare - Detail sau Sumar (Fig.
4.14). Executăm click pe butonul Next. În caseta de text What title do you want fot
your query (Ce titlu doriţi pentru interogarea dumneavoastră) introducem numele
interogării şi executăm click pe butonul Finish şi rezultatul interogării poate fi văzut.
3. Crosstab Query Wizard - funcţionează similar cu opţiunea Simple Query Wizard cu
menţiunea că se va construi o interogare prin incrucişarea tabelelor.
4. Find Duplicates Query Wizard - compară două tabele şi se va construi o interogare care va
Fig. 4.13
Fig. 4.14
prezenta înregistrările comune.
5. Find Unmatched Query Wizard - este opusul opţiunii Find Duplicates Query Wizard,
adică compară două tabele şi va construi o interogare care va prezenta înregistările care nu sunt
comune celor două tabele.
Interogări de tip acţiune
a. Interogarea Make Table Query
Are ca scop crearea unui tabel format din datele aparţinând unui tabel sau mai multor tabele.
Pentru a transforma o interogare de selecţie în una de tip acţiune cu funcţia de creare a unei noi
tabele se parcurg etapele:
se trece în modul Design View;
se selectează meniul Query şi se alege opţiunea Make-Table Query;
pe ecran se afişează fereastra de dialog Make Table unde se introduce noul nume al
tabelei. Se stabileşte dacă aceasta va face parte dintr-o bază de date Access sau de alt
tip şi dacă înlocuieşte o altă tabelă care este deja creată se apasă apoi butonul OK;
Se selectează meniul Query şi se alege opţiunea Run; se afişează o casetă de dialog în
care se specifică numărul de înregistrări în tabela nou creată.
Tabela nou creată prin această interogare va fi în fereastra Database la obiectul Tables, iar
câmpurile vor moşteni numai tipurile şi dimensiunile din tabele sursă. Se recomandă ca după
executarea interogării cu funcţia de creare să se stabilească cheia primară şi proprietăţile
câmpurilor.
Exemplu:
Dorim să creem o nouă tabelă intitulată “Beneficiari din judeţ” în care să fie prezenţi toţi
beneficiarii cu excepţia celor din Craiova (Fig.4.15);
b. Interogarea Delete Query
Această interogare are ca scop eliminarea unui grup de inregistrări dintr-un tabel sau mai
multe tabele.
Pentru a crea o cerere de tip acţiune Delete Query în vederea ştergerii unui grup de
înregistrări trebuie să se plece de la interogarea de selecţie.
Fig. 4.15
Se parcurg etapele:
se trece în modul Design View;
se selectează meniul Query şi se alege opţiunea Delete query care va afişa în grila de
proiectare linia Delete;
se selectează meniul Query şi se alege opţiunea Run; se afişează o casetă de dialog
care va prezenta numărul de înregistrări ce vor fi şterse. Se selectează butonul Yes
pentru ştergerea numărului de înregistrări care respectă condiţia specifică.
Exemplu:
Dorim să ştergem din tabela Factura toate facturile care au numărul facturii mai mic de
126753 (Fig. 4.16).
c. Interogarea Append Query
Această interogare se foloseşte pentru a insera înregistrări din unul sau mai multe tabele
sursă într-un tabel destinaţie.
Pentru a transforma o interogare din selecţie în una de tip acţiune de adăugare se parcurg
etapele:
se trece la modul Design View;
se selectează meniul Query şi se alege opţiunea Append query, se va afişa caseta de
dialog Append unde se introduce numele tabelei de destinaţie şi se selectează butonul
OK;
se selectează meniul Query şi se alege opţiunea Run; se afişează o casetă de dialog
care va prezenta numărul de înregistrări ce vor fi adăugate. Se selectează butonul Yes
pentru adăugarea înregistrărilor.
Exemplu:
Dorim să adăugăm în tabela Beneficiari judeţ şi acei beneficiari din Craiova, dar care au
contul la banca “Banc Post”. Tabela Beneficiari judeţ este tabela destinaţie iar tabela Beneficiari
este tabela sursă. (Fig 4.17)
Fig. 4.16
Fig. 4.17
d. Interogarea Update Query
Acestă interogare se foloseşte pentru a efectua modificări globale într-un grup de înregistrări
Pentru a transforma o interogare de selecţie în una de tip acţiune de modificare se parcurg
etapele:
se trece în modul Design View;
se selectează meniul Query şi se alege opţiunea Update Query; se va introduce în grila
de proiectare linia Update To şi se schimbă numele interogării într-o interogare de
modificare;
se introduc în linia Update To expresiile de calcul sau valorile cu care se vor face
modificările;
se selectează meniul Query şi se alege opţiunea Run; se afişează o casetă de dialog în
care sunt prezentate numărul de înregistrări ce vor fi modificate. Se selectează butonul
Yes pentru modificarea înregistrărilor.
Observaţie:
Nu se pot modifica valorile cheii primare sau aceasta nu poate primi valoarea Null
Nu este permisă adăugarea sau modificarea unei înregistrări cu valoare identică a
unui câmp care este declarat în structura tabelei ca fiind index unic.
Exemplu:
În urma unei erori, anumite facturi (nu toate) au data emiterii cu trei zile mai devreme decât
data reală. Pentru a corecta această eroare se va realiza interogarea conform Fig.4.18.
Când se execută interogarea apare o fereastră de dialog (Enter Parameter Value) în care
introducem Nr. factura care se va actualiza, iar după apăsarea butonului OK apare un mesaj de
avertizare care întreabă dacă sunteţi siguri că vreţi să reactualizaţi înregistrările. Dacă se apasă
butonul Yes câmpul data factura din tabelul Factură va fi actualizat.
Interogări parametrate
Aceste interogări se utilizează atunci când într-o interogare este necesară modificarea
Fig. 4.18
frecventă a Criteriilor de selecţie.
În grila Design pe coloana dorită Criteria în locul unei expresii se vor preciza între paranteze
drepte un mesaj ce este afişat în momentul executării interogării pentru ca utilizatorul să introducă
criteriul de selecţie dorit.
Interogări de tip analiză încrucişată
Aceste interogări permit generarea unor tabele complexe sub formă matriceală în care
numele liniilor (Li) şi a coloanelor (Cj) reprezintă criterii mixte de grupare, iar valorile din celulele
tabelului (Vij) se obţin prin aplicarea unei funcţii predefinite asupra unui câmp dintr-o tabelă,
Tabelul 4.2
C1 C2. CN
L1 V11 V12 V1n
L2
Lm Vm1 Vmn
Tabelul 4.2
FORMULARE ŞI RAPOARTE
OBIECTE DE TIP FORM
Formularele reprezintă obiecte ale bazei de date ce permit introducerea sau extragerea
datelor dintr-o tabelă. Formularele au mai multe utilizări:
afişarea şi editarea datelor - este permisă afişarea datelor în modul dorit de utilizator
iar datele pot fi modificate;
introducerea de date - este utilizată atunci când formularul introduce date într-un tabel
asociat;
afişarea de mesaje;
controlul operaţiilor realizate de aplicaţie;
tipărirea informaţiilor.
Formularele pot fi afişate în mai multe moduri:
modul Design - este modul utilizat pentru schimbarea modului de prezentare şi
proprietăţile formularului;
modul Form - este modul de afişare al unui formular în curs de utilizare;
modul Datasheet- este modul de afişare directă a tabelului sau interogării.
Realizarea formularelor
Atunci când se realizează un formular se selectează butonul Forms din fereastra Database şi
apoi butonul New.
Ca rezultat se afişează pe ecran fereastra New Forms (Fig. 4.19) care permite realizarea
formularelor în următoarele moduri:
Design View
Pentru a crea formularul folosind modul Design View trebuie să se selecteze opţiunea Design
View din fereastra New Form.
Din caseta cu lista derulantă pentrua a crea un formular pentru introducere de date trebuie ca
pentru început să asociem formularului respectiv un tabel sau o interogare.
Acest mod nu permite includerea într-un formular a mai multor câmpuri conţinute din tabele
diferite.
Totuşi se poate construi un formular pe baza unei interogări care, la rândul ei, este realizată
prin folosirea mai multor tabele.
Se execută pe butonul OK după ce s-a ales tabelul sau interogarea dorită.
Pe ecran apare fereastra cu ecranul de proiectare a formularului.
Fereastra e prevăzută pe margini cu două rigle (pe verticală şi pe orizontală) ce ajută
proiectantul să alinieze obiectele.
Pe lânga zona Detail cu care am lucrat, un formular mai conţine:
Secţiunea de antet (Form Header);
Antetul de pagină (Page Header);
Subsol de pagină (Page Footer);
Subsolul formularului (Form Footer).
În figura 4.23 sunt prezentate elementele formularului:
Secţiunea de antet (Form Header)
Această zonă este folosită pentru a afişa titlul formularului. Această zonă nu este vizibilă în
Fig. 4.19
modul Datasheet. Pentru a vizualiza această zonă se selectează. meniul View şi apoi opţiunea Form
Header /Footer
Antetul de pagina (Page Header)
Această zona apare când formularul este scos la imprimantă. Pentru a fi disponibilă se
selectează meniul View şi apoi opţiunea Page Header/Footer.
Subsol de pagină (Page Footer)
Această zonă apare când formularul este scos la imprimantă. În această zonă se poate
specifica numărul de pagini, data curentă
Subsolul formularului (Form Footer)
Această zonă poate să conţină diferite informaţii ca de exemplu totalul general sau diverse
controale.
Subformulare
Un subformular este un formular inclus într-un alt formular, pentru a permite afişarea datelor
din mai multe tabele sau interogări, aflate în relaţii de tipul 1:1 sau 1:n.
În formularul principal vor fi afişate date din partea unu a relaţiei, iar în subformular cele din
partea mai mulţi.
Crearea unui ansamblu formular - subformular se poate face:
Crearea separată a celor două şi apoi combinarea;
Crearea formularului si subformularului concomitent;
Crearea subformularului şi adaugarea lui la un formular existent.
Prezentăm în continuare crearea ansamblului formular -subformular în prima
variantă; crearea separată a celor două şi combinarea este varianta cea mai simplă.
Se parcurg etapele:
se crează formularul principal;
se crează subformularul având grijă ca acel câmp de legătură să nu fie inclus deoarece
există deja în formularul principal;
Fig. 4.23
se face legatura între formularul principal şi subformular;
se deschide formularul principal în modul Design View şi se trage cu mouse-ul numele
subformularului din fereastra Database în cadrul formularului principal;
se verifică legătura şi apoi rezultatul.
Exemplu:
Vom exemplifica construcţia ansamblului formular-subformular pe aplicaţia Facturile emise
beneficiarilor. (Fig.4.24).
Formularul principal - Beneficiari
Proprietăţile obiectelor - Forms
Fiecare obiect definit în modul Design View (fereastra de proiectare a formularului) are nişte
proprietăţi.
Aceste proprietăţi modifică comportamentul obiectului (Fig, 4.25)
Fig. 4.24
Fig. 4.25
Proprietăţile formularului se pot modifica în cadrul ferestrei de proprietăţi care se activează
prin selectarea meniului View şi apoi opţiunea Properties.
În această fereastră proprietăţile formularului se grupează în 5 categorii:
1. Format - prezintă proprietăţile care se referă la culoare, dimensiune, mod de vizualizare.
Cele mai folosite proprietăţi sunt:
Caption - se specifică numele formularului;
Default View - se specifică modul implicit de afişare;
Scroll Bars - se setează barele de defilare vizibile în cursul execuţiei;
Navigation Buttons - specifică dacă formularul are butoane de navigare în cursul
execuţiei;
Border Style - se specifică tipul bordurii;
Control Box - indică prezenţa meniului sistem în bara de titlu.
2. Data - prezintă proprietăţile care se referă la datele asociate controlului
Record Source - conţine sursa de date a formularului;
Filter - conţine criteriul de selecţie care se va aplica înregistrărilor din formular.
Pentru ca filtrul să fie activ, proprietatea din formular Filter On trebuie sa aibă
valoarea True;
Order By - permite specificarea câmpurilor după care vor fi sortate inregistrările.
3. Event - grupează evenimentele ce pot fi tratate fie prin proceduri sau funcţii scrise în
limbajul VBA, fie prin macro-uri;
Există 3 posibilităţi:
evenimentul tratat printr-o funcţie - proprietatea evenimentului va conţine o expresie
de forma: Nume funcţie ([Lista parametrii]);
eveniment tratat printr-o procedură eveniment; editarea procedurii se face prin
acţionarea butonului Build Wizard;
eveniment tratat printr-un macrou - proprietatea eveniment va conţine numele macro-
ului.
4. Other - prezintă alte proprietăţi suplimentare.
5. All - prezintă toate proprietăţile care se regăsesc în grupele prezentate.
Form Wizard
Pentru a crea un formular în modul Form Wizard trebuie parcurse etapele:
În fereastra Databases selectăm eticheta Forms şi apoi butonul New. Apare fereastra Form
Wizard şi apoi selectăm butonul OK. Din lista derulată Tables/Queries alegem tabelul sau
interogarea din care selectăm câmpurile.
Din lista de câmpuri disponibile Available Fields se selectează câmpurile dorite în lista
câmpurilor selectate Selected Fields. (Fig4.26).
În situaţia când vrem să adaugăm în formulare alte cârnpuri din alt tabel ne întoarcem la lista
derulantă “Tables / Queries”. Se selectează butonul Next pentru a trece la fereastra unde alegem
modul de prezentare Columnar, Tabular, Datasheet sau Justified.
În fereastra următoare se alege stilul de vizualizare, iar la selectarea butonului Next se ajunge
în ultima fereastră unde se salvează formularul sub ce nume se doreşte.
AutoForm: Columnar
Se crează un formular cu câmpurile aşezate pe coloane.
OBIECTE DE TIP RAPORT
Tabelele şi formularele furnizează diverse căi de introducere a înregistrărilor în baza de date,
iar interogările permit sortarea şi filtrarea datelor în baza de date.
Rapoartele reprezintă un alt obiect al unei baze de date utilizat pentru a rezuma datele şi a
oferi un rezultat care poate fi vizualizat pe ecran sau care se poate lista la imprimantă.
Realizarea rapoartelor
Atunci când se crează un raport selectăm butonul REPORT din fereastra Database şi apoi
butonul New.
Ca rezultat pe ecran se afişează fereastra New Report (Fig. 4.27) care permite realizarea
formularelor în următoarele moduri:
Design View
Fig. 4.27
Fig. 4.26
Pentru a crea un raport în modul Design View trebuie să se selecteze opţiunea Design View
din fereastra New Report.
Din caseta cu lista derulantă pentru a crea un raport trebuie ca pentru început să se asocieze
formularului respectiv un tabel sau o interogare. Se execută click pe butonul OK după ce s-a ales
tabelul sau interogarea dorită.
Ca şi la modul Form Design aici exista o trusă de instrumente Toolbox iar modul de lucru
este identic (selectarea obiectelor, mutarea şi redimensionarea obiectelor).
Report Wizard
Cu Report Wizard se poate construi un raport care utilizează mai multe tabele şi interogări.
Pentru a crea un raport cu Report Wizard se parcurg următoarele etape:
se selectează opţiunea Report Wizard din fereastra New Report şi apoi butonul OK.
Din lista de câmpuri disponibile, Available Fields, selectăm câmpul dorit şi pentru a-l
muta în lista câmpurilor selectate Selected Fields se accesează butonul “>” (Fig. 4.28);
pentru a trece la fereastra următoare se selectează butonul Next; în fereastra afişată se
grupează înregistrările după oricare din câmpurile selectate. Se selectează câmpul
respectiv şi apoi se selectează butonul “>”. Se pot avea mai multe niveluri de grupare.
(Fig. 4.29) Pentru a continua se selectează butonul Next. În noua fereastră se realizează
sortarea înregistrărilor din raport. Dacă se sortează înregistrări după un anumit câmp sau
după mai multe câmpuri se deschide fereastra derulantă şi se pot selecta maxim patru
câmpuri de sortare. Sortarea în ordine ascendentă se face implicit (Ascending); dacă se
doreşte schimbarea ordinii se execută un click pe butonul Ascending şi se va afişa sortarea
descendentă (Descending);
Fig. 4.28
Fig. 4.29
setarea butonului Next duce la apariţia următoarei casete de dialog unde se alege tipul
raportului. Sunt enumerate mai multe stiluri şi se alege cel dorit. Se poate alege şi
orientarea pe care o poate avea raportul tipărit. Portrait - de-a lungul hârtiei sau
Landscape - de-a latul hârtiei; la următoarea casetă de dialog se alege un stil pentru
raport;
în ultima fereastră se alege un titlu pentru noul raport şi apoi se selectează butonul
Finish.
Raportul poate fi vizualizat în modul Print Preview şi de aici se poate tipări raportul dacă
sunteţi multumiţi de felul cum arată. În modul Print Preview se poate mări sau micşora dimensiunea
de afişare a raportului pe ecran utilizând instrumentul Zoom (se execută click o dată pe butonul
mouse-ului pentru mărire şi se execută click din nou pentru micşorare).
Pentru tipărirea raportului se selectează meniul File şi apoi opţiunea Print. Dacă trebuie
schimbate marginile raportului sau să se modifice orientarea raportului pe pagină se selectează
meniul File şi opţiunea PageSetup. Se afişează caseta de dialog Page Setup (Fig. 4.30).
Fig. 4.30
În caseta de dialog Page Setup sunt etichetele:
Margins -permite setarea marginilor de sus, de jos, din stânga şi din dreapta ale
paginii;
Page - permite schimbarea orietării paginii raportului pe pagina tipărită;
Columns - permite schimbarea numărului de coloane din raport şi distanţa dintre
coloane.
Auto Report Columnar şi Auto Report Tabular
Se va crea un raport automat în care datele vor fi afişate într-o coloană pentru AutoReport
Columnar sau sub formă de tabel pentru Auto Report Tabular.
Cu instrumentul Auto Report se pot crea rapoarte pornind de la un singur tabel sau o singură
interogare.
Dacă se doreşte construirea unui raport care să aibă la bază mai multe tabele, mai întâi
trebuie creată o interogare pe baza acelor tabele şi apoi se crează raportul.
Chart Wizard
Crează un raport în interiorul căruia va fi prezentat un grafic.
Label Wizard
Crează etichete poştale care pot fi tipărite la imprimantă pe suporturi speciale de hârtie.
CONTROALE
Obiectele care fac parte din formular se numesc controale.
Pentru a aduce controalele pe formă avem nevoie de trusa de instrumente Toolbox şi/sau lista
câmpurilor (Field List) Fig.4.20.
Principalele tipuri de controale din trusa de instrumente Toolbox sunt: (Fig 4.21)
Fig. 4.20
Indicator - instrument folosit la proiectarea controalelor;
Control Wizards activează/dezactivează utilitarele Wizards folosite la generarea unor
controale- mai complexe;
Label - control cu conţinut fix care afişeaza text;
Text Box - caseta de text folosită pentru editarea şi afişarea datelor;
Option Group - crează o casetă de grup şi poate grupa mai multe controale (buton de
opţiune, butoane validare);
Toogle Button - crează un buton de comutare (Yes / No; On / Off; True / False);
Combo Box - îmbină priorităţile unei casete de text cu cele ale unei casete de tip listă
creând o casetă combinată. Această casetă combinată permite editarea datelor şi
selectarea unei valori dintr-o listă derulantă;
Option Button - crează un buton de opţiune; se utilizează mai multe butoane de
opţiune, alegerea unui buton duce la deselectarea celorlalte butoane;
Check Box - crează o casetă de validare; se utilizează mai multe casete de validare
putând accesa mai multe casete în acelaşi timp;
List Box – crează o casetă de tip listă şi afişează tot timpul valorile existente în topul
asociat;
Command Button - crează un buton de comandă, utilizat pentru întreprinderea unor
acţiuni;
Image - introduce în formular fişiere grafice cu extensia .bmp, .wmf, .emf .gif, etc;
Subform / Subraport - crează un subformular în cadrul unui alt formular;
Page Group - delimitator de pagină, împarte formularul în mai multe pagini.
Aceste controale le putem împărţi în două categorii:
- controale legate(bounds) reprezentate de controalele ce afişează sau editează datele din
câmpuri( ex: o casetă text ce va actualiza câmpul Data factură din tabela Factură);
- controale nelegate(unbounds) reprezentate de controalele care sunt independente de
realizările câmpurilor, aşadar nu permit actualizarea acestora. În general, din această
categorie fac parte controalele calculate(ex: o casetă text ce va afişa totalul facturii), dar
şi controale care, prin însuşi specificul lor, nu pot fi ataşate câmpurilor(ex: butoanele de
comandă, etichetele, cadrele etc.).
Pentru a adăuga controale din List Field pe formă selectăm câmpurile şi cu butonul mouselui
apăsat luăm câmpurile din Field List şi le aşezăm în fereastra de proiectare (prin metoda drag and
drop).
În mod automat se va realiza o casetă de text legată de câmp şi o etichetă indicând numele
câmpului respectiv.
În cazul în care dorim să adăugăm controale calculate în formular din trusa de instrumente
Toolbox trebuie desenat un control casetă de text.
Pentru acest lucru trebuie parcurse etapele:
se execută click pe caseta de text;
se mută cursorul deasupra formularului şi cursorul are o formă de cruce cu forrna
casetei de text;
se plasează cursorul în locul unde va fi colţul din stânga sus al controlului;
se deplasează mouseul până când controlul are dimensiuni dorite;
se dă drumul butonului de mouse.
Un alt mod de a adăuga controale din trusa de instrumente Toolbox este prin dublu click pe
caseta de text şi apoi făcând click pe caseta de text şi apoi făcând click de atâtea ori câte casete de
text avem nevoie; apoi se dezactivează caseta de text printr-un click al mousului în Toolbox pe
caseta de text.
Exemplu:
Avem tabela Produse (Cod produs, Den produs; Pret, Cantitate). Dorim să calculăm câmpul
valoare.
Formularul va arăta conform figurii următoare (Fig. 4.22)
Evenimente ataşate controalelor
Controalele din formulare/rapoarte Access au şi ele evenimente specifice care pot fi tratate.
O parte din evenimente sunt întâlnite la toate controalele standard din Access, iar altele sunt
specifice numai anumitor controale.
Se vor prezenta lista evenimentelor cele mai uzuale controale:
Fig. 4.22
Lista evenimentelor controlului TextBox (Fig.2.36)
Fig. 2.36
Lista evenimentelor controlului Buton de comandă (Fig. 2.37)
Lista evenimentelor controlului Combo Box (Fig. 2.38 )
Lista evenimentelor controlului List Box (Fig.2.39)
Fig. 2.37
Fig. 2.38
Fig. 2.39
Evenimentul OnEnter se declanşează înainte ca un control să fie activat. Acest eveniment
nu se poate abandona.
Procedura ataşată evenimentului OnEnter are următorul antet:
Private Sub NumeControl_Enter()
Evenimentul OnExit se declanşează înainte ca un control să fie dezactivat.
Procedura ataşată evenimentului OnExit are următorul antet:
Private Sub NumeControl_Exit(Cancel As Integer)
Parametrul Cancel se foloseşte pentru a abandona ieşirea dintr–un control (Cancel=True).
Evenimentul OnClick se declanşează în momentul în care se activează butonul mouse–ului.
Acest eveniment nu se poate abandona.
Procedura ataşată evenimentului OnClick are următorul antet:
Private Sub NumeControl_Click()
Evenimentul OnDblClick se declanşează în momentul în care se activează de două ori
butonul mouse–ului (la dublu clic).
Procedura ataşată evenimentului OnDblClick are următorul antet:
Private Sub NumeControl_DblClick(Cancel As Integer)
Parametrul Cancel se foloseşte pentru a abandona cel de–al doilea click din secvenţa dublu
click (rămâne deci doar un eveniment OnClick).
Observaţie:
La producerea unui eveniment OnDblClick se produce automat şi un eveniment OnClick.
Evenimentul OnClick îl precedă pe OnDblClick.
Evenimentul OnGotFocus se declanşează în momentul în care un control este activat. Acest
eveniment nu se poate abandona.
Procedura ataşată evenimentului OnGotFocus are următorul antet:
Private Sub NumeControl_GotFocus ()
Evenimentul OnLostFocus se declanşează în momentul în care un control este dezactivat.
Acest eveniment nu se poate abandona.
Procedura ataşată evenimentului OnLostFocus are următorul antet:
Private Sub NumeControl_LostFocus ()
Observaţie:
Ordinea de declanşare a evenimentelor, în situaţia în care luîm în considerare toate aceste
evenimente este:
OnEnter OnGotFocus OnExit OnLostFocus
Evenimentul OnMouseDown se declanşează în momentul în care utilizatorul activează un
buton al mouse–ului, în controlul unde se tratează acest eveniment.
Procedura ataşată evenimentului OnMouseDown are următorul antet:
Private Sub NumeControl_MouseDown(Button As Integer, Shift As Integer, X As Single, Y
As Single)
Evenimentul OnMouseUp se declanşează în momentul în care utilizatorul lasă liber butonul
mouse–ului după ce l–a apăsat, în controlul unde se tratează acest eveniment.
Procedura ataşată evenimentului OnMouseUp are următorul antet:
Private Sub NumeControl_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As
Single)
Evenimentul OnMouseMove se declanşează în momentul în care utilizatorul mută mouse–ul
pe deasupra controlului unde se tratează acest eveniment.
Procedura ataşată evenimentului OnMouseMove are următorul antet:
Private Sub NumeControl_MouseMove(Button As Integer, Shift As Integer, X As Single, Y
As Single)
Observaţie:
Button indică butonul acţionat în momentul declanşării unui eveniment prin intermediul unor
constante (Tabelul 2.40).
Tabelul 2.40
Shift indică starea
tastelor SHIFT, ALT, CTRL în
momentul declanşării
acestor evenimente prin
intermediul unor constante (Tabelul 2.41)
Tabelul 2.41
Evenimentul BeforeUpdate se declanşează exact înaintea momentului salvării unei
înregistrări noi.
Procedura ataşată evenimentului BeforeUpdate are următorul antet:
Private Sub NumeControl_BeforeUpdate(Cancel As Integer)
Evenimentul AfterUpdate se declanşează după momentului în care se încearcă salvarea unei
înregistrări.
Procedura ataşată evenimentului AfterUpdate are următorul antet:
Private Sub NumeControl_AfterUpdate()
Constanta Descriere
acLeftButton Butonul stâng al mouse–ului
acRightButton Butonul drept al mouse–ului
acMiddleButton Butonul din mijloc al mouse–ului
Constanta Descriere
acShiftMask Starea tastei SHIFT
acCtrlMask Starea tastei CTRL
acAltMask Starea tastei ALT
Evenimentul OnChange se declanşează atunci când conţinutul unui control casetă de text
sau listă derulantă se modifică. Acest eveniment nu se poate abandona.
Procedura ataşată evenimentului OnChange are următorul antet:
Private Sub NumeControl_Change()
FACILITĂŢI ACCESS PENTRU DEZVOLTAREA DE APLICAŢII
1. Importul şi exportul de date
Una dintre caracteristicile principale ale unui S.G.B.D. constă în posibilitatea acestuia de a
importa/exporta date din/în fişiere de formate diferite. Access permite importarea datelor dintr-o
serie de S.G.B.D.-uri (Access, dBase III, dBase IV, dBase5, FoxPro sau orice bază de date
disponibilă prin ODBC), precum şi din alte fişiere (de tip text, Excel, HTML etc.).
Pentru importarea datelor se va selecta opţiunea File->Get External Data->Import din
meniul Access. (Fig. 3.18).
Dacă fişierul sursă este:
baza de date Access, atunci se pot importa toate tipurile de obiecte ale bazei de date
(tabele, interogări, formulare etc.);
un fişier bază de date dBase (.dbf)/FoxPro (.dbf)/Paradox (.db), atunci pentru a fi
importaţi şi indecşii, fişierele index asociate (.ndx sau .mdx pentru dBase, .idx sau .cdx
pentru FoxPro, .px pentru Paradox) trebuie să existe în acelaşi director cu fişierul de date.
De asemenea, dacă fişierul de date conţine câmpuri de tip memo, atunci fişierele memo
asociate (.dbt) trebuie să fie disponibile în acelaşi director;
foaie de calcul (Excel, Lotus etc.), atunci toate celulele importate trebuie să conţină
valori îngheţate (celulele care conţin formule vor fi importate sub formă de celule goale);
Fig. 3.18
un fişier de tip text, atunci utilizatorul trebuie să delimiteze datele ce vor forma
câmpurile din noua tabelă.
Exportarea datelor este posibilă în orice format din care se poate face şi importul. Pentru a
exporta un obiect al bazei de date, se selectează opţiunea File-Export din meniul Access. (Fig.3.19).
2. Ataşarea tabelelor în aplicaţii
Tabelele legate pot fi folosite pentru a facilita lucrul în cadrul unei reţele de calculatoare.
Tabelele legate nu sunt tabele propriu-zise, ci legături dinamice către obiectele de tip tabel aflate în
alte baze de date. Se pot crea legături chiar şi spre fişiere de tipuri diferite (în general fişiere de tipul
celor suportate pentru importul de date): Access, dBase, FoxPro, Excel, Paradox, HTML etc.
Utilizatorii pot actualiza datele legate, dar nu pot face modificări de structură (nu pot adăuga,
modifica sau şterge câmpuri).
Această facilitate este frecvent folosită pentru crearea unor aplicaţii de tip front-end/back-
end: pe server-ul reţelei se vor afla tabelele sursă (componente back-end) fie într-o bază de date
Access, fie în fişiere de tipul celor recunoscute pentru importul de date, iar pe staţiile de lucru
(workstations) se vor regăsi fişierele Access ( componente front-end), ce conţin celelalte obiecte ale
aplicaţiei (interogări, formulare, rapoarte, module), precum şi legături către tabelele aflate în baza
de date de pe server. În felul acesta, toţi utilizatorii locali vor avea acces la aceleaşi date, staţiile de
lucru nu vor fi supraîncărcate cu baza de date completă, iar traficul de pe reţea se va reduce
suficient de mult.
Pentru a crea tabele legate se procedează astfel:
Se selectează opţiunea File->Get External Data-> Link Tables din meniul Access.
În fereastra Link se selectează baza de date (fişierul) ca conţine tabelele sursă: (Fig
3.20).
Fig. 3.19
Fig. 3.20
Se selectează tabelele pentru care se vor crea legături: (Fig 3.21). Dacă baza de date
sursă este mutată, ştearsă sau redenumită, atunci se impune refacerea legăturilor către
tabelele acesteia. Operaţia este posibilă prin selectarea opţiunii Tools->Add-Ins->Linked
Table Manager din meniul Access.
Pictograma folosită pentru afişarea tabelelor legate în fereastra bazei de date, este însoţită de
o săgeată de culoare neagră, orientată spre dreapta. (Fig.3.22).
3. Replicarea bazelor de date
Access pune la dispoziţia utilizatorilor această facilitate, în special pentru asigurarea unor
copii de siguranţă ale bazei de date.
Prin replicare se obţin două baze de date: Design Master (derivată din baza de date originală)
şi copia, numită Replica. Numai baza Design Master va permite efectuarea modificărilor asupra
obiectelor replicate (obiectele comune celor două baze de date). Tabelele replicate sunt sincronizate
în ambele sensuri, adică orice actualizare făcută asupra datelor (fie în Master Design, fie în replică)
se va realiza automat şi în cealaltă bază de date. Dacă utilizatorul creează noi obiecte în baza Design
Master, poate decide dacă acestea vor fi create automat şi în baza Replica. Această operaţie nu este
Fig. 3.21
Fig. 3.22
posibilă, dacă se creează noi obiecte în baza replică.
Pentru crearea unei replici a bazei de date curente, se va selecta opţiunea Tools-
>Replication->Create Replica din meniul Access. Pentru această procedură, baza de date curentă
este salvată într-o arhivă de siguranţă (folosită pentru restaurare în cazul în care se revine asupra
operaţiei sau când operaţia de replicare a eşuat) şi se vor crea cele două baze de date replicate
(Master Design şi Replica). Baza de date Master Design va avea dimensiunea mai mare decât baza
de date originală, deoarece operaţia de replicare creează noi obiecte sistem (tabele, câmpuri şi
proprietăţi). Astfel, fiecare tabelă replicată va conţine în plus trei câmpuri sistem, necesare
sincronizării: s_Generation,s_GUID şi s_Lineage.
Baza Master Design nu va mai putea fi transformată într-o bază de date normală decât
numai prin importarea/exportarea obiectelor sale dintr-o/într-o astfel de bază de date!
4 Protejarea bazelor de date
Protejarea are ca scop prevenirea accesului neautorizat la obiectele unei baze de date. Access
oferă mai multe posibilităţi de protejare a bezelor de date prin:
Ascunderea obiectelor bazei de date;
Conversia bazei de date în format MDE;
Stabilirea unei parole de acces la baza de date;
Crearea unor catogorii diferite de utilizatori (protecţie la nivel de utilizator);
Criptarea bazei de date.
1. Ascunderea unui obiect al bazei de date se poate realiza prin afişarea ferestrei de
proprietăţi a obiectului respectiv (opţiunea View->Properties din meniul Access), fereastră în care
se va activa caseta de validare Hidden Objects din fereastra afişată în urma selectării opţiunii Tools-
>Options.
2. Conversia bazei de date în format MDE are ca scop prevenirea citirii sau modificării
obiectelor de tip formular, raport sau modul. Utilizatorul va putea modifica însă structura tabelelor
şi a macro-lor.
Pentru a transforma baza de date curentă în format MDE, se selectează opţiunea Tools-
>Database Utilities->Make MDE File din meniul Access. Prin operaţia de conversie se creează un
nou fişier cu extensia .mde, baza de date originală (.mdb) rămânând intactă.
Salvarea bazei de date în formatul MDE are drept efect:
inhibarea vizualizării, modificării sau creării formularelor, rapoartelor sau modulelor
în modul Design View;
blocarea importului de formulare, rapoarte şi module ale altor aplicaţii, rămânând
viabilă posibilitatea de a importa obiecte de tipul tabele, query şi macro din alte baze
de date;
nu se vor putea exporta spre o altă bază de date rapoartele, formularele şi modulele,
excepţie făcând tabelele, query-urile şi macro-urile;
imposibilitatea modificării proprietăţilor şi metodelor obiectelor, deoarece o bază de
date de tip MDE nu mai conţine codul sursă;
prevenirea adăugării, ştergerii sau schimbării referinţelor la librăriile de obiecte sau la
alte baze de date;
Bazele de date replicate nu pot fi convertite în format MDE.
Formatul MDE este frecvent folosit pentru bazele de date front-end, deoarece conţine codul
compilat al modulelor, formularelor şi rapoartelor (fiind astfel şi mai rapid în execuţie decât
formatul standard MDB).
Folosirea unei parole la deschiderea bazei de date este una din cele mai folosite modalităţi de
asigurare a securităţii bazelor de date individuale. Definirea unei parole este posibilă numai
dacă baza de date este deschisă în modul exclusiv, prin selectarea opţiunii Tools->Security-
>Set Database Password. (Fig.3.23) Dezactivarea parolei se poate realiza prin selectarea
opţiunii Tools-> Unset Database Password, numai atunci când baza de date este deschisă în
mod exclusiv.
Parola unei baze de date va deveni un atribut al acesteia, aşa încât fişierul respectiv nu va
putea fi accesat de utilizatori neautorizaţi, chiar dacă se procedează la reinstalarea sistemului
Access.
4. Protecţia la nivel de utilizator (user-level security) se realizează prin crearea unor
utilizatori cu drepturi (permisiuni) diferite asupra bazelor de date şi obiectelor conţinute de acestea.
Această metodă de protecţie este folosită în cazul reţelelor de calculatoare, caz în care mai mulţi
utilizatori pot accesa aceeaşi bază de date, dar cu drepturi diferite asupra acesteia.
Protecţia user-level a unei baze de date nu va avea nici un efect într-un sistem Access în care
nu este activat acest tip de protecţie
Un utilizator este identificat printr-un nume şi o parolă. Utilizatorii cu aceleaşi drepturi sunt
separaţi în grupuri de utilizatori.
Access pune la dispoziţie două grupuri predefinite de utilizatori:
Admins – utilizatorii acestui grup sunt numiţi administratori ai bazei de date şi au
drepturi depline de administrare-întreţinere a tuturor bazelor de date. Programul de
instalare Setup creează automat un utilizator în cadrul acestui grup, numit Admin,
care va fi şi utilizatorul implicit;
Users – grupează utilizatorii obişnuiţi, care implicit au drepturi depline asupra
obiectelor bazelor de date.
Pentru a activa procedura de protecţie user-level, este necesar ca utilizatorul Admin să aibă
atribuită o parolă.
Access permite crearea de noi grupuri şi utilizatori prin selectarea opţiunii Tools->Security-
> User And Group Accounts. (Fig 3.24) Crearea grupurilor este permisă numai
Fig. 3.23
administratorilor.Caseta Users permite crearea/ştergerea unui utilizator, ştergerea parolei
utilizatorului sau modificarea grupurilor de care acesta aparţine. Tag-ul Groups poate fi utilizat
pentru crearea/ştergerea unui grup.
Nu este permisă ştergerea utilizatorului Admin şi nici a grupurilor implicite Admins,
respectiv Users.
Tag-ul Change Logon Password permite modificarea parolei utilizatorului curent (cel care a
deschis sesiunea Access). Pentru a modifica parola unui anumit utilizator, trebuie redeschisă o
sesiune Access pentru acel utilizator.
La crearea uni utilizator/grup se va specifica numele şi un număr de identificare din
minimum 4 cifre (acest număr nu este asimilat parolei).
După ce a fost creat un utilizator, se vor selecta grupurile din care acesta va face parte şi de
la care va moşteni drepturile .
Un utilizator trebuie să aparţină obligatoriu de grupul Users.
Pentru modificarea drepturilor aferente grupurilor sau utilizatorilor se va selecta opţiunea
Tools->Security->User And Group Permissions. (Fig. 3.25)
Se pot acorda/revoca drepturi fie asupra unor baze de date, fie asupra obiectelor bazei de
date curente. Tot în această fereastră se pot modifica proprietarii obiectelor bazei de date curente
(proprietarul unui obiect fiind utilizatorul care a creat obiectul respectiv).
Utilizatorii şi grupurile de utilizatori nu sunt proprii unei baze de date, ci unei sesiuni Access.
Informaţiile referitoare la user-i sunt salvate într-o bază de date sistem (un fişier cu extensia mdw),
care va fi citită automat la deschiderea unei sesiuni Access. Aşadar, o bază de date asupra căreia au
fost definite protecţii la nivel de utilizator poate fi utilizată fără nici o restricţie într-o sesiune Access
în care nu este activată procedura de securitate user-level (utilizatorul implicit este Admin)!
5. Criptarea presupune ascunderea informaţiilor din baza de date, astfel încât aceasta să nu
Fig. 3.25
poată fi citită cu ajutorul unui editor de texte sau altor programme utilitare. Criptarea bazelor de
date se recomandă în mediile multiuser, când se doreşte păstrarea confidenţialităţii datelor. Bazele
de date criptate presupun operaţii suplimentare de decriptare automată, ceea ce încetineşte execuţia
programului Access.
Pentru a cripta/decripta o bază de date se selectează opţiunea Tools->Security-
>Encrypt/Decrypt Database.
5. Accesarea concurentă a bazelor de date
În regim multiuser, apare problema tratării accesului concurent la bazele de date, când doi
sau mai mulţi utilizatori doresc editarea în acelaşi timp a unei înregistrări. În acest caz, sistemul nu
poate proceda decât la tratarea secvenţială a utilizatorilor.
Spre deosebire de alte S.G.B.D.-uri (dBase, FoxPro), sistemul Access rezolvă automat
această problemă, prin două metode:
1. Blocarea optimistă – presupune blocarea paginii ce conţine înregistrarea curentă în timpul
salvării acesteia de către un utilizator. Astfel, înregistrarea respectivă va fi read-only pentru ceilalţi
utilizatori, atâta timp cât operaţia de salvare nu este încheiată.
Această variantă de blocare a datelor poate fi realizată astfel:
Implicit, prin selectarea opţiunii Default Record Locking din meniul Tools->Options-
>Advanced;
La nivel de formular, prin setarea proprietăţii Record Locks pe valoarea No Locks;
Pentru un obiect recordset, prin setarea proprietăţii LockEdits pe valoarea False.
2. Blocare pesimistă – permite blocarea paginii ce conţine înregistrarea curentă, în timpul
editării acesteia de către un utilizator. Înregistrarea curentă nu va putea fi editată de un alt utilizator
până când ea nu va fi salvată de utilizatorul curent. Blocarea pesimistă se poate realiza:
Pentru varianta implicită, prin selectarea butonului de opţiune Edited Record pe
meniul Tools->Options->Advanced;
La nivelul formularelor, prin setarea proprietăţii Record Locks pe valoarea Edited
Record;
Pentru un obiect recordset, prin atribuirea valorii True pentru proprietatea Lock
Edits.
6. Repararea şi compactarea bazei de date
Apar situaţii în care baza de date poate fi alterată datorită unor evenimente imprevizibile
(Exemplu: oprirea bruscă a calculatorului în timpul scrierii în baza de date). Opţiunea Tools-
>Database Utilities->RepairDatabase, din meniul Access, permite repararea bazelor de date.
Utilizatorul va fi anunţat printr-un mesaj, dacă operaţia de reparare a fost sau nu încheiată cu
succes.
Compactarea este operaţia prin care se reduce dimensiunea bazei de date (nu trebuie făcută
confuzie între compactare şi comprimare, care este o operaţie realizabilă prin intermediul unor
programe specializate în acest scop). În urma ştergerii diferitelor obiecte ale bazei de date (tabele,
formulare, rapoarte, etc.) sau chiar a unor înregistrări, Access nu elimină şi spaţiul afectat acestora,
astfel că, după mai multe operaţii de acest gen, dimensiunea bazei de date rămâne aceeaşi. Prin
compactare se elimină din baza de date tocmai aceste spaţii neutilizate.
Pentru compactarea unei baze de date, se selectează opţiunea Tools->Database Utilities-
>Compact Database.
Se recomandă compactarea bazei de date după o operaţie de reparare, deoarece în cursul
acesteia Access creează o serie de obiecte temporare.
.7. Optimizarea bazelor de date
În general, o aplicaţie proiectată şi dezvoltată corect presupune nu numai obţinerea
rezultatelor cerute de beneficiar, ci şi asigurarea unui timp cât mai redus pentru prelucrarea datelor
şi furnizarea rezultatelor finale. Optimizarea bazei de date poate fi realizată automat prin apelarea şi
furnizarea programului Performance Analyzer, apelabil prin selectarea opţiunii Tools->Analyze->
Performance din meniul Access. (Fig. 3.26).
Performance Analyzer furnizează recomandări în vederea optimizării bazei de date, dar
permite şi optimizarea propriu-zisă a acesteia.
Este indicat însă ca şi programatorul să ţină cont de următoarele recomandări în vederea
optimizării bazei de date:
1. Optimizarea tabelelor. În general, procesul de nominalizare conduce la obţinerea unor
tabele optimizate. Se mai pot avea în vedere şi următoarele recomandări:
Folosirea unor tipuri de date şi dimensiuni cât mai adecvate pentru câmpuri. De
exemplu, pentru câmpul UnitateDeMăsură este suficientă o dimensiune de maximum
3 caractere.
Evitarea definirii cheilor primare pe câmpuri de tip Text, Numeric (Single), Numeric
(Double). Cele mai recomandate tipuri pentru astfel de chei sunt cele de tip
AutoNumber, Numeric (Byte, Integer sau LongInteger).
Indexarea câmpurilor care vor fi folosite în ordonări, criterii (filtre) sau în relaţii
(dacă pentru câmpurile de tip cheie externă, utilizatorul nu creează indecşi, acest
lucru va fi făcut automat de Access);
Utilizarea moderată a indecşilor. Chiar dacă aceştia permit realizarea unor operaţii
într-un timp mai scurt, nu se recomandă folosirea lor abuzivă, deoarece operaţiile de
actualizare vor fi mai lente.
2. Optimizarea interogărilor. Pentru obiectele de acest tip se au în vedere următoarele:
Folosirea în criterii (sau clauza SQL Where ) numai a câmpurilor indexate;
Se va evita folosirea în criterii a câmpurilor din partea n a unei relaţii;
Fig. 3.26
Utilizarea în clauza Group By (dacă este posibil) a câmpurilor indexate şi totodată a
unui număr redus de câmpuri;
Pentru interogările destinate numai afişării datelor se poate recurge la folosirea
tipului Snapshot;
Salvarea interogărilor în timpul execuţiei.
3. Optimizarea formularelor.
În general, formularele sunt mari consumatoare de resurse, aşa încât sunt indicate
următoarele:
Evitarea supraîncărcării formularelor cu controale;
Renunţarea la utilizarea unor imagini grafice în cadrul formularelor;
Evitarea deschiderii mai multor formulare decât sunt necesare;
Setarea proprietăţii Data Entry pe Yes reduce timpul necesar încărcării unui formular;
Evitarea folosirii unor proceduri complicate pentru evenimentul OnCurrent.
4. Optimizarea rapoartelor.
Pentru rapoarte se recomandă:
Renunţarea la ataşarea controalelor de tip imagine, butoane, casete combinate, etc.,
deoarece acestea nu vor avea nici o utilitate într-un raport;
Utilizarea unor proceduri cât mai simple pentru evenimentul On Format sau chiar
renunţarea, dacă este posibil la aceste proceduri;
Sortarea şi gruparea datelor se va face, dacă este posibil, numai după câmpuri
indexate.
.8. Analiza şi documentarea bazelor de date
Una dintre principalele etape parcurse în realizarea unei aplicaţii o constituie şi elaborarea
documentaţiei care trebuie să cuprindă descrierea tuturor obiectelor bazei de date şi care este
necesară pentru dezvoltări/modificări ulterioare.
Access pune la dispoziţia dezvoltatorilor de aplicaţii un utilitar numit Documenter, care
elaborează automat documentaţia fie pentru toate, fie pentru anumite obiecte bazei de date.
Apelarea acestui utilitar se realizează prin operaţiunea Tools->Analyze->Documenter. (Fig. 3.27)
Documentaţia generală de Documenter conţine:
1. Pentru baza de date:
Versiunea;
Fig. 3.27
Utilizatorii şi grupurile de utilizatori ce pot accesa baza de date etc.
2. Pentru un obiect de tip tabel:
Proprietăţi (condiţii de validare, numărul de înregistrări etc.);
Câmpurile cu proprietăţile aferente (denumire, tip, lungime, cheie primară etc.);
Indecşii (denumire, tip etc.);
Relaţiile cu celelalte tabele ale bazei de date;
Utilizatorii/grupurile de utilizatori ce au drepturi asupra tabelei.
3. Pentru obiecte de tip interogare:
Proprietăţi (tipul de interogare, data creării etc)
Comandă SQL aferentă;
Câmpurile conţinute de interogare, cu proprietăţile corespunzătoare;
Indecşii conţinuţi din interogare;
Drepturile aferente fiecărui utilizator asupra interogării respective.
4. Pentru obiecte de tip formular:
Proprietăţi (tipul formularului, sursa de date etc.);
Controale conţinute de formular, inclusiv secţiunile acestuia, cu proprietăţile
aferente;
Module incluse în formular;
Utilizatorii, cu permisiunile fiecăruia asupra formularului.
5. Pentru rapoarte:
Proprietăţi (titlul, sursa de date etc.);
Obiectele incluse (controale şi secţiuni), cu proprietăţile respective;
Utilizatorii ce pot executa sau modifica raportul.
6. Pentru obiectele macro:
Proprietăţi (data creării, proprietarul etc.);
Acţiunile conţinute;
Utilizatorii ce pot executa/modifica macro-ul.
7. Pentru obiecte modul:
Proprietăţi (data creării, proprietarul etc.);
Codul inclus (declaraţii, funcţii şi proceduri VBA);
Drepturile utilizatorilor asupra modulului.
8. Pentru relaţiile definite între tabele:
Tabelele ce formează relaţiile;
Tipul fiecărei relaţii etc.
.9 Personalizarea interfeţei bazei de date prin intermediul ferestrei Start-Up.
Pentru o bază de date Access se poate stabili un formular care să fie deschis automat la
deschiderea bazei de date. De exemplu un formular care să ofere butoane pentru accesul la toate
funcţiile aplicaţiei (formulare, rapoarte, interogări, tabele), fără ca utilizatorul să fie nevoit să
cunoască numele formularelor, rapoartelor, etc. Stabilirea acestui formular şi a altor parametrii ai
bazei de datese realizează din meniul Tools->StartUp. (Fig. 3.28).
În fereastra StartUp se identifică următorii parametrii:
Allow Full Menus – sunt/nu sunt accesibile meniurile Access 2002
Allow Built-in Toolbars – sunt/nu sunt accesibile barele de instrumente Access 2002
Allow Toolbar/Menu Changes – se pot/nu se pot modifica meniurile şi barele de
instrumente ale bazei de date
Display Database Window – este/nu este accesibilă fereastra bazei de date
Display Status Bar - este/nu este afişată bara de stare;
Use Access Special Keys – sunt/nu sunt accesibile tastele pentru accesul la fereastra
bazei de date, fereastra Immediate Window, etc.
3.4 FUNCŢII ACCESIBILE ÎN DEZVOLTAREA APLICAŢIILOR
Abs (<expresie_ numerică>)
Returnează valoarea absolută a unei expresii numerice sau a unui număr.
Exemplu:
Sub Test_Abs
MsgBox Abs(-5723) 'afişează 5723
End Sub
Asc (<sir_ caractere>)
Returnează codul primului caracter din şirul de caractere specificat
Chr (<cod_caracter>)
Returnează caracterul corespunzător codului specificat
Date ()
Returnează data sistemului
Day (<data_calendaristica>)
Returnează numărul zilei din lună( 1-31)
Month (<data_calendaristică>)
Fig. 3.28
Returnează numărul lunii din an (1-12)
-Year (<data_calendaristică>)
Returnează anul.
Observaţie (<data_calendaristică> ) poate fi o expresie numerică, o expresie şir de
caractere sau de tip variant, ale căror evaluări să fie compatibil cu formatul dată calendaristică
recunoscut de Access.
Hour (<expresie _timp>)
Returnează numărul orei din zi.
Minute(<expresie_timp>)
Returnează numărul minutului dintr-o oră.
Second (<expresie_timp>)
Returnează numărul unei secunde dintr-un minut
Observaţie:(<expresie_ timp>) poate fi o expresie numerică, o expresie şir de caractere sau
de tip variant, ale căror evaluări să fie compatibil cu formatul timp recunoscut de Access.
Exp (<expresie_numerică>)
Returnează valoarea constantei e ridicată la o putere (expresie numerică sau număr)
Exemplu:
Sub Test ()
MsgBox Exp(15) calculezi e la puterea 15.
End Sub
Log (<expresie_numerică>)
Returnează logaritm natural dintr-un număr sau dintr-o expresie numerică
Int (<expresie_numerică)
Returnează partea întreagă dintr-un număr sau dintr-o expresie numerică. În situaţia unui
număr negativ funcţia Int returnează primul număr negativ întreg mai mic sau egal decât numărul
specificat.
Fix (<expresie_numerică>)
Returnează partea întreagă dintr-un număr sau dintr-o expresie numerică. În situaţia unui
număr negativ funcţia Fix returnează primul număr negativ întreg mai mare sau egal decât numărul
specificat.
Exemplu:
Sub Test_Int_Fix()
MsgBox Int (-10,54) ‘afişează -11
MsgBox Int (10,54) ‘afişează 10
MsgBox Fix (-10,54) ‘afişează -10
MsgBox Fix(l 0,54) ‘afişeaza 10
End Sub
IsNull (<expresie>)
Returnează valoarea adevarată (True) dacă expresia dintre paranteze conţine valoarea Null
IsError (<expresie>)
Returnează valoarea adevarată (True) dacă expresia dintre paranteze conţine o eroare.
IsEmpty (<expresie>)
Returnează valoarea adevarată (True) dacă expresia dintre paranteze nu conţine o valoare.
IsDate (<expresie>)
Returnează valoarea adevarată (True) dacă expresia dintre paranteze este compatibilă cu o
dată calendaristică.
IsNumeric (<expresie>)
Returnează valoarea adevarată (True) dacă expresia dintre paranteze poate fi evaluată ca
număr
IsObject (<identificator>)
Returnează valoarea adevărată (True) dacă expresia dintre paranteze este de tip obiect.
Exemplu:
Sub Teste ()
Dim Data As Date, şir As String, număr As Integer
Data= #10/11/2001#
Sir ="abed"
Număr = 1234
MsgBox IsDate (Data) ‘afişează True
MsgBox IsNumeric (Sir) ‘afişează True
MsgBox IsNumeric (Sir) ‘afişează True
MsgBox IsObject (Data) ‘afişează True
MsgBox IsNumeric (Număr) ‘afişează True
End Sub
Len (<şir_caractere/ variabilă>)
Returnează numărul de caractere ale şirului de caractere specificat sau numărul de octeţi
necesari pentru a stoca conţinutul unei variabile
Space (număr)
Returnează numărul de spaţii specificate
Val(<şir_ caractere>)
Returnează rezultatul evaluării şirului de caractere specificat într-un număr.
Mid (<şir caractere, poziţie_start, [lungime]>
Extrage un şir de caractere dintr-un alt şir de caractere.
şir_caractere - şirul de caractere din care se extrage;
pozitie_start - poziţia din şirul de caractere, de unde începe extragerea;
lungime - numărul de caractere care se extrage.
Funcţii pentru conversia tipurilor de date
FUNCŢIA TIPUL DE DATĂ AL
VALORII RETURNATE
Cbool (<expresie>)
Boolean
Cbyte(<expresie>)
Byte
Ccur(<expresie>)
Currency
Cdate(<expresie>)
Date
CDbl(<expresie>)
Double
Cdec(<expresie>)
Decimal
Clnt(<expresie>)
Integer
CLng(<expresie>)
Long
CSng(<expresie>)
Single
CStr(<expresie>)
String
Cvar(<expresie>)
Variant