Introducere Modele Concepte Obiective SGBD SGBD Distrib

SGBD Access

Limbajul SQL

Visual Basic

Nivelul extern Nivelul concept Nivelul logic Nivelul intern Proiectarea bd Prezentare Crearea struct Formulare Interogări Rapoarte Macrouri Interfaţa WWW Facilităţi Limbajul SQL Creare interog Definire date Selectie date Manipulare date Interogari imbr Module VBA In/Out Variabile Operatori

Funct si proc Struct alternat Struct repet Obiecte Access Evenimente

Capitolul 1: Introducere
1.1 Conceptul de baza de date
Organizarea datelor în vederea prelucrarii pe calculator este o activitate tot asa de importanta ca si realizarea programelor. Cele doua componente principale ale unui sistem informatic: datele si programele, se gasesc într-o strânsa interdependenta. Un program, oricât de elaborat si rafinat ar fi, nu va produce rezultatele scontate, daca va lucra cu o structura de date depasita. Tot asa de bine, o structura de date bine pusa la punct nu va putea suplini carentele unui program care o prelucreaza.Trebuie făcută distincţie între date, informaţii şi cunoştinţe. Din punct de vedere al prelucrării pe calculator, datele sunt definite de trei elemente: un identificator, atribute şi valoare. Exemplu: cantitate (identificator), număr real şi pozitiv (atribute), 50,5 (valoare). O bază de date poate fi definită ca un ansamblu de date elementare sau structurate, accesibile unei comunităţi de utilizatori. Mai concret, o bază de date este un ansamblu de fişiere intercorelate, care conţine nucleul de date necesare unui sistem informatic (aplicaţie informatică). Un fişier este un ansamblu de înregistrări fizice, omogene din punct de vedere al conţinutului şi al prelucrării. O înregistrare fizică este unitatea de transfer între memoria internă şi cea externă a calculatorului. Aceasta este formată din una sau mai multe înregistrări logice. O înregistrare logică este unitatea de prelucrare din punct de vedere al programului utilizator. Aceasta este formată dintr-un ansamblu de câmpuri, care descriu o anumită realitate.

1.2 Obiective fundamentale ale unei baze de date
Centralizarea datelor permite: suprimarea redundanţei, asigurarea unicităţii înregistrării şi controlul centralizat (asupra datelor). În prelucrarea clasică în care fişierele sunt dedicate aplicaţiilor, aceleaşi date apar înregistrate în mai multe fişiere şi în formate diferite. Acest lucru implică o utilizare ineficientă a spaţiului de memorie externă, actualizarea dificilă a acestor date şi lizibilitate redusă ca urmare a formatelor diferite. Independenţa între date şi prelucrări.Baza de date, ca imagine a unei anumite realităţi, trebuie actualizată permanent. Acest lucru nu trebuie să afecteze programele de prelucrare. Pentru aceasta trebuie ca fiecare program să aibă o viziune proprie asupra BD Realizarea de legături între entităţile de date, care sunt indispensabile pentru exploatarea eficientă a sistemului informatic. Spre exemplu, în cadrul gestiunii aprovizionării, trebuie asociat un furnizor la lista de produse pe care le vinde şi invers, un produs la lista de furnizori, precizând condiţiile de vânzare pentru un furnizor şi un produs. Integritatea datelor asigură fiabilitatea şi coerenţa bazei de date (BD). Pentru aceasta trebuie definite restricţii de integritate cum ar fi: apartenenţa la o listă de valori sau interval;

apartenenţa la un anumit format; reguli de coerenţă cu alte date. Securitatea datelor. Baza de date trebuie să fie protejată împotriva unei distrugeri logice (anomalie de actualizare) sau fizice. Pentru aceasta există instrumente care permit: crearea unor puncte de repriză; altfel spus, salvarea din timp în timp a unor copii coerente ale bazei de date; gestiunea unui jurnal de tranzacţii; lista operaţiilor realizate asupra bazei de date după ultimul punct de repriză. Confidenţialitatea datelor este asigurată prin proceduri de: identificare a utilizatorilor prin nume sau cod; autentificarea prin parole; autorizarea accesului diferenţiat prin drepturi de creare, consultare modificare sau ştergere pentru anumite segmente de date. Partajarea datelor permite înlănţuirea tranzacţiilor solicitate simultan pe aceeaşi înregistrare din baza de date, prin blocarea cererilor în aşteptare şi deservirea ulterioară a acestora.

1.3 Sistemul de Gestiune a Bazelor de Date
Un sistem de gestiune a bazelor de date constituie o interfaţă între utilizatori şi BD, care permite în principal crearea, actualizarea şi consultarea acesteia. În acest context putem defini SGBD ca un instrument de asamblare, codificare, aranjare, protecţie şi regăsire a datelor în BD. Principalele funcţiuni pe care le îndeplineşte un SGBD sunt următoarele: memorarea datelor pe suportul extern prin sistemul de gestiune a fişierelor; gestiunea datelor şi a legăturilor dintre ele în vederea unei regăsiri rapide prin intermediul sistemului de acces (SGBD intern); introducerea şi extragerea datelor din / spre exterior în forma cerută de utilizator prin intermediul SGBD–ului extern. SGBD-ul poate prelucra mai multe cereri, provenind de la mai multe aplicatii, fiecare aplicatie avand propria schema logica de descriere a datelor.

1.4 Sisteme de Gestiune pentru Baze de date Distribuite (SGBDD)
Necesitatea descentralizării sistemelor informatice, pe de o parte, şi realizarea pe plan mondial a unor reţele de calculatoare care permit conectarea mai multor baze de date într-o reţea, pe de altă parte, au dus la apariţia bazelor de date distribuite şi, implicit, a SGBDD. BDD reprezintă un salt calitativ superior în evoluţia bazei de date, deschizând noi perspective în proiectarea şi realizarea sistemelor informatice. Un sistem de BDD este format dintr-o colecţie de baze de date locale, amplasate geografic în puncte diferite (noduri ale unei reţele de calculatoare) şi legate logic prin relaţii funcţionale, astfel încât pot fi văzute la nivel global ca o singură bază de date. Obiectivele principale ale unui SGBDD sunt: definirea şi manipularea colecţiilor de date distribuite pe calculatoare diferite, ca un singur ansamblu logic (baza de date distribuită);

distribuirea datelor trebuie să se facă după criterii foarte variate care să răspundă tuturor necesităţilor utilizatorilor; utilizatorii manipulează datele fără a cunoaşte locul unde sunt memorate; pentru creşterea gradului de fiabilitate sau de performanţă, datele pot fi duplicate pe mai multe sisteme, fără ca utilizatorii să cunoască acest lucru; asigurarea coerenţei bazei de date în cazul operaţiilor de actualizare şi de reluare în caz de incidente la unul sau la mai multe din nodurile reţelei; exploatarea bazei de date în regim de multiacces; controlul accesului la date.

Capitolul 2: Niveluri şi modele de reprezentare a datelor în bazele de date
În demersul realizării unei baze de date există trei niveluri de percepţie a acesteia : extern, corespunzător utilizatorilor, care îşi exprimă cerinţele informaţionale prin aşa-numitele scheme externe (subscheme, fiecare subschemă corespunzând viziunii fiecărui utilizator al bazei de date); conceptual, aferent administratorului bazei de date, care se concretizează în schema conceptuală; este o abstractizare a unei părţi din lumea reală; intern, corespunzător programatorului, care realizează reprezentarea datelor pe suportul fizic; poartă numele de bază de date fizică; Determinarea structurii unei baze de date se poate aborda ascendent, realizându-se descrierea schemelor externe, urmată de elaborarea schemei conceptuale, sau descendent, definind mai întâi schema conceptuală şi deducând ulterior schemele externe posibil de obţinut.

2.1 Nivelul extern (schema externă)
La nivel extern, fiecare grup de utilizatori care manipulează datele posedă o anumită descriere a acestora. Această descriere corespunde felului în care grupul vede baza de date în programele lui de aplicaţii. Modelul extern este cel mai apropiat de utilizator. Modelul extern corespunzător unui utilizator sau grup de utilizatori reprezintă ceea ce vede acesta din baza de date. Modelul extern este derivat din modelul conceptual, putând prezenta deosebiri substanţiale faţă de acesta. Astfel un model extern cuprinde o parte a elementelor din modelul conceptual, dar poate conţine şi elemente care nu există în modelul condeptual şi nu au corespondent în baza de date fizică. Fiecare schema externă trebuie să se regăsească în modelul conceptual.

2.2 Nivelul conceptual (modelul conceptual)
Modelul conceptual integrează viziunile tuturor utilizatorilor asupra bazei de date. De asemenea acest tip de model este o descriere a conţinutului de informaţie al bazei de date şi nu cuprinde nici un fel de referire la modul de memorare al datelor sau al strategiei de acces la aceste date. Prin modelul conceptual este realizată independenţa fizică a datelor. Modelului conceptual i se asociază o transformare care defineşte modul în care structura logică de date este transpusă în structura fizică de memorare. Aceasta este interfaţa dintre modelul intern şi cel conceptual. Nivelul conceptual este nivelul central care reflectă datele structurate astfel încât acestea să poată fi preluate şi prelucrate cu ajutorul unui SGBD.

un lucru etc. un client etc. în general. un produs finit. este definită printr-un verb. Regulă (minimalitatea identificatorilor): în cazul identificatorilor compuşi dintr-un grup de atribute sau roluri.). În proiectarea bazelor de date.material (o persoană. Aceasta se poate asigura prin verificarea dependenţelor funcţionale dintre componentele identificatorului respectiv. Rolul unei entităţi este un nume care desemnează modul de participare a entităţii la o asociere. adică numărul de elemente componente ale identificatorului să fie minim. Un tip de entitate desemnează un ansamblu de entităţi constituite din date de acelaşi fel. identificatorul se subliniază cu o linie continuă. Sunt definite regulile de care trebuie să se ţină seama în manipularea datelor existente.al cărui tip este definit de un nume şi de o listă de proprietăţi (atribute). cu ajutorul identificatorilor entităţilor participante. numărul acestora dă gradul sau dimensiunea asocierii. Există atribute care necesită valori „nule” ale altor atribute cu care sunt relaţionate. Realizare a unei entităţi se numeşte mulţimea formată din câte o valoare pentru fiecare atribut al entităţii. Aşadar. Fiecare atribut care a fost selecţionat la definirea conţinutului unei entităţi este o caracteristică semnificativă pentru domeniul studiat. caracterizată printr-un nume şi un tip. Un atribut se defineşte ca fiind o proprietate a unei entităţi sau a unei corespondenţe. mărime etc. caz în care este recomandată precizarea rolurilor fiecărei entităţi în cadrul asocierii. de regulă.1.n. Pentru . livrare) şi a relaţiilor dintre ele (cantitatea şi preţul fiecărui articol livrat). Modelul EAC abstractizează lumea reală şi o transpune. în funcţie de criterii de omogenitate stabilite. Valorile fiecărui atribut component a ceea ce numim generic entitate alcătuiesc o realizare (instanţiere) a entităţii respective. O corespondenţă (asociere) poate avea proprietăţi particulare. dintre care cel mai frecvent utilizat în ultima vreme este modelul Entitate-Atribut-Corespondenţă(EAC). trebuie să nu existe un subgrup care să poată îndeplini rolul de identificator.1. Mulţimea realizărilor (valorilor) unui atribut se numeşte domeniu. în legături între entităţi. O corespondenţă sau asociere reprezintă o legătură logică între două sau mai multe realizări de entităţi. în scopul descrierii obiectelor lumii reale (comanda.n). Tipurile de date agregate sunt denumite generic atribute şi definesc proprietăţile obiectelor studiate. fapt care trebuie să fie luat în considerare la proiectarea bazei de date. În reprezentarea grafică. o entitate corespunde unui obiect din lumea reală. date de atribute specifice. se pot utiliza mai multe modele. 1.). numite entităţi. Identificarea asocierilor se realizează prin rolurile entităţilor participante. 1. în agregări de date elementare. deci. 0. imaterial (un eveniment) sau abstract . denumite corespondenţe (sau asocieri). O entitate este un model de obiect identificat în lumea reală . iar pe de altă parte. gruparea acestora. articole de încălţăminte.). printr-un nume (o factură.Schema conceptuală stă la baza modelului conceptual care va permite definirea proprietăţilor elementare ale obiectelor care interesează dintr-o întreprindere (de exemplu: model de pantof. O corespondenţă între realizări diferite ale aceleiaşi entităţi se numeşte asociere reflexivă . un furnizor. La nivelul limbajului natural. Cardinalitatea minimală/maximală exprimă modul de participare al realizărilor fiecărei entităţi la asociere (valori uzuale: 0. culoare. Identificatorul unei entităţi este atributul (sau grupul de atribute şi roluri) a cărui realizare (valoare) caracterizează în mod unic o realizare a entităţii. Mulţimea entităţilor care participă la o asociere formează colecţia acesteia. concret. la nivel conceptual. identificat. pe de o parte.

La livrare se întocmesc facturi care conţin data livrării ş articolele de ţncălţăminte. mărime} pentru Articol_încălţăminte {nr_factura. orice factură este trimisă unui client al fabricii. atributelor trebuie să fie unice în cadrul modelului conceptual. Acestea se numesc restricţii de integritate (RI). Exemple de RI: eliminarea redundanţelor (repetărilor) şi a omonimelor în denumirea entităţilor. De exemplu. cardinalitate minimă 1: întocmirea unei facturi trebuie să vizeze un client. valorile atributelor cu rol de identificator trebuie să fie unice şi nenule. rolurilor. Produsele finite ale unei fabrici. Factura_livrare} corespondenţă: {Se_facturează} atribute {cod. cota TVA corespunzătoare articolului respectiv. În exemplul urmator este ilustrată abstractizarea unui ansamblu de date. numele entităţilor.). aplicând modelul EAC. fiecare dintre ele într-o anumită cantitate şi la un anumit preţ unitar. corespondenţelor. cota_TVA} pentru Factura_livrare {cantitate_facturată. entitatea Autovehicul poate avea subtipurile De_închiriat şi De_vânzare. O asemenea situaţie s-ar putea repreyenta prin urm[toarea schemă EAC: entităţi: {Articol_încălţăminte.fiecare tip de entitate care participă la o asociere trebuie precizat câte o cardinalitate minimală şi una maximală. cardinalitate maximă 1: la livrare. culoare. model. denumire. orice realizare a acestora impune existenţa realizărilor entităţilor participante (este vorba de integritate referenţială). extras din limbajul natural. preţ_livrare} pentru Se_facturează identificatori: {cod} pentru Articol_încălţăminte {nr_factură} pentru Factură_livrare La realizarea modelului conceptual este necesar să se ţină seama şi de regulile pe care datele trebuie să le respecte permanent. O entitate poate participa la mai multe corespondenţe. în baza de date definită. repreyentând articole de încălţăminte sunt livrate clienţilor. atributelor. corespondenţelor. . chiar dacă într-o anumită perioadă nu i se trimite nici o factură de livrare. Reguli: o asociere nu poate exista decât o singură dată între aceleaşi entităti. cardinalităţile minime şi maxime se stabilesc pe baza regulilor de desfăşurare a activităţii în sectorul vizat. data_factura. respectiv tarif de închiriere etc. pot exista mai multe asocieri între aceleaşi entităţi. în baza de date a unei societăţi care tranzacţionează autovehicule. Un subansamblu de entităţi ale aceluiaşi tip de entitate formează un subtip al entităţii respective cu proprietăţi specifice. în cazul asocierilor. în acelaşi timp. iar apoi. fiecare cu date referitoare la felul tranzacţiei la care participă un autovehicul (preţ de vânzare. Exemplu: cardinalitate minimă 0: un client al fabricii poate să rămână în această postură.

1 .1 sau 1.1. 0. . supuse următoarelor restricţii: în fiecare coloană toate valorile sunt de acelaşi fel. mn) este numit tuplu. fiecare valoare este un număr sau un şir de caractere (nu trebuie să fie grup sau ansamblu). respectarea corelaţiilor între valorile atributelor din entităţi diferite sau între cele din entităţi şi din asocieri. iar dacă M1 = M2 = … = Mn. Într-o relaţie pot exista mai multe atribute care iau valori în aceleaşi domenii.3 Nivelul logic (modelul relaţional) Definirea modelului relational Modelul relaţional are la bază conceptul de relaţie definit în teoria matematică a mulţimilor ca fiind o submulţime a produsului cartezian al mai multor mulţimi: R M1×M2×…×Mn Familia de mulţimi pe care este definită relaţia se numeşte domeniu. un element al relaţiei t = (m1. ordinea liniilor în tabel nu este predefinită şi nu sunt admise duplicate. care reprezintă mulţimea valorilor existente la un moment dat în coloana pe care o desemnează în cadrul relaţiei. pentru fiecare articol de încălţăminte facturat. iar ale celei identificator. corespondenţa respectivă trebuie să nu fie ciclică. mărimea articolelor de încălţăminte să fie cuprinsă în intervalul [34-46].respectarea unor restricţii de domeniu. spre deosebire de atribut. de exemplu. excluziune şi egalitate de asocieri – dacă există – care vizează atât asocierea (toate rolurile dintr-o asociere). iar numărul de tupluri indică cardinalul relaţiei. reprezentând mulţimea tuturor valorilor posibile care definesc o anumită proprietate a unui obiect. incluziunea de roluri: un rol al entităţii într-o asociere impune un alt rol al său într-o a doua asociere : excluziunea de roluri: apare în situaţia în care roluri ale aceleiaşi entităţi se exclud reciproc: egalitatea de roluri: înseamnă o restricţie de incluziune reciprocă între două roluri ale aceleiaşi entităţi: Asemănător se stabilesc şi restricţiile de incluziune. 2. m2. Numărul n se numeşte gradul relaţiei (aritatea relaţiei). apoi cardinalităţile entităţii identificate să fie 1. Relaţiile se reprezintă într-o formă simplă prin tabele. cât şi toate entităţile participante. cum ar fi: data facturii să nu fie anterioară datei curente. relaţia este omogenă. … . în cazul identificării entităţilor prin intermediul rolurilor asumate de alte entităţi într-o asociere. Domeniul este o noţiune mai cuprinzătoare decât atributul. cantitate_facturată să satisfacă relaţia cantitate_facturată + 20 >= cantitate_în_stoc.

Proiecţia. Operatorii relaţionali de bază se împart în operatori de asamblare şi operatori unari. Operatorii unari se aplică asupra unei relaţii şi generează o altă relaţie. În funcţie de calificatorul Q se disting mai multe tipuri de compuneri: dacă Q este de forma Ai = Bj.>=. Operatorii de asamblare sunt operatori binari. dacă. Deoarece relaţiile reflectă un anumit aspect din realitate. Se numeşte domeniu primar un domeniu pe care este definit un singur atribut drept cheie primară. Algebra relationala Operatorii relaţionali se pot grupa în operatori de bază. A2. putem regăsi tuplurile relaţiei R2. un atribut al unei relaţii este cheie externă. utilizând o parte din valorile ei sau toate.coloanele sunt identificate prin nume distincte care reprezintă atributele relaţiei. diferenţa şi produsul cartezian. iar fiecare rând. dacă Q este de forma Ai = Aj. Prin intermediul proiecţiei.<>} se numeşte ø compunere. ceea ce face ca acesta să fie înlocuit cu operatorul de Join. se numeşte autocompunere. Altfel spus. Compunerea condiţională (Join) a două relaţii R1 şi R2 după calificatorul multiatribut Q este relaţia E ale cărei tupluri sunt cele ale produsului cartezian R1 x R2 care satisfac calificatorul Q. un tuplu distinct. Tuplurile unei relaţii se pot identifica în mod unic prin intermediul valorilor unuia sau mai multor atribute (eventual toate atributele). care primesc la intrare două relaţii şi generează la ieşire o singură relaţie. Operatorii auxiliari pot fi deduşi din setul de operatori de bază şi sunt: compunerea (Join). dintr-un tabel cu un anumit număr de coloane se obţine unul cu aceleaşi coloane. …. Diviziunea relaţiei R1 (A1. baza de date apare ca o colecţie de relaţii (tabele) normalizate. Aceştia joacă un rol foarte important în interogarea bazelor de date relaţionale. care pot genera toată clasa operatorilor relaţionali. dacă Q este de forma Ai ò Bj. acestea se supun unor restricţii care sunt de două tipuri: . spunem că A1 este cheie externă. urmată de o proiecţie care permite conservarea unuia dintre aceste atribute. dacă se regăseşte pe post de cheie primară într-o altă relaţie. aceasta este o relaţie E care conţine tuplurile comune celor două relaţii.>. Intersecţia o dau relaţiile R1 şi R2 cu aceeaşi schemă. Spre exemplu. realizarea produsului cartezian este foarte costisitoare. …. Aceştia sunt: reuniunea. Prin operatorul de selecţie. dar cu un număr mai mic de rânduri.<=. Privită prin prisma modelului relaţional. se numeşte echicompunere. formată din toate tuplurile care. Prelucrarea relaţiilor se face prin algebra relaţională sau calculul relaţional pe tuplu sau domeniu. dintr-un tabel cu un anumit număr de coloane se obţine unul cu un număr mai mic de coloane. în care fiecare coloană reprezintă un atribut distinct. care au aceeaşi semnificaţie ca şi în teoria mulţimilor. unde ò = {<. Dându-se două relaţii R1 şi R2 cu atributele A1 şi A2 chei primare definite pe acelaşi domeniu primar D. dă totdeauna un tuplu din R1. Din această clasă fac parte proiecţia şi selecţia. şi operatori auxiliari. egale ca nume. care joacă rol de cheie primară a relaţiei respective. intersecţia şi împărţirea (diviziunea). A2 … An) de grad (p+m) prin relaţia R2 (Ap+1. Ap) de grad p. Am) de grad m este relaţia E (A1. concatenate cu fiecare tuplu din R2. Compunerea naturală este o echicompunere pe R1 şi R2 după toate atributele având acelaşi nume în R1 şi R2. Selectia.

alte restricţii care se aplică asupra tuplurilor relaţiei şi nu asupra domeniilor. prin care valorile cheii primare trebuie să fie diferite de zero. reflectând anumite corelaţii de ordin valoric (egalitate. începând cu forma normală unu (1NF) şi ajungând (după ultimele cercetări) la forma normală cinci (5NF). F. 2. inegalitate). cantitatea (Q). integritatea referirii. cod beneficiar (B#). într-o colecţie de relaţii care să conserve informaţiile şi dependenţele funcţionale din relaţia iniţială (descompunerea fără pierderi). Procesul de normalizare a relaţiilor se realizează în mai mulţi paşi. localitatea beneficiarului (L). . ceea ce face ca acestea să nu poată fi adăugate. Pentru exemplificarea procesului de normalizare a relaţiilor vom face apel la o relaţie R definită pe atributele: cod produs (P#). codul poştal (C) şi prefixul telefonic al localităţii (T). Codd a arătat că într-o anumită formă relaţiile posedă proprietăţi nedorite. dacă şi numai dacă toate atributele ei conţin numai valori atomice. acestea se pierd. Acesta constă în descompunerea unei relaţii în conformitate cu mulţimea dependenţelor funcţionale F. altfel cheia nu va mai fi identificator. unitatea de măsură (U). Normalizarea relatiilor E. Anomalia de adăugare constă în faptul că anumite date care urmează să fie adăugate fac parte din tupluri incomplete (pentru care nu se cunosc toate datele). O relaţie este în forma normală 3 ( 3NF ) dacă şi numai dacă este în 2NF şi fiecare atribut noncheie nu este dependent tranzitiv pe cheia primară. preţul unitar (P).restricţii de integritate care depind de semantica valorilor domeniilor şi care cer ca relaţiile să se supună următoarelor reguli: integritatea entităţii. ori ştergerea făcându-se la nivelul tuplului. Codd a stabilit trei forme normale pentru relaţii şi a introdus procesul de normalizare care se bazează pe noţiunea de dependenţă funcţională (FD) ca relaţie între atributele unei entităţi ce are un caracter invariant. O relaţie este în forma normală 1 (1NF). Pentru a înlătura aceste anomalii. O relaţie este în forma normală 2 (2NF) dacă şi numai dacă este în 1NF şi orice atribut noncheie este complet dependent funcţional de cheia primară. potrivit căreia valorile unei chei externe trebuie să refere tuplurile unei alte relaţii sau să fie nedefinite.4 Nivelul intern (fizic) Nivelul intern (modelul fizic) este cel ce corespunde structurii în care sunt stocate datele în interiorul maşinii. pe care le-a numit anomalii de actualizare: Anomalia de ştergere constă în faptul că anumite date care urmează să fie şterse fac parte din tupluri în care se găsesc şi alte date care mai sunt necesare în continuare. Anomalia de modificare rezultă din faptul că este dificil de modificat o valoare a unui atribut atunci când ea apare în mai multe tupluri ale relaţiei. Sunt specificate tabelele (fişierele) care le conţin (nume.

Vom presupune. a datelor importante. prin intermediul asocierii 'Se_facturează'. din greşeală sau din rea-voinţă. Se vor avea în vedere cerinţele privind asigurarea protecţiei datelor. componentele fiecărui fişier (lungime. relaţii. tipurile de materiale si bonurile de consum. În vederea facilitarii întelegerii modului în care se creeaza o aplicatie în Microsoft ACCESS 2000. caracteristici proprii. de unde rezulta o corespondenta EMITE) Factura . de la MLD la MFD. legături între tabele).Factura ( Un furnizor poate emite de la 1 la n facturi. plasare a acestora în cadrul fişierului). În etapa a doua acest model trebuie transformat în modelul logic (relational) si apoi în modelul fizic (ACCESS). vom considera ca toate materialele cuprinse pe o anumita factura sunt destinate unei singure magazii. Magazie si Bon de consum.Material ( Într-o factura sunt cuprinse de la 1 la n materiale în diferite cantitati. asocierile.). Vom alege pentru aceasta o întreprindere cu activitate de productie. se concretizează în restricţii de integritate funcţională (RIF). Cele pentru care cardinalităţile maxime au valori egale cu n (sau mai mari ca 1) sunt restricţii de integritate multiplă (RIM). facturile. iar cantităţile facturate pot fi cunoscute creând o legătură între tabelele 'Factura_livrare' şi 'Produse_facturate'. de regulă. care nu depinde de furnizor. căile de acces la componentele tabelelor (indecşi. apoi. se numesc non-ierarhice.Magazie ( O magazie poate primi de la 1 la n facturi. Factura. cât şi în ceea ce priveşte accesul utilizatorilor la baza de date (stabilirea drepturilor de acces trebuie să se facă ţinând cont de rolul. Material. magaziile. în general. Pe baza intrarilor (facturi) si a iesirilor (bonuri de consum) se doreste determinarea nivelului stocurilor de materiale. ca materialele au un pret unitar de achizitie fix. Se doreste ca în cadrul acestui sistem sa se evidentieze furnizorii. Corespondenţele între entităţi care se caracterizează prin cardinalităţi 1. localizare etc. prin trecerea de la MCD la MLD. Conform teoriei proiectarii bazelor de date trebuie sa definim mai întâi modelul conceptual al datelor (modelul entitate-atribut-corespondenta). Materialele sunt receptionate de o magazie pe baza facturii si sunt eliberate sectiilor de productie pe baza bonurilor de consum. Acestea din urmă se recunosc uşor fiindcă. Managementul acestei întreprinderi doreste realizarea unui sistem informatic de gestiune a materialelor. De exemplu.1 (interesează cardinalitatea maximă egală cu 1) şi care. Identificarea corespondentelor: Furnizor . de asemenea. o factură poate fi accesată direct datorită unui index realizat pe numărul acesteia. de unde rezulta o corespondenta LINIE FACTURA cu atributul Cantitate intrata ) Factura . atât din punct de vedere al conţinutului câmpurilor din tabele (verificarea şi validarea valorilor câmpurilor la introducere. iar asocierile sunt denumite ierarhice. cu secvenţe de program special concepute).4 Proiectarea bazei de date Proiectarea unei baze de date presupune realizarea modelelor conceptual. funcţia şi sarcinile fiecărui utilizator).organizare. au proprietăţi (atribute) specifice. logic şi fizic. în timp ce asocierile ierarhice nu au. de unde rezulta o corespondenta PRIMESTE ) . Pentru a micsora gradul de dificultate a aplicatiei propuse. în acest caz. câmpuri. nu au proprietăţi specifice. vom folosi un studiu de caz practic. 2. de cele mai multe ori. evitarea ştergerii. Modelul conceptual al datelor: În urma analizei problemei rezulta urmatoarele entitati: Furnizor.

de unde corespondenta LINIE BON DE CONSUM cu atributul Cantitate iesita ) Bon de consum .n) un furnizor emite cel putin o factura (cardinalitate minima 1). un furnizor poate emite mai multe facturi (cardinalitate maxima n). dinspre entitatea Factura (1.n) o magazie primeste cel putin o factura (cardinalitate minima 1). Corespondenta LINIE BON DE CONSUM dinspre entitatea Material (0. dinspre entitatea Factura (1.n) un material este inclus în cel putin o factura (cardinalitate minima 1). Corespondenta PRIMESTE dinspre entitatea Magazie (1.1) factura este emisa de cel putin si de cel mult un furnizor (cardinalitate 1. Corespondenta DESTINAT dinspre entitatea Bon de consum (1. Dinspre entitatea Bon de consum (1.Material ( Într-un bon de consum sunt cuprinse de la 1 la n materiale în diferite cantitati. un bon de consum poate contine mai multe materiale (cardinalitate maxima n). Corespondenta LINIE FACTURA dinspre entitatea Factura (1.1). un material poate fi inclus în mai multe facturi (cardinalitate maxima n). de unde rezulta corespondenta SE STORNEAZA ) Stabilirea cardinalitatilor: Corespondenta EMITE dinspre entitatea Furnizor (1. dinspre entitatea Material (1. o magazie poate primi mai multe facturi (cardinalitate maxima n). o factura poate contine mai multe materiale (cardinalitate maxima n).n) o factura contine cel putin un material (cardinalitate minima 1). .Magazie ( O magazie emite de la 1 la n bonuri de consum.n) un bon de consum contine cel putin un material (cardinalitate minima 1). de unde rezulta corespondenta REALIZEAZA ) Facturi-Facturi ( O factura poate fi stornata de 0 sau n facturi de stornare.1).1) un bon de consum este destinat cel putin si cel mult unei magazii (cardinalitate 1.n) un material poate sa nu fie inclus în nici un bon de consum (cardinalitate minima 0). unei magazii îi sunt destinate mai multe bonuri de consum (cardinalitate maxima n).Bon de consum .n) unei magazii îi este destinat cel putin un bon de consum (cardinalitate minima 1). un material poate fi inclus în mai multe bonuri de consum (cardinalitate maxima n).1).1) factura este trimisa la cel mult si la cel putin o magazie (cardinalitate 1. dinspre entitatea Magazie (1.

Modelul conceptual al datelor Modelul logic (relational) al datelor: În figura urmatoare se prezinta transformarea modelului relational într-o baza de date ACCESS (modelul fizic): .

Deoarece SGBD Access implementeaza în totalitate teoria modelului relational. este compatibil cu tehnologia ActiveX.Modelul conceptual poate fi completat cu datele privind evidenta anilor si a lunilor din fiecare an. Capitolul 1: Sistemul de gestiune a bazelor de date Access 2000 3. Principalele caracteristici ale SGBD-ului ACCESS sunt: este relaţional şi lucrează sub sistemul de operare Windows. un alt produs Microsoft care gestionează baze de date. care permite realizarea aplicaţiilor client/server. fiind un instrument util pentru publicarea informaţiilor în paginile Web. legaturile dintre tabele sunt asigurate prin corespondentele între cheile primare si cele externe. relationate cu cele privind clientii si produsele comandate de acestia.1 Prezentare generală Sistemul de Gestiune a Bazelor de Date Microsoft ACCESS 2000 face parte din pachetul de programe Microsoft Office şi este cea de-a cincea versiune a produsului de la lansarea sa iniţială în anul 1992. permite realizarea unor aplicaţii complexe prin utilizarea limbajului Visual Basic. trecerea de la MLD la MFD se face foarte simplu. permite comunicarea cu SQL Server. Trecerea de la MLD la MFD se face utilizând facilitatile si instrumentele oferite de SGBD-ul ales. este autodocumentat prin help. . Crearea structurii bazei de date in Access 2000 este prezentata in capitolul următor. dupa cum urmeaza: relatiile se transpun în tabele. este deschis comunicării cu alte Sisteme de Gestiune a Bazelor de Date cum ar fi FoxPro sau Paradox. apelabil contextural sau la cerere. permite accesul la baze de date din reţeaua Internet.

pagini Web (pages). Arhitectura Microsoft ACCESS O bază de date ACCESS poate fi definită ca fiind o colecţie de obiecte: tabele (table). Modulul (Module) reprezintă un obiect care conţine proceduri definite de utilizator şi scrise în limbajul de programare Visual Basic. afişarea acestora sau controlul întregii aplicaţii. rapoarte (report). Formularul (Form) este un obiect care permite introducerea datelor. formulare (form). permite utilizarea obiectelor ACCESS din cadrul altor aplicaţii rulate sub sistemul de operare Windows. permite crearea de comenzi rapide (shortcuts) în vederea accesării obiectelor ACCESS. Cererea de interogare (Query) este un obiect care permite vizualizarea informaţiilor obţinute prin prelucrarea datelor din una sau mai multe tabele şi/sau alte cereri de interogare. comenzi macro (macro) şi module (module). cereri de interogare (query).conţine instrumente wizard care permit utilizatorului crearea într-o manieră foarte simplă a obiectelor bazei de date. Raportul (Report) este un obiect care permite formatarea şi tipărirea informaţiilor obţinute în urma consultării bazei de date sub formă de documente. permite personalizarea bazei de date. permite crearea de grupuri de obiecte definite de utilizator în cadrul bazei de date. Comanda Macro (Macro) reprezintă un obiect care conţine o definiţie structurată a uneia sau mai multor acţiuni pe care ACCESS le realizează ca răspuns la un anumit eveniment. Crearea unei baze de date: . Tabela (Table) este un obiect definit de utilizator în care sunt stocate datele primare (expresia modelului relaţional). Pagina Web de accesare a datelor (Pages) reprezintă un obiect care include un fişier HTML şi alte fişiere suport în vederea furnizării accesului la date prin intermediul browser-elor Internet.

daca se doreste realizarea unui tabel cu clientii (Customers). utilizându-se instrumentul wizard. Utilizând instrumentul Wizard (Create table by using wizard). Crearea unui tabel utilizând instrumentul wizard permite adaugarea unor câmpuri standard ce se afla deja în cadrul bibliotecilor de tabele standard. . În cadrul acestei ferestre se definesc numele câmpului (Field Name). precum si relatiile pe care acestea le au cu alte câmpuri din alte tabele. În panoul de jos al acestei ferestre se introduc celelalte proprietăţi ale câmpului. în anumite privinte.La pornire. 3. care.2 Crearea structurii bazei de date În vederea facilitarii întelegerii modului în care se creeaza o aplicatie în Microsoft ACCESS 2000. o descriere a câmpului respectiv (Description). se pot selecta anumite câmpuri standard pentru aceasta tabela. aceasta trebuie mai întâi deschisă. vom folosi un studiu de caz practic (prezentat in capitolul anterior). Crearea tabelelor: Crearea structurii tabelelor se poate face în trei moduri: Utilizând fereastra de proiectare (Create table in design view) Prin introducerea datelor (Create table by entering data). În fereastra principală se selectează Open an existing file şi se activează butonul [OK] care va deschide o nouă fereastră de dialog Open asemănătoare cu fereastra de dialog File New Database. opţional. Revenind la primul mod de creare a unei tabele. prin realizarea unui dublu clic pe Create table in design view pe ecran va apărea fereastra Table. Deschiderea unei baze de date existente: dacă se doreşte modificarea sau consultarea unei baze de date creată anterior. Nu recomandam aceasta modalitate deoarece câmpurile din cadrul tabelelor standard au fost create pentru sistemul de lucru anglo-saxon. nu corespunde sistemului românesc. Modul cel mai eficient de creare a tabelelor îl reprezinta utilizarea ferestrei de proiectare. motiv pentru care vor fi prezentate mai întâi pe scurt celelalte doua moduri. în care se selectează baza de date ce se doreşte a fi modificată. De exemplu. SGBD ACCESS afişează ecranul din figura din care rezultă două posibilităţi: crearea manuală a unei baze de date goale: Blank Access database crearea unei BD cu ajutorul asistentului. tipul de date (Data Type) şi.

dacă se alege 1 sau nu se tastează nimic. Numărul de zecimale (Decimal places): În cadrul acestei proprietăţi se stabileşte numărul de zecimale ce pot fi atribuite câmpului. specifică acel caracter pe care Microsoft Access îl va afişa în locul în care trebuie să apară în şablon. de exemplu [Număr factură]. poate să conţină spaţiu şi nu trebuie să conţină următoarele caractere: [ . parantezele pentru prefix ori separatorii unui număr de telefon vor fi memoraţi împreună cu numărul însuşi). cum ar fi: !(999) 999-9999. De asemenea. Data type: tipuri şi subtipuri de date: Microsoft ACCESS 2000 permite ca numele de câmp să fie format din mai multe cuvinte. Ea nu afectează şi modul de introducere a datelor. În versiunile mai vechi de ACCESS denumirea acestui câmp ar fi fost scrisă într-un singur cuvânt sub forma Număr_factură. în momentul când utilizatorul nu introduce nici o valoare în acel câmp. Format: formatul în care sunt afişate datele: Proprietatea Format se utilizează pentru stabilirea modului în care numere.Field name: numele câmpurilor poate fi format din maximum 64 de caractere. ]. ! . date calendaristice. nu trebuie să fie cuvânt rezervat al ACCESS. Caption: aceasta permite specificarea unui al doilea nume în situaţiile în care primul nu este destul de semnificativ. dacă se utilizează 0 în această secţiune. formularelor şi rapoartelor.. ‘. El apare în antetul cererilor de interogare. pentru afişarea unui şir de caractere vid. . Proprietatea Input Mask (şablon de introducere a datelor) se poate specifica utilizând trei secţiuni: specifică şablonul însuşi. toate caracterele vor fi memorate ca valoare a câmpului în cauză (de exemplu. Default Value (Valoarea implicită): este o valoare care este atribuită automat. timp şi text vor fi afişate. în această secţiune se poate utiliza orice caracter. . se utilizează un spaţiu cuprins între ghilimele (" "). Input Mask (formatul de introducere). Există o listă de opţiuni şi se pot selecta valori cuprinse între 0 şi 15 sau Auto pentru determinarea automată a numărului de zecimale. vor fi memorate numai caracterele care alcătuiesc valoarea propriu-zisă a câmpului respectiv. specifică dacă Microsoft Access va memora toate caracterele tastate.

\. Access ne avertizează de acest lucru şi ne sugerează el o cheie primară. funcţii şi constante. după care se activează butonul cheie primară . În cadrul acestora se scriu şi se şterg datele aferente unei anumite operaţii. Relaţii între tabele: Din punct de vedere al momentului creării acestora. >. Mod. Validation Text (textul de validare): reprezintă textul care va apărea pe bara de mesaje în cazul în care valoarea introdusă nu respectă criteriul impus de regula de validare. Relaţiile care se pot stabili între tabele sunt de trei tipuri: unu la mai mulţi (one to many). IS NULL. se pot specifica o serie de proprietăţi care se referă în principal la sursa de introducere a datelor. Dacă uităm. valoarea introdusă într-un câmp. Required (cerut): prin această proprietate se stabileşte dacă prin introducerea unei înregistrări în cadrul tabelei este obligatorie şi completarea respectivului câmp. există două tipuri de relaţii între tabelele unei baze de date ACCESS. Access defineşte automat cheia primară a tabelei ca fiind indexată şi fără duplicate (No Duplicated). identificatorii se dau în paranteze drepte []. AND. IN. După descrierea câmpurilor componente ale unei tabele (conform teoriei modelului relaţional) trebuie să stabilim cheia primară a acesteia. conform criteriului furnizat sub forma unei expresii ACCESS. BETWEEN. Indexed (Indexat): dintr-o listă derulantă se poate alege între un index care admite valori duplicat sau unul care cere ca fiecare valoare a câmpului să fie unică. /. Revenim în cadrul ferestrei Relationships .Validation Rule (regula de validare): regulile de validare testează.se stabilesc după definirea tabelelor şi sunt cerute de modelul relaţional făcând parte din structura bazei de date. Acestea se realizează de obicei prin corespondenţele cheie primară – cheie externă şi sunt memorate în baza de date. -. Dacă cheia primară este formată din mai multe câmpuri se selectează primul. >=. Dacă nu se specifică nici un operator. Aceasta poate fi formată din unul sau mai multe câmpuri (cheie compusă). Prin activarea tab-ului Lookup din panoul de proprietăţi. <=. mai mulţi la mai mulţi (many to many). =. În cadrul unei baze de date nu este obligatoriu ca între toate tabelele să existe relaţii. ACCESS asumă automat operatorul de egalitate. relaţii temporare . Acestea folosesc: operatorii: =. *. nefiind înregistrate în structura bazei de date. Este posibil ca în cadrul unei aplicaţii să utilizăm şi tabele independente şi/sau de lucru (tabele temporare). se selectează acesta şi apoi se activează butonul cheia primară. <>. şi anume: relaţii permanente . Dacă cheia primară este formată dintr-un singur câmp. unu la unu (one to one). OR. iar celelalte se selectează în combinaţie cu apăsarea tastei CTRL.se stabilesc între tabele cu ocazia definirii unor cereri de interogare. <.

avansate) Formularele (Forms) reprezinta interfata principala între utilizator si o aplicatie MS Access. Cu această ocazie. fiind obiecte ale bazei de date ce permit introducerea si afisarea datelor într-o maniera cât mai atractiva. Pe ecran va aparea fereastra . În cadrul unei aplicatii. Datasheet (foaie de date). 3. Aceasta înseamnă că este necesară mai întâi încărcarea datelor în tabela principală şi apoi în cea secundară. în care se observă legătura stabilită între cheia primară şi cheia externă. se verifică dacă valoarea cheii externe se găseşte în tabela primară. în câmpul corespunzător cheii primare. în care dorim sa introducem date si activam butonul .pentru a descrie procesul de construire a relatiilor dintre tabele. O relatie între doua tabele se realizeaza prin operatia drag and drop de la cheia primara a tabelei principale la cheia externa a tabelei secundare. ACCESS va deschide fereastra de dialog Edit Relationship. În cazul în care este selectată proprietatea Enforce Referential Integrity (Impune integritate referenţială) în cadrul unei aplicaţii. formularele pot îndeplini mai multe functii: .3 Formulare (simple. aceasta înseamnă că atunci când se introduce o nouă înregistrare în tabela secundară. În cadrul acestei ferestre se pot vizualiza si/sau modifica datele deja introduse sau se pot introduce date noi. Introducerea datelor în tabele: În cadrul aplicatiilor ACCESS datele pot fi introduse în tabele printr-o multitudine de metode. În fereastra Database selectam tabela Camere.

afisarea de mesaje. controlul operatiilor realizate de aplicatie.afisarea si editarea datelor. tiparirea informatiilor. Pentru crearea unui formular exista mai multe moduri prin care se poate crea un formular. introducerea de date. dar cele mai importante sunt urmatoarele: . zona de detaliu si subsolul: Lucrul cu formulare se poate realiza in unul din următoarele moduri de vizualizare: Design View Form view Datasheet view în acest mod de vizualizare poate fi modificat design-ul formularului vizualizarea propriu-zisă a formularului mod de vizualizare sub formă tabelară Spre exemplu formularul Magazie se prezintă astfel în cele trei moduri de vizualizare: Design View Form View Datasheet V Pentru crearea formularelor in Access 2000 se utilizează controale. raport sau pagina de acces la date (Data access page). Un control poate afisa date si/sau efectua actiuni. Un formular este compus din trei parti: antetul. Un control este un obiect grafic care poate fi pozitionat pe un formular.

se verifica legatura dintre formularul principal si subformular prin proprietatile Link child fields si Link master fields. în caz contrar se stabilesc cele doua câmpuri de legatura. de creare de antet si subsol de pagina si de includere a unor câmpuri de tip OLE. formular (Form view). Facând apel la exemplul nostru. relatia de tip 1.n dintre tabelele Categorii si Camere face posibila crearea unui formular unde se vor afisa Camerele si în care se poate include un subformular pentru afisarea tarifului corespondent fiecarei camere. Prin urmare. Legatura automata este posibila în urmatoarele doua situatii: . aflate în general în relatii de tipul unu la unu sau unu la mai multi. iar în subformular cele din partea mai multi. crearea subformularului. faceţi drag&drop cu subformular peste formularul principal. se trece în modul Forms pentru verificarea rezultatului. Astfel. Într-un formular care contine un subformular se pot specifica criterii de filtrare numai asupra câmpurilor din formularul principal. un subformular poate fi de doua feluri: foaie de date (Datasheet view) . pentru a aduce modificari în formularul principal se comuta înapoi în modul Design. ceea ce va avea ca efect adaugarea unui control de tip subformular. se deplaseaza pictograma corespunzatoare subformularului din fereastra bazei de date în spatiul formularului principal. se trece în fereastra Database. pentru a afisa lista de proprietati a acestuia. care va afisa lista tuturor formularelor din baza de date. daca este cazul se deplaseaza controlul în locul dorit si se redimensioneaza în functie de necesitati. legatura dintre un formular si un subformular reflecta legatura dintre tabelele pe care se bazeaza. este un formular inclus într-un alt formular. Pentru includerea unui subformular într-un formular principal trebuie ăarcurşi următorii paşi: creare formularului principal. la un moment dat în formular vor fi afisate o înregistrare aflata de partea unu a relatiei iar în subformular înregistrarile corespondente din tabela aflata de partea mai multi a acesteia. Pentru a aduce un subformular într-un formular principal: se deschide formularul principal în modul Design. se activeaza butonul . de utilizare a culorilor. Create form in Design view. care sunt automat definite de ACCESS pe baza legaturilor dintre tabele. În mod implicit. prin activarea tastei F11. Astfel MS Access va crea automat o legătură îbtre cele două formulare. în formularul principal vor fi afisate datele din partea unu a relatiei. pentru a permite afisarea datelor din mai multe tabele sau cereri de interogare. crearea în fereastra de proiectare (manual) Un subformular.se poate crea într-o maniera foarte simpla si permite modificari privind dimensiunea si ordinea coloanelor. se face dublu clic pe bordura controlului ce reprezinta subformularul.ofera o mare suplete de prezentare prin posibilitati multiple de aranjare a datelor.prin utilizarea instrumentului wizard: Create form by using wizard. Din punct de vedere al formatului de prezentare.

. COUNT etc. Daca se utilizeaza scrierea unei expresii în modul neasistat. se activează fereastra cu proprietati (trebuie sa fie activat meniul View. formularul principal si subformularul contin doua câmpuri care sunt identice ca nume si ca tip. referiri catre controale aflate pe alte formulare (deschise) etc. iar cel din formularul principal este cheie primara a tabelei sursa.formularul principal si subformularul se bazeaza pe tabele aflate în relatii primare de tip 1-1 sau 1-n. se selectează formularul/raportul din meniul Edit->Select Form (Select Report)).rapoartele cât şi controalele posedă o serie de proprietă. situatie în care legatura se face prin cele doua câmpuri.) Utilizarea în expresii a controalelor din acelasi formular se realizeaza prin referirea numelui controalelor implicate în expresie. AVG. Proprietatile unui obiect se pot modifica respectând urmatoarea succesiune: dacă este vorba de un formular/raport se deschide în modul Design. situatie în care câmpurile de legatura vor fi cheia primara din tabela aflata de partea 1 si cheia externa din tabela aflata de partea n a relatiei.Valoare) în care am scris în proprietatea Control Source expresia:=Val([Cantitate intrata])*Val([Pret factura]): Utilizarea în controale a expresiilor din alte formulare se face prin: Forms! [Nume formular]![Nume control]. Atât formularele. daca este vorba de un obiect plasat pe un formular sau pe un raport acesta se selecteaza printr-un clic pe obiectul dorit. Pentru a putea fi evaluate astfel de expresii. Plasarea expresiilor în controalele aflate pe un formular sau subformular se realizeaza prin scrierea acestora în proprietatea Control Source a unui control. Pentru exemplificare am plasat o caseta de text (numele controluluiproprietatea Name. aceasta trebuie precedata de semnul egal (=expresie). Scrierea unei expresii se poate face asistat (Expression Builder) sau prin scriere directa.Properties sau prin actionarea butonului din bara cu instrumente). Expresiile plasate în formulare/subformulare pot fi grupate în: expresii simple expresii care utilizeaza functii agregate (SUM. Expresiile pot contine orice functie Access 2000 sau functii definite de utilizator. Într-un formular se pot plasa câmpuri calculate pe baza unor expresii.

În caseta de dialog New Query se executa clic pe Design view si apoi Ok. precum si posibilitatea determinarii de totaluri pe anumite câmpuri. cereri). Dublu clic pe numele fiecarui obiect pe care vrem sa-l folosim si apoi clic pe Close. În caseta de dialog Show Table se executa clic pe tab-ul care furnizeaza lista obiectelor bazei de date (tabele. cea de jos numita grila de proiectare (design grid). care sunt grupate în funcţie de anumite criterii sau sunt ordonate crescător sau descrescător. posibilitatea generarii de reprezentari grafice pe baza unor cereri de tip analiza încrucisata. 3.trebuie ca acele formulare de pe care sunt referite controale sa fie deschise în acel moment. Rezultatul executiei unei asemenea cereri este plasat într-o foaie de raspuns. în care se va construi cererea din punct de vedere structural si functional. utilizarea într-o cerere a mai multor tabele. care folosesc drept operanzi alte câmpuri existente în tabele. aceasta mai este cunoscuta si sub numele de grila QBE (Query By Exemples). crearea unor formulare si situatii finale (reports). Utilizarea într-o expresie de pe un formular a unor controale din subformular se realizeaza prin: [Nume subformular]. Interogările pot fi realizate prin intermediul obiectelor de tip Query.4 Interogarea bazei de date Interogarea bazei de date permite afişarea înregistrărilor din una sau mai multe tabele. Create query in Design view. introducerea unor câmpuri calculate pe baza unor formule. Pentru utilizarea unui asemenea obiect trebuie: creată o interogare. Avantajele oferite de modul de interogare a bazei de date prin cereri sunt: selectia câmpurilor din tabele si a înregistrarilor acestora pe baza unor criterii impuse de necesitatile informationale. ordonarea rezultatelor dupa anumite criterii. . aceasta interogare trebuie executată.Form![Nume control]. înregistrări care verifică anumite condiţii. crearea în fereastra de proiectare (manual) De asemenea o interogare poate fi creată şi apelând la limbajul SQL. Crearea unei cereri de interogare (Query) se poate face în mai multe feluri: prin utilizarea instrumentului wizard: Create query by using wizard. asemanator foii de date asociate unei tabele. Pentru a crea o cerere de interogare în modul Design view: În fereastra Database se realizeaza click pe Queries si New. care au la baza cereri de interogare (create anterior). modularitatea cererilor în sensul ca foaia de raspuns (rezultatul) a unei cereri poate fi folosita ca intrare pentru o noua cerere.Fereastra de lucru este structurata în doua parti: cea de sus care afiseaza structura tabelelor/cererilor selectate la punctul 4 si eventualele legaturi dintre ele.

se selecteaza Expresion. Pentru aceasta se realizeaza clic în celula de la intersectia coloanei câmpului cu caseta Sort si apoi se alege între Ascending sau Descending. În cazul în care se specifica mai multe câmpuri de ordonare (chei de sortare).. Prima modalitate genereaza relatii permanente între tabele. Ordinea câmpurilor de sortare influenteaza rezultatul acestei operatii. Aceasta trecere poate fi partiala sau totala. în functie de rezultatul final urmarit. valabile numai pentru cererea în cauza si care nu permit verificarea restrictiilor de integritate referentiala. Trecerea câmpurilor preluate din tabele/cereri în grila de proiectare se face prin deplasarea mouse-ului din lista de câmpuri în celulele din linia Field. în prima linie Field se introduce formula de calcul care are forma generala: Nume-rezultat: [Câmp1] Operator-aritmetic [Câmp2] . integer sau long integer. se stabilesc prin glisarea mouse-ului de pe câmpul de legatura din tabela principala spre câmpul de legatura din tabela secundara.19). câmpurile din structura unei cereri sunt de doua feluri: preluate din tabele/cereri sau calculate. este necesar ca acestea sa fie legate prin intermediul unor câmpuri. O cerere de interogare a bazei de date pe mai multe tabele este expresia operatiei de compunere (join) din algebra relationala. (de exemplu: TVA: [Pret-unitar] * 0.. prin comanda [Tools. Criteriile de selectie se introduc în celula aflata la intersectia coloanei câmpului cu linia Criteria din grila de interogare. Ordonarea datelor într-o cerere se poate face crescator sau descrescator. dupa unul sau mai multe câmpuri. În functie de sursa acestora. cea de-a doua genereaza relatii temporare. Daca nu exista legaturile necesare între tabele. clic în lista de câmpuri (oriunde) si apoi deplasarea în grila de proiectare. care permit totodata definirea restrictiilor de integritate referentiala. Din punct de vedere al . Crearea unor câmpuri calculate: se selecteaza coloana si se introduce comanda View > Totals care va introduce în grila de proiectare linia Totals. prin deplasarea caracterului * (care se gaseste în capatul listei) în grila de proiectare. operatia se executa începând cu primul câmp din stânga si continuând cu celelalte spre dreapta pâna la ultimul.Daca avem mai multe tabele si/sau cereri de interogare. Cele doua câmpuri trebuie sa fie de acelasi tip si dimensiune si pot fi chei primare sau externe. În ambele cazuri relatiile între tabele se stabilesc prin punerea în corespondenta a unui câmp dintr-o tabela sursa (principala) cu un alt câmp din tabela destinatie (secundara). Relationships] sau în timpul formularii unei cereri de interogare prin aducerea tabelelor necesare în zona de lucru si stabilirea legaturilor necesare. Trecerea tuturor câmpurilor dintr-o tabela/cerere în grila de proiectare se poate face în doua moduri: dublu clic în bara de titlu a listei de câmpuri. trebuie sa ne asiguram ca între ele exista legaturile necesare pentru a raspunde cerintelor impuse de noua cerere de interogare. câmpurile numerice de legatura Field Size trebuie sa fie: byte. Acestea pot fi simple sau compuse (cu ajutorul operatorilor AND/OR) si pot utiliza o serie de cuvinte rezervate si expresii definite de utilizatori. Cele doua câmpuri trebuie sa fie de acelasi tip si dimensiune si pot fi chei primare sau externe. Pentru formularea unor cereri de interogare bazate pe mai multe tabele.. daca nu exista. În ambele cazuri relatiile între tabele se stabilesc prin punerea în corespondenta a unui câmp dintr-o tabela sursa (principala) cu un alt câmp din tabela destinatie (secundara). Aceste relatii între tabele se pot stabili fie în momentul definirii structurii bazei de date (structura tabelelor).

Cele doua cereri se rezolva prin compunere externa. Prin aceste operatii s-a creat posibilitatea formularii unor cereri de interogare inverse. Prin urmare va fi utilizata operatia de echicompunere. aceasta operatie este de trei feluri: echicompunere. se alege una din optiunile: 1 . ceea ce a condus la notiunea de compunere externa stânga (left outer join). de la tabela destinatie spre tabela sursa (de la dreapta la stânga). ceea ce a condus la notiunea de compunere externa dreapta (right outer join). care nu au corespondente în tabela sursa. care va afisa fereastra Join Properties. se vor afisa câmpuri vide. Relatia dintre doua tabele.compunere externa stânga sau 3 . din punct de vedere al operatiei de compunere externa. Pentru înregistrarile din tabela destinatie. este privita în ambele sensuri: de la tabela sursa spre tabela destinatie (de la stânga la dreapta). Prin operatia de echicompunere se extrag toate înregistrarile din tabela sursa care au înregistrari echivalente în tabela destinatie (pentru care câmpurile de legatura sunt identice). Prin operatia de compunere externa se extrag toate înregistrarile din tabela sursa si înregistrarile din tabela destinatie. În acest sens se procedeaza dupa cum urmeaza: se lanseaza crearea unei noi cereri de interogare si se aduc în zona de lucru tabelele necesare. etc. compunere externa si compunere reflexiva. se aduc din tabele în grila de proiectare câmpurile dorite si se stabilesc criteriile de selectie. este clar ca în cadrul tabelei Categorii se pot gasi mai multe materiale decât în tabela Camere (anumite materiale pot exista în cadrul bazei de date dar nu au fost achizitionate pâna în prezent).) asupra unui câmp dintr-o tabela.echicompunere. se face la fel ca o cerere care comporta calcule. Min. Interogările de tip "analiză încrucişată" permit obtinerea unui set de rezultate complexe sub forma matriceala. în care numele liniilor (Li) si coloanelor (Cj) reprezinta criterii mixte de grupare. coloanele si valorile din tabel. Crearea unei cereri de interogare de acest tip. . asa cum sunt cele doua exemplificate mai înainte. care au valori egale în câmpurile de legatura. De exemplu daca vrem sa aflam intrarile de materiale pentru fiecare material (cantitativ). cu deosebirea ca trebuie specificate câmpurile care furnizeaza liniile. iar valorile din celulele tabelului (Vij) se obtin prin aplicarea unei functii predefinite (Sum. Max.SGBD ACCESS. Pentru alegerea tipului de compunere în cadrul unei cereri de interogare: se realizeaza dublu clic pe linia de legatura între cele doua tabele. 2 .compunere externa dreapta si apoi Ok.

se executa clic în celula Crosstab a câmpului care va da numele liniilor tabelului si se va selectiona Row Heading din lista derulanta. ori listat la imprimanta. Exista posibilitatea schimbarii acestei ordini în functie de necesitatile si preferintele utilizatorului.query. continutul lor fiind vizualizat pe ecran. Datasheet View pentru vizualizarea rezultatului. . Se pot specifica mai multe câmpuri pentru a furniza numele de linii ale tabelului si numai unul pentru a da numele coloanelor. La o cerere de interogare de acest tip pot participa una sau mai multe tabele. clic în celula Total a câmpului care va furniza valorile din tabel si se va selectiona operatia dorita (Sum. asadar. se stabileste daca aceasta va face parte dintr-o baza de date ACCESS sau de alt tip (cum ar fi Paradox) si daca va înlocui o tabela deja existenta (prin alegerea acesteia dintr-o lista). Max.se alege Query > Crosstab query. care va aduce în grila de interogare liniile Total si Crosstab si va afisa Group by în celulele din linia Total. 3. clic în celula Crosstab a câmpului care va furniza valorile din tabel si se va selectiona Value din lista derulanta. Min. MS Access permite şi crearea unor interogări de tip acţiune: Cererile de interogare de tip actiune se folosesc pentru: crearea de noi tabele pe baza celor existente. în mod standard. Obligatoriu. verificarea rezultatelor în tabele. stergerea de înregistrari din una sau mai multe tabele. vor avea numele coloanelor plasate de la stânga la dreapta în ordine alfabetica. etc. clic în celula Crosstab a câmpului care va da numele coloanelor tabelului si se va selectiona Column Heading din lista derulanta. Spre exemplu pentru a transforma o cerere de interogare de tip selectie în una de tip actiune cu functia de creare a unei noi tabele se parcurg etapele: se trece în modul de lucru Design view. pentru completarea cererii se activeaza butonul Ok din ultima caseta de dialog. ceea ce va afisa într-o caseta de dialog numarul de înregistrari din tabela creata.5 Rapoarte Situatiile finale (rapoartele) constituie. ceea ce va avea ca efect înregistrarea în baza de date a noii tabele. se alege Query > Make table . finalitati ale ciclului de creareactualizare-exploatare a unei baze de date. Crearea unei cereri de interogare de tip actiune se face în trei etape: crearea unei cereri de interogare de tip selectie si verificarea rezultatului acesteia. în aceasta caseta de dialog se introduce numele tabelei. se activeaza butoanele Ok din caseta de dialog si apoi comanda Query > Run. modificarea datelor dintr-un grup de înregistrari. comanda View.). câmpurile care furnizeaza numele liniilor si coloanelor trebuie sa aiba în linia Total criteriile Group by. transpunerea cererii de interogare de tip selectie într-o cerere de tip actiune. Tabelele care rezulta în urma executiei acestor cereri. Count. care va afisa o caseta de dialog. adaugarea unui grup de înregistrari la o tabela.

Exista si posibilitatea realizarii de rapoarte care nu au o anumita sursa de date. condus de evenimentele declansate de utilizator. a unor rapoarte în care datele sunt prezentate fie pe o singura coloana pentru fiecare înregistrare (optiunea Autoreport: Columnar). 3. ce realizeaza operatiuni diverse precum . fara vreo interventie a utilizatorului. pentru corespondenta (Label Wizard). sau dintr-o interogare (atunci când sunt necesare date din mai multe tabele). caz în care se raspunde mesajului "Choose the table or query where the object's data comes from:" prin selectarea din lista a tabelei sau interogarii care va sta la baza realizarii raportului. Comenzile macro din Access 2000 reprezinta o modalitate simpla si eficienta pentru automatizarea anumitor operatii.6 Comenzi macro Un element de maxima importanta în dezvoltarea unei aplicatii Access îl reprezinta automatizarea operatiilor efectuate si elaborarea unei interfete care sa faciliteze exploatarea bazei de date si sa eficientizeze actiunile utilizatorului. eventual. precum si executia conditionata a operatiilor trebuie sa permita chiar si neinitiatilor în Access o deprindere rapida a cerintelor aplicatiei. generarea automata. Situatiile finale pot cuprinde date provenind dintr-o tabela. oferind posibilitatea dezvoltarii unor aplicatii de o complexitate sporita fara a solicita cunostinte de programare în Visual Basic.Cu Access 2000 se pot realiza diferite obiecte de tip raport. interogarilor si rapoartelor într-un flux continuu. Practic. realizarea rapoartelor de catre utilizator. Trebuie specificat ca macrocomenzile Access sunt diferite de macro-urile înregistrate din Word sau Excel care se bazeaza pe generarea automata de catre program a codului VBA pentru o serie de comenzi ale utilizatorului. crearea de rapoarte sub forma de grafic (cu optiunea Chart Wizard). dar care vor îngloba informatii utile subrapoartelor definite pe tabele ori interogari între care nu au fost stabilite relatii. Exista urmatoarele modalitati de lucru: crearea rapoartelor asistata de un wizard. fie sub forma de tabel obisnuit (optiunea Autoreport: Tabular). o comanda macro reprezinta o actiune sau o secventa de actiuni selectate dintr-o lista prestabilita. realizarea unor rapoarte de dimensiuni corespunzatoare unor etichete utilizate. utilizând optiunea Reports din meniul Insert. dupa alegerea optiunii Design View. Integrarea formularelor.

În grila Action Argument din partea inferioara a ferestrei se completeaza argumentele actiunii selectate.Run Macro. Argumentele acestei actiuni permit executarea repetitiva a macrocomenzii de un anumit numar de ori. lansarea în executie a altor programe. poate parea la o prima vedere suficienta realizarii unor programe complexe. rapoarte etc. Lansarea în executie a comenzilor macro exista mai multe posibilitati: lansarea directa în executie se poate realiza efectuând dublu click pe pictograma macrocomenzii dorite în fereastra Database sau selectând din meniul Tools . salvarea înregistrarilor sau executarea unei fraze SQL. În plus.. Continutul grilei de argumente se modifica în functie de elementul selectat în lista Action. importat si exportat împreuna cu obiectele (formulare. În coloana Action se selecteaza din lista actiunea dorita.Macro .deschiderea sau închiderea formularelor. pe când comenzile macro nu. fiecare actiune având propriile argumente. tiparirea rapoartelor.. codul VBA ce raspunde evenimentelor este salvat.) conducând la o mai usoara întretinere a bazei de date. iar în cazul conversiei bazei de date în format MDE macro-urile ramân vulnerabile. trebuie precizat ca exista anumite limite si deficiente ce fac utilizarea macro-urilor inferioara programarii în VBA. Se efectueaza click pe butonul New. va fi executata doar prima comanda a grupului. Un prim argument ce poate fi mentionat în acest sens este lipsa de libertate a programatorului în a-si crea propriile functii si proceduri si de a utiliza o serie de functii disponibile în Access. putând fi modificate Crearea unei comenzi macro: Pentru elaborarea unei noi comenzi macro este necesara parcurgerea urmatoarelor etape: În sectiunea Objects din fereastra bazei de date se selecteaza eticheta Macros. cum ar fi butoanele de comanda.. În cazul în care se lanseaza în executie un grup macro fara sa se precizeze comanda dorita din cadrul acestuia. Aceste comentarii sunt optionale. În coloana Comment se tasteaza în dreptul fiecarei actiuni eventualele explicatii. executarea prin intermediul unui alt macro se efecteaza selectând în lista de actiuni RunMacro. Si din punct de vedere al securitatii exista unele dezavantaje: modulele pot fi protejate cu parola. . Desi atasarea rapida a macrocomenzilor la evenimentele controalelor de pe formulare.

3. lansarea în executie ca raspuns la un eveniment se poate realiza atasând o comanda macro unui obiect. ca urmare a îndepartarii codului. în special în cazul sistemelor multiuser. Fereastra Start-Up: reprezintă formularul care care este deschis automat la deschiderea bazei de date. Compactarea si "repararea" bazelor de date: Stergerea înregistrarilor din tabele ori a unor interogari. În acest caz baza de date compactata va lua locul celei vechi. Codul VBA va continua sa functioneze. Conversia bazelor de date în format MDE presupune compilarea tuturor modulelor. Este o facilitate extrem de utila.) generându-se practic doua fisiere. Drept urmare. Prin intermediul Database Splitter se ofera posibilitatea separarii tabelelor de celelalte obiecte ale bazei de date (formulare. iar performantele obtinute vor fi îmbunatatite prin gestionarea optima a memoriei. în urma selectarii unui element dintr-o lista derulanta (evenimentul AfterUpdate) sau a deplasarii mouse-ului într-o anumita zona a ecranului (OnMouseMove). Pentru a elimina aceste inconveniente Microsoft Access 2000 pune la dispozitia utilizatorilor facilitatea de compactare si reparare a bazelor de date. rapoarte etc.6 Alte facilităţi în MS Access 2000 Utilizarea bazelor de date create în versiuni diferite ale Microsoft Access: Exista situatii care impun utilizarea unui fisier creat în Access 2000 în sisteme unde sunt instalate versiuni mai vechi ale Microsoft Office. Database Splitter: acest program utilitar este disponibil în meniul Tools > Database Utilities. (În versiunea Access'97 cele doua optiuni erau prezentate separat). Dimensiunea bazei de date va fi considerabil micsorata. Database Utilities.. dupa instalarea Access 2000. rapoarte sau alte obiecte ale bazei de date conduce la fragmentarea acesteia. în prealabil. închiderea acesteia de catre toti utilizatorii. permitând fiecarui utilizator gestionarea elementelor de interfata într-un fisier separat.lansarea în executie din Visual Basic putem declansa o comanda macro din interiorul unei functii sau proceduri VBA. În acest sens exista posibilitatea conversiei bazei de date în formatul corespunzator. Compact and Repair Database. În cazul unei baze de date distribuite este necesara. doar în cazul în care ati selectat Additional Wizards Component la instalarea Access 2000. folosind metoda RunMacro a obiectului DoCmd . tabele). Convert Database. Pe de alta parte. Prin intermediul modelului orientat pe obiecte si dirijat de evnimente putem declansa o comanda macro ca raspuns la deschiderea sau închiderea unui formular ori raport (evenimentul OnLoad). un formular care sa ofere butoane pentru accesul la toate functiile aplicatiei (formulare. Putem efectua aceasta operatiune prin intermediul comenzii Tools. precum si compactarea bazei de date destinatie.. interogari.. fara ca utilizatorul sa fie nevoit sa cunoasca numele formularelor. De asemenea. rapoarte.. ca raspuns la un eveniment survenit în desfasurarea programului . spatiul ocupat pe disc de respectivul fisier este mai mai mare decât cel necesar în realitate. Pentru a realiza operatiunea de compactare asupra unei baze de date deja deschise se selecteaza din cadrul meniului Tools optiunea Database Utilities. De exemplu. dar nu va putea fi vizualizat sau editat.. Stabilirea . utilizatorii vor dori sa foloseasca în continuare aplicatiile anterior create. Compact and Repair Database. rapoartelor etc. renuntarea la posibilitatea de editare a codului VBA. evenimente precum penele de curent sau închiderea necorespunzatoare a unei sesiuni de lucru în Access pot determina deteriorarea structurii bazei de date.

Sistemul de gestiune a bazelor de date ACCESS 2000 accepta utilizarea limbajului de interogare SQL. manipulare a datelor. Access 2000 ofera urmatoarele posibilitati: stabilirea unei parole de acces la baza de date. . Access. Existenta tehnicii grafice QBE (Query by Exampleinterogare prin exemplu) permite proiectarea facila a unor interogari complexe. În acest capitol tratam în detaliu doar primele trei categorii de instructiuni. fiind conceput mai mult pentru crearea interogarilor de selectie. Pe lânga manipularea si regasirea datelor. după modelul: tabel. pentru a delimita parametrii dintr-o lista. standardul în domeniu este considerat ANSI (American National Standards Institute) SQL care are în vedere atât aspectele de definire. se va utiliza . manipularea si selectia informatiilor din bazele de date. se efectueaza si operatii complexe privind actualizarea si administrarea bazei de date. criptarea bazei de date stabilirea unei parole de acces la baza de date se realizeaza din meniul Tools Security .acestui formular si a altor parametrii ai bazei de date se realizeaza din meniul Tools-StartUp. pronuntat cel mai adesea de catre utilizatorii lui în formula abreviata "sequel". Amintim în continuare câteva dintre acestea: orice comandă se va încheia cu . într-o interogare unde se folosesc câmpuri din mai multe tabele.câmp . Pentru a putea scrie corect o instructiune SQL în ACCESS 2000 este necesara respectarea stricta a unor reguli de sintaxa. a devenit chiar un standard pentru o gama din ce în ce mai larga de sisteme de gestiune a bazelor de date. procesare a tranzactiilor. Sybase etc. cât si caracteristicile complexe privind integritatea informatiilor. Multi producatori de sisteme de gestiune a bazelor de date furnizeaza propriile extensii ale limbajului SQL. . Limbajul SQL permite o comunicare complexa si rapida a utilizatorului cu bazele de date.Set Database Password. Dialectul ACCESS contine unele particularitati în raport de standardul ANSI SQL. mai multe sisteme de gestiune a bazelor de date recunoscând principalele instructiuni ale acestuia (de exemplu: Oracle. Informatia definita pe grila QBE va fi automat transformata într-o instructiune SQL. Pentru a putea stabili sau elimina parola bazei de date.1 Limbajul SQL Unul dintre cele mai puternice limbaje structurate pentru interogarea bazelor de date relationale îl constituie în prezent SQL (Structured Query Language). aceasta trebuie deschisa pentru utilizare exclusiva. si anume cele care privesc definirea. Capitolul 4: SQL 4. interogare. în functie de cerintele si restrictiile acestuia. parantezele drepte încadreaza numele de câmpuri doar când acestea contin spatii sau simboluri neacceptate de SQL . asigurându-si astfel exclusivitatea. pentru a separa numele tabelului de numele câmpului. Pe plan mondial. Exista un anumit grad de standardizare a limbajului SQL.). se utilizeaza virgulele . Privitor la securitatea bazei de date. crearea de utilizatori pentru accesul la baza de date si stabilirea de drepturi de acces pentru fiecare. cursoarele derulante sau jonctiunile externe. Acesta.

OLE Object etc. Date.valorile de tip sir se marcheaza prin apostrof sau ghilimele . Decimal. În cazul în care cererea de interogare SQL ACCESS are erori de sintaxă sau determină obţinerea de rezultate eronate. câmp2 tip_data [NOT NULL]. pentru a evidentia valorile de tip data/timp se apeleaza la caracterul #. pentru a crea interogarea SQL dorită va fi necesară. va trebui să se revină în modul de afişare SQL View pentru a se face corecţiile necesare. acum va trebui să aleagă din fereastra New Query. de fiecare dată.3 Comenzi pentru definirea datelor Principalele comenzi SQL pentru definirea datelor sunt următoarele: CREATE DATABASE.). în cazul în care utilizatorul a folosit butonul New. utilizatorul îl va analiza şi interpreta în funcţie de propriile cerinţe şi restricţii informaţionale. Integer. Comanda CREATE DATABASE are următoarea sintaxă: CREATE DATABASE nume_baza_de_date fiind utilizată pentru crearea unei noi baze de date. pentru a scrie interogarea SQL Access este necesar ca din meniul View utilizatorul să opteze pentru modul de vizualizare SQL View. respectând sintaxa corespunzătoare. din meniul Query. interogarea SQL Access creată se poate lansa în execuţie în două moduri: prin utilizarea butonului din bara Query Design sau prin opţiunea Run.. câmp3 tip_data [NOT NULL]. fie alegerea opţiunii Create query in Design view. Logical. mai multe etape de bază: din fereastra Database se va selecta butonul Queries (Interogări) . Number. Comanda DROP DATABASE nume_baza_de_date este utilizată pentru stergerea bazei de date. 4.. DROP TABLE.2 Etapele crearii unei interogari În crearea şi respectiv executarea unei interogări ACCESS 2000 construită prin utilizarea de instrucţiuni SQL se parcurg. De menţionat faptul că se pot utiliza mai multe tabele (interogări) din fereastra Show Table. opţiunea Design View foarte importantă este alegerea în continuare (cu ajutorul butonului Add) a tabelelor (Tables). 4. interogării (Queries) sau a ambelor categorii de obiecte (Both) care vor reprezenta suportul interogării SQL. CREATE TABLE. Memo. Printre cele mai importante tipuri de date folosite amintim: Character. fie activarea butonului New. ALTER TABLE. inegalitatile din cadrul clauzelor se vor specifica prin “<>”. Pentru crearea unei CREATE TABLE nume_tabela (câmp1 tip_data [NOT NULL]. DROP DATABASE. Pe ecranul calculatorului va fi afişat în final rezultatul interogării SQL.Numele tabelei trebuie tabele se utilizează comanda . În fereastra care apare se vor tasta instrucţiunile SQL specifice. simbolurile ? si * sunt folosite pentru a desemna unul sau mai multe caractere de înlocuire.

sunt aceleasi cu cele mentionate în lista de selectie. Totodata. data vânzarii (tip data calendaristica). În această variantă se adaugă în structura tabelei câmpul specificat în comenda. Lista_selectie cuprinde toate câmpurile care vor aparea în tabela cu rezultatele interogarii. localitatea (tip caracter).. Cum frazele SELECT tabela si SELECT ALL tabela au practic acelasi rezultat. neputând fi unul din cuvintele rezervate. cod marfa (tip numeric). [WHERE criteriul_de_selectie] [ORDER BY câmpuri_criteriu [ASC|DESC]] [GROUP BY câmp_de_grupare [HAVING criteriul_de_ grupare]] . Indiferent daca sunt simple sau complexe.sa fie unic în cadrul bazei de date.În scrierea interogarilor de selectie . în plus exista posibilitatea duplicarii lor în cadrul bazei de date. cod marfa (tip numeric). Clauza NOT NULL arata ca în câmpul respectiv nu se memoreaza valori de tip NULL. calificativul ALL este destul de rar utilizat. Exemplu: Se creeaza tabela Vânzari cu urmatoarea structura a înregistrarii: numar (tip numeric). În câmpul data vânzarii nu se vor memora valori de tip NULL. Data_v Date NOT NULL.4 Instructiunile de selectie a datelor Instrucţiunile de selecţie reprezintă una dintre categoriile cele mai importante ale limbajului de interogare SQL ACCESS. Domeniu permite stabilirearea modalitaţii de manipulare a înregistrarilor din baza de date asupra careia se efectueaza selectia si poate fi: ALL : permite includerea tuturor înregistrarilor ce îndeplinesc conditiile impuse. folosirea literelor mari sau mici. Comanda DROP TABLE nume_tabela este folosita pentru a sterge complet o tabela dintr-o baza de date (structura şi valorile asociate). 4. acesta poate avea si anumite restrictii privind: numarul de caractere din care este format. care au marcata caseta de validare Show. dar se pastreaza unicitatea în tabela. natura caracterului de început etc. nu numai pe cele care au câmpuri duplicate. punctul de plecare îl constituie fraza SELECT. Cod_m Number. Localit Char) Pentru modificarea structurii unui tabel se utilizează comanda ALTER TABLE cu următoarea sintaxă (simplificată): ALTER TABLE nume_tabela ADD nume_câmp tip_data. nume_tabela2. DISTINCT : are ca efect eliminarea înregistrarilor care contin duplicate în câmpurile selectate astfel se va afisa doar o aparitie a datei multiple. Exemplu: Se adaugă în tabela Personal_Vânzare un nou câmp numit Telefon: ALTER TABLE PERSONAL_VANZARE ADD Telefon Integer. Aceleasi cerinte apar si pentru numele câmpurilor. data vânzarii (tip data calendaristica).. CREATE TABLE VANZARI(Nr Number.. Pentru definirea interogarilor de selectie simple se utilizeaza urmatoarea sintaxa a instructiunii SELECT: SELECT [domeniu] lista_selectie FROM nume_tabela1. Câmpurile adaugate în rândul Field din grila Query a machetei grafice QBE. utilizarea anumitor simboluri. DISTINCTROW are în vedere înregistrarile duplicate în ansamblul lor. Exemplu: Se creeaza tabela Vânzari cu urmatoarea structura a înregistrarii: numar (tip numeric). localitatea (tip caracter). prin care se regasesc si se afiseaza informatiile dorite de utilizator.

MIN : duce la obtinerea celei mai mici valori a unui câmp ramâne valabila si aici restrictia privind clauza WHERE. Principala modalitate de realizarea a joncţiunii este sintetizată de următoarea sintaxă: . BETWEEN. (virgula). se va utiliza clauza HAVING. precum si apelarea la mai multe criterii de grupare. La o asociere pot participa mai mult de doua tabele. se utilizeaza semnul . Clauza WHERE Face interogarile mai selective. Asa cum aratam la regulile de sintaxa. MAX : permite determinarea celei mai mari valori dintr-un câmp. Componenta BY a clauzei nu poate sa lipseasca atunci când se doreste sortarea rezultatelor interogarii SQL ACCESS ! Clauza GROUP BY Precizeaza câmpul sau câmpurile pe baza carora se va efectua gruparea înregistrarilor. prin intermediul acestei clauze. specificând faptul ca vor fi afisate numai înregistrarile care îndeplinesc criteriul descris. pentru continutul informational al fiecarei tabele. HAVING va opera dupa definirea acesteia. în fata numelui acestora trebuie precizata tabela din care fac parte. În cadrul condiţiei din clauza WHERE apar pot fi utilizaţi operatorii : AND. În cadrul listei de selecţie se pot defini şi alias-uri. LIKE. IN. se pot executa functiile agregate descrise în lista de selectie pentru fiecare dintre grupari (constituite pe baza câmpurilor de grupare). când se foloseste clauza GROUP BY si este necesara si o conditie. AVG : calculeaza valoarea medie a unui câmp numeric. care actioneaza înainte de a se efectua gruparea înregistrarilor. OR. NOT. Clauza HAVING Se refera la criteriul care va fi aplicat câmpului-definit ca argument al functiei agregat. Trebuie sa precizam faptul ca în cadrul acestei clauze se pot mentiona pe lânga tabele. Clauza ORDER BY Utilizata atunci când se doreste ca rezultatele interogarii sa fie ordonate în mod crescator (ASC) sau descrescator (DESC). De remarcat faptul ca se admite utilizarea unei functii agregat care nu apare în lista de selectie. în functie de tipul câmpului. Parametrul criteriul de selectie este o expresie care contine un operator de tip text (sir) sau numeric. ca surse de informatii pentru interogarile SQL. SUM : reda suma tuturor valorilor dintr-un câmp. Cele mai importante functii din aceasta categorie sunt: COUNT : returneaza numarul de înregistrari care respecta conditiile stabilite prin clauza WHERE. este posibilă construirea unor condiţii mai complexe. Spre deosebire de WHERE. Daca în lista_selectie se includ câmpuri din mai multe tabele. Altfel spus. Operatiile de asociere induse de clauza JOIN au ca rezultat producerea tuturor combinatiilor posibile. În acelasi timp. Noile înregistrari care rezulta în urma jonctiunii vor deveni disponibile pentru selectiile ulterioare. si interogari care au fost deja create. Clauza WHERE este optionala si nu opereaza cu functii totalizatoare. Apelând la acestia. Sortarea este optionala si se poate realiza dupa unul sau mai multe câmpuri_criteriu (definite drept chei de sortare). Acestea reprezintă un pseudonim (nume) asociat unui câmp astfel : câmp AS alias. Echivalentul acestei clauze în macheta grafica QBE de constructie a interogarii îl reprezinta rândul Total. pentru separarea numelor de tabele.simple SQL ACCESS este posibila si folosirea functiilor totalizatoare. functiei agregat Clauza FROM Specifica numele tabelei sau tabelelor care vor forma suportul interogarii. opereaza numai cu valori numerice. O facilitate deosebit de importanta a limbajului SQL o reprezinta posibilitatea de a grupa si folosi date din tabele diferite.

LEFT OUTER.SELECT [domeniu] lista_selectie FROM nume_tabela1 {INNER|LEFT OUTER|RIGHT OUTER} JOIN nume_tabela2 ON criteriul_de_asociere [{INNER|LEFT OUTER|RIGHT OUTER} JOIN nume_tabela3 ON criteriul_de_asociere]. În cadrul acestui tip de inserare a datelor trebuie sa se respecte urmatoarele reguli: . din caseta Join Properties. [WHERE criteriul_de_selectie] [ORDER BY câmpuri_criteriu [ASC|DESC]] Semnificatia elementelor de sintaxa descrise mai sus este urmatoarea: INNER. operatia ar fi totusi posibila printr-o selectare prealabila a datelor initiale într-un tabel temporar. ON criteriul de asociere arata relatia dintre câmpurile pe care se bazeaza jonctiunea. externa de dreapta).) VALUES (valoare1. 2 sau 3. interna de tip echivalent. Prima forma a lui INSERT se utilizeaza pentru operatii simple care presupun lucrul cu un numar redus de înregistrari. Sintaxa comenzii este următoarea: INSERT INTO nume_tabela (câmp1. De remarcat faptul ca SQL ACCESS accepta scrierea interogarilor externe fara specificarea explicita a lui OUTER. mentionându-se câmpurile si valorile asociate acestora. RIGHT OUTER JOIN. Expresia criteriul_de_asociere contine un operator de comparatie (=.) tabelei precizata în clauza FROM. 4.<. JOIN specifica tabela care va fi asociata (nume_tabela2. LEFT OUTER JOIN. Unul se afla în tabela asociata. fiind destul de putin utilizate.. În acest caz se adauga o înregistrare într-o tabela.. nume_tabela3..>. RIGHT. OUTER se refera la tipurile de jonctiuni (INNER JOIN. iar celalalt exista într-o alta tabela din lista cu numele tabelelor. câmp2.. Prin aceasta interogare de adaugare nu se pot insera date dintr-o tabela în ea însasi. Comanda INSERT se foloseste pentru adaugarea de înregistrari dintr-o tabela în alta.<=. astfel încât sa rezulte un numar total de înregistrari egal cu produsul numarului de înregistrari din fiecare tabela.valoare2. urmata de modificarea si readucerea lor în tabelul de la care s-a plecat. care au fost explicate într-un capitol precedent. Joncţiunile externe (OUTER) sunt de doua tipuri: de stânga (LEFT OUTER JOIN) si de dreapta (RIGHT OUTER JOIN).. Echivalentul QBE al acestor categorii de jonctiuni este alegerea optiunilor 1. Dupa lansarea în executie a interogarii apare un mesaj de avertizare privind adaugarea noii înregistrari în baza de date si caracterul ireversibil al acestei operatii.<>..>=)si va returna valorile logice TRUE sau FALSE..5 Instructiunile pentru manipularea datelor Cele mai importante instructiuni sunt: INSERT. externa de stânga. Joncţiunile tip INNER JOIN determina o asociere a înregistrarilor din tabele.. Ca particularitate se remarca inserarea unei singure înregistrari la un moment dat. UPDATE si DELETE.

Pot fi construite si prin varianta de lucru a machetei grafice QBE Access.nume_câmp2 = valoare2]. Ca si în cazul instructiunii INSERT. deoarece SQL ACCESS va asocia listei de valori câmpurile în ordinea din structura înregistrarii (prima valoare se va introduce în primul câmp. pe baza unor câmpuri unice. Capitolul 5: Limbajul Visual Basic 5. Clauza SELECT din subinterogare va avea acelasi numar de câmpuri si de natura similara cu cele din clauza WHERE a interogarii externe. setul de rezultate obtinut de la o interogare va constitui argument pentru o alta.a. Se pot utiliza mai multe conditii WHERE apelând la operatorul logic AND pentru a limita actualizarea la înregistrari mai bine specificate. Utilizatorul poate astfel sa creeze legaturi între mai multe interogari SQL ACCESS.) daca un câmp are definitia NOT NULL. a doua valoare. Atunci când se doreste actualizarea datelor din mai multe câmpuri se foloseste virgula ca separator între câmpuri si valorile acestora. 4. nu va fi obligatorie specificarea denumirii câmpurilor. va fi obligatorie introducerea unei valori pentru acesta. cât si de a modifica valorile câmpurilor din înregistrarile existente. Comanda DELETE are următoarea sintaxă: se materializează în interogarea actiune de stergere partiala sau totala a înregistrarilor din tabele. Tabela1 si Tabela2 vor avea un câmp comun (nume_câmp) care va reprezenta de fapt câmpul de legatura ce sta la baza construirii subinterogarii. Comanda UPDATE are următoarea sintaxă: DELETE FROM nume_tabela [WHERE criteriul_de_stergere] UPDATE nume_tabela SET nume_câmp1 = valoare1 [. se va urmari daca în câmpul cu valori de actualizat sunt permise numai valori unice. cu rol de cautare în structura tabelelor. Cea mai simpla subinterogare are sintaxa urmatoare: SELECT * FROM Tabela1 WHERE Tabela1.6 Cereri de interogare imbricate Scrierea unei interogari în cadrul alteia duce la aparitia unei subinterogari. cu performante mult îmbunatatite.m.nume_ câmp = (SELECT nume_câmp FROM Tabela2 WHERE criteriul_de_selectie).. care permit scrierea de rutine în limbajul Visual Basic pentru Aplicaţii (VBA): . în al doilea câmp s. În acelasi timp se va sterge doar continutul tabelei nu si aceasta (pentru eliminarea tabelei se va apela la instructiunea DROP TABLE).. Subinterogarile înlocuiesc interogarile imbricate din versiunile precedente.1 Editarea modulelor VBA Modulele din Access 2000 sunt obiecte ale bazei de date.d. marimea valorii corespunzatoare fiecarui câmp va fi mai mica decât dimensiunea câmpului.valorile mentionate în clauza VALUES vor avea aceeasi natura cu câmpurile specificate în clauza INTO. [WHERE criteriul_de_actualizare] Aceasta are atât scopul de a insera noi înregistrari.

Pentru a şterge un modul se selectează modulul şi apoi se activează tasta Delete. Cea mai puternică facilitate a editorului VBA este posibilitatea afişării contextuale în momentul scrierii în VBA a elementelor care caracterizează un anumit context: 5. de asemenea. comentariilor etc. frazelor eronate. declaratii de funcţii API etc. activaţi butonul New.Acestea pot fi constituite din: declaratii de variabile. Pentru a crea un modul nou se parcurg următorii paşi: selectaţi secţiunea Modules din fereastra bazei de date.2 Instructiuni pentru afisarea si introducerea datelor . facilităţi de colorare a cuvintelor cheie. Editorul are. proceduri si/sau functii. declaraţiilor utilizator. tipuri de date utilizator. Pentru a modifica un modul: selectaţi modulul dorit şi apoi click butonul Design sau dublu-click direct pe modulul dorit.

[x] . Valori posibile: -32768 până la 32767.[y]. formularele şi rapoartele reprezintă o formă elegantă de introducere şi respectiv afişare a datelor care se bazează în principal pe structura bazei de date. 5. Object: tip de date care referă un obiect. Integer: numar întreg pe 16 biţi. Variant: tip de date generic. Pentru a asocia un obiect propriu-zis unei asemenea variabile trebuie să se utilizeze şi instrucţiunea Set. O asemenea variabilă se poate utiliza pentru orice tip de date. Această necesitate se simte mai ales în faza de test a unei proceduri sau funcţii. [titlu].4E+38 până la +3.5807. În afară de acestea. În urma apelului acestei instrucţiuni. Practic. sau pentru afişarea de mesaje către utilizatorul bazei de date. [fisier_help.4E+38. Valori posibile:922337203685477.fisier_help . ci numai împreună cu instrucţiunea Set: Set variabilă_obiect = expresie_obiect. Byte: număr întreg pe 8 biţi. utilizator.titlu] [. [val_implicita].4 Operatori . context]) permite introducerea unei secvenţe de caractere de la tastatură.797E+308 până la +1. Date :poate conţine date calendaristice şi timp. Unei variabile de tip obiect (tipul generic Object sau de tipul celorlalte obiecte Access 2000) nu se i se poate atribui un obiect în varianta clasică variabila=expresie sau variabila1=variabila2. pot fi declarate într-o sau funcţie cu ajutorul 5. Boolean: poate conţine valoarea logică True (adevărat -1) sau False (fals 0). Valori posibile: 0-255. Long: numar întreg pe 32 biţi. există în VBA instrucţiuni pentru introducerea unor date izolate şi afişarea de mesaje. în funcţie de butonul ales de utilizator din fereastra MsgBox. dublă precizie. Se utilizează între #. String: sir de caractere. Sunt memorate 15 caractere la stânga virgulei şi 4 caractere la dreapta virgulei. Single: număr memorat pe 32 biţi. InputBox (mesaj.butoane] [. Valori posibile: de la –3. Currency: număr memorat pe 64 biţi. virgulă mobilă. Valori posibile: de la –1. Un şit de caractere trebuie încadrat de " astfel "exemplu". Valori posibile: -2147483648: până la 2147483647. VBA acceptă două categorii de tipuri de date: standard (predefinite). virgulă mobilă.797E+308. MsgBox( mesaj [. toate variabilele utilizate pot fi declarate de tip Variant.3 Declararea variabilelor în VBA Variabilele instrucţiunii procedură Dim: Dim nume_variabila As tip_de_dată. Este recomandat totuşi ca să specificaţi tipul variabilei în momentul declarării pentru a nu fi create confuzii. simplă precizie.5808 până la 922337203685477.Evident. variabila_obiect va referi obiectul returnat de expresia expresie_obiect. context]) permite afişarea unui mesaj şi opţional poate returna o constantă. Tipurile de date standard sunt: Double: număr memorat pe 64 biţi.

. Xor. <>.)] [instrucţiuni] . fără a mai fi necesară rescrierea lor. <. Public semnifică faptul că procedură poate fi apelată din orice modul.. unul sau mai multe valori pentru fiecare parametru al procedurii sau funcţiei. >. [Exit Sub] . /. nici unul. <=.. 5.)] [as tip_date] [instrucţiuni] [nume_funcţie = expresie] . Exit Sub permite ieşirea forţată dintr-o procedură..valoare_param_2. Acest rezultat va fi returnat în momentul terminării execuţiei funcţiei... Apelul unei funcţii se poate face astfel: .5 Functii si proceduri definite de utilizator O funcţie/procedură reprezintă un blob de instrucţiuni care realizează o prelucrare. Pentru a da un grad de generalitate cât mai mare.. Is(compararea a doua obiecte).. And... [instrucţiuni] End Sub Unde: Private semnifică faptul că procedura poate fi apelată numai din modulul unde a fost definită. *. logici: Not.. Eqv(echivalenta). Like(compararea a două şiruri).. Apelul unei proceduri se poate face astfel: [Call1 nume_procedura [(valoare_param_1. În momentul apelării unei funcţii şi/sau proceduri se transmit către acestea.. nume_funcţie = expresie permite asocierea unui rezultat numelui funcţiei. Sintaxa pentru definirea unei proceduri este următoarea: Private|Public] Sub nume_procedura[([ByRef|ByVal] param_1 as tip_date..Operatorii acceptaţi de VBA sunt de trei categorii: matematici: ^.. În felul acesta se reduce considerabil efortul de programare..)] Sintaxa unei funcţii este următoarea: [Private|Public] Function nume_funcţie [([ByRef|ByVal] param_1 as tip_date .. . &(concateneaza doua siruri de caractere). \. >=. Mod(returneaza restul unei impartiri). Or.. de comparare: =. – . funcţiile şi/sau procedurile conţin în definirea acestora o listă de parametri formali. [Exit Function] [instrucţiuni] [nume_funcţie = expresie] End Function Unde: Exit Function permite ieşirea forţată dintr-o funcţie. Acestea pot fi apelate ori de câte ori este nevoie. Imp(implicaţia logică). +.

. Pentru a testa o procedură fără parametri direct dintr-un modul. IsNumeric( expresie ): returnează valoarea adevărat (TRUE) dacă expresia dintre paranteze poate fi evaluată ca număr. valoare_param_2. sau a unui numar Asc( sir_caractere ): returneaza codul primului caracter din sirul de caractere specificat Chr( COD_CARACTER ): returneaza caracterul cu codel specificat Date(): Returneaza data calendaristica Day( data_calendaristica ): returneaza numarul zilei din luna Month( data_calendaristica ): returneaza numarul lunei din an Year( data_calendaristica ): returneaza anul CDate( expresie ): face conversia la tipul Date CDbl( expresie ): face conversia la tipul Double Dec( expresie ): face conversia la tipul Decimal CInt( expresie ): face conversia la tipul Integer CLng( expresie ): face conversia la tipul Long CSng( expresie ): face conversia la tipul Single CStr( expresie ): face conversia la tipul String Cos( expresie_numerică ): returnează cosinus dintr-o expresie numerică sau dintr-un număr. IsDate( expresie ): returnează valoarea adevărat (TRUE) dacă expresia dintre paranteze este compatibilă cu o dată calendaristică. într-un număr Mid((şir_caractere. 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. Val(şir_caractere): returnează rezultatul evaluării şirului de caractere specificat.. Exp( expresie_numerică ): returnează valoarea constantei e ridicată la o putere (expresie numerică sau număr). poziţie_start[. 5. se poziţionează cursorul în corpul procedurii. Limbajul VBA cuprinde în plus o serie de funcţii predefinite care facilitează scrierea procedurilor şi funcţiilor utilizator: Abs( expresie_numerica ): returneaza valoarea absoluta a unei expresii numerice.)]. IsEmpty( expresie ): returnează valoarea adevărat (TRUE) dacă expresia dintre paranteze nu conţine o valoare. Run Sub/User Form. Valoarea returnată este de tip Double. Space( număr): returnează numărul de spaţii specificate Str(expresie_numerică): converteşte rezultatul evaluării expresiei numerice dintre paranteze într-un şir de caractere. Variabila preia rezultatul returnat de funcţie. . IsObject( expresie ): returnează valoarea adevărat (TRUE) dacă identificatorul dintre paranteze este de tip obiect. Null este considerat valoare. Log( expresie_numerică ): returnează logaritm natural dintr-un număr sau dintr-o expresie numerică. . Sintaxa variantei principale a instrucţiunii IF este următoarea: . lungimea])): extrage un şir de caractere dintr-un alt şir de caractere. apoi se selectează comanda: Run. IsError( expresie ): returnează valoarea adevărat (TRUE) dacă expresia dintre paranteze conţine o eroare.Variabila = nume_funcţie [(valoare_param_1.6 Structura alternativa În Access pentru implementarea structurii alternative se poate utiliza instrucţiunile IF şi SELECT CASE.

.. altfel se execută secvenţa de instrucţiuni B.m.WEND este o structură repetitivă condiţionată anterior. WHILE... Sintaxa este următoarea: WHILE condiţie [secvenţă_instrucţiuni] WEND Condiţia poate fi o expresie numerică sau o expresie şir de caractere.NEXT este : FOR vb_contor=val_initiala TO val_finala [STEP val_pas] [secventa instructiuni] [EXIT FOR] [secventa instructiuni] NEXT [ vb_contor ] unde : val_initiala. Principalele instrucţiuni rpretitive sunt WHILE. Fiecare limbaj implementează mai multe instrucţiuni pentru realizarea structurii repetitive.reprezinta valoarea initiala.NEXT. dacă nu este adevărată (returnează valoarea logică FALSE).... executându-se secvenţa de instrucţiuni corespunzătoare valorii expresiei. Principiul de funcţionare este următorul: se testează pe rând valoarea unei expresii selector.IF condiţie THEN [secvenţă instrucţiuni A] [ELSE [secvenţă instrucţiuni B ]] END IF Condiţia poate fi o expresie numerică sau o expresie şir de caractere.. [CASE ELSE [secvenţă instrucţiuni N]] END SELECT 5. Întâi se evaluează condiţie. Sintaxa instrucţiunii este: SELECT CASE expresie_selector [CASE listă_expresii_case_1 [secvenţă instrucţiuni A]] [CASE listă_expresii_case _2 [secvenţă instrucţiuni B]] [CASE listă_expresii_case _3 [secvenţă instrucţiuni C]] . se execută secvenţa de instrucţiuni.. respectiv valoarea finala pentru vb_contor. se execută secvenţa de instrucţiuni A. în funcţie de o condiţie.. presupune repetarea unei secvenţe de instrucţiuni de un anumit număr de ori.7 Structura repetitiva Structura repetitivă. Sintaxa instrucţiunii FOR.WEND şi FOR. care poate fi evaluată la adevărat (True) sau fals (False).. Instrucţiunea IF evaluează condiţia şi dacă aceasta este adevărată.. Instrucţiunea SELECT CASE este o structură alternativă de tip selector.d..val_finala . la modul general.a. care poate fi evaluată la adevărat (True) sau fals (False). După ce s-a executat o dată secvenţa de instrucţiuni se trece din nou la evaluarea condiţiei ş. se trece la următoarea instrucţiune de după WEND. dacă este adevărată (returnează valoarea logică TRUE).

optiunea Options: obiect_Application.pot fi si rezultatul evaluarii unor expresii. Obiectul Application refeă aplicaţia Microsoft Access 2000. Principalele metode ale obiectului Application sunt: CurrentDb returneaza un obiect baza de date (DataBase) care refera baza de date curenta . Printre numeroasele obiectele care pot fi utilizate de programatori sunt şi obiectele Applicaton şi Form. nume_obiect. Aceste numere de ordine încep de la zero. conectat la baza de date curenta SysCmd se poate utiliza în principal pentru a afisa un text în bara de stare (Status Bar) sau pentru gestionarea unui Progress Bar SetOption stabileste valori pentru parametrii care se gasesc în meniul Tools. .GetOption(nume_optiune). Reports permite accesul la colectia de rapoarte deschise dintr-o baza de date.SetOption nume_optiune. Specificarea unui obiect apartinând unei colectii se poate face conform uneia din urmatoarele variante: nume_obiect_colectie![nume_obiect] – este nevoie de paranteze drepte numai daca numele obiectului contine spatii. pâna la valoarea finala a acesteia. Principalele proprietati ale obiectului Application sunt: DoCmd apeleaza obiectul DoCmd. Screen permite accesul la obiectul Screen (va fi descris în paragrafele urmatoare). CurrentUser returneaza utilizatorul curent. setari GetOption returneaza valorile unor parametri care se gasesc în meniul Tools. fiind identificate printr-un numar.8 Obiecte Access 2000 O baza de date Access 2000 este formata dintr-o multime de obiecte. optiunea Options: obiect_Application. descris în paragraful precedent. implicit are valoarea +1. Cu aceasta structura se repeta secventa de instructiuni de un numar de ori.nume_metoda.reprezinta valoarea pasului de incrementare/decrementare pentru variabila contor. Fiecare obiect are o serie de proprietăţi şi metode ataşate. plecându-se de la valoarea initiala a variabilei contor. nume_obiect_colectie(“nume_obiect”). 5.val_pas . nume_obiect_colectie(index_obiect) – numar care indica pozitia în colectie a unui obiect. incrementându-se automat variabila contor cu +1 (deci aceasta nu trebuie incrementata explicit de programator).val_pas . care pot fi accesate din VBA. Invocarea unei metode sau proprietati a unui obiect se face prin prefixarea acesteia cu numele obiectului astfel: ume_obiect. val_initiala. Obiectul Form refera un obiect de tip formular.val_finala. Toate formularele deschise din baza de date se regasesc în colectia Forms. Forms permite accesul la colectia de formulare deschise dintr-o baza de date. Daca este prezenta instructiunea STEP. se incrementeaza variabila contor cu pasul de incrementare/decrementare.nume_proprietate.

Control. Primul formular deschis are numarul de ordine zero. o eroare etc. expresii. Controls reprezinta colectia de controale de pe un formular. Dintre proprietatile acestui obiect amintim: OpenArgs . Toolbar indica bara de instrumente (Toolbar) afisata o data cu formularul. 5. RecordSelectors seteaza aparitia marcatorului de înregistrare pe formular (TRUE) sau dezactivarea acestuia (FALSE).): View > Properties: .formularul se redimensioneaza pe ecran automat. Pentru a ataşa o procedura la un eveniment trebuie parcurse următoarele etape: afişaţi fereastra de proprietăţi (Properties) a obiectului dorit (Form. NavigationButtons seteaza activarea (TRUE) sau dezactivarea (FALSE) controlului pentru deplasarea între înregistrarile unui formular. activarea unui buton de comandă.sir de caractere afisat în bara de titlu a ferestrei formularului. Tuturor evenimentelor din Access 2000 li se pot ataşa proceduri. ştergerea unei înregistrări dintr-o tabelă. macro-uri.sir de caractere care poate fi transmis ca parametru la deschiderea unui formular . la evenimentul de deschidere a unui formular se poate ataşa o procedură/funcţie care să testeze dacă un anumit utilizator are drepturi de utilizare a acestuia sau înainte de salvarea unei înregistrări într-o tabelă se poate ataşa o procedură care să verifice respectarea anumitor corelaţii dintre date etc. închiderea unui formular/raport. trebuie citita proprietatea Count a colectiei Forms. RecordSource .formularul este afisat pe centrul ecranului. Requery reactualizeaza înregistrarile din formular (daca formularul are ca sursa o interogare se reface aceasta). dublu clic pe mouse. DataEntry .numele unei tabele. Undo . rapoartelor şi controalelor de pe un formular/raport sau secţiunile acestora. Caption . scrierea unei înregistrări într-o tabelă. etc. AutoResize . Metodele ale obiectului Form sunt: Repaint redeseneaza pe ecran formularul pentru care a fost apelata aceasta metoda. Evenimente în Access 2000 pot fi de exemplu deschiderea unui formular/raport.alocat în ordinea deschiderii acestora.Report. Pentru a afla numarul de formulare deschise la un moment dat.toate modificarile facute datelor afisate în formular se pierd. AutoCenter .formularul este deschis numai pentru introducerea de înregistrari noi. Astfel de exemplu. astfel încât sa se vada tot continutul sau. ControlBox seteaza activarea (TRUE) sau dezactivarea (FALSE) butoanelor de control ale ferestrei formularului. SetFocus se cedeaza controlul formularului specificat împreuna cu metoda. interogari sau o fraza SQL ce are ca rezultat un set de înregistrari de care este atasat formularul.9 Programarea dirijata de evenimente în Access 2000 Se poate vorbi de programare dirijată de evenimente în Access 2000 în contextul formularelor.

în momentul în care o înregistrare din tabela sau interogarea ataşată formularului (în proprietatea Record Source) este afişată pe ecran. OnChange: se declanşează atunci când conţinutul unui control casetă de text (Text Box) sau listă derulantă (Combo Box) se modifică. OnDblClick: se declanşează în momentul în care se activează de două ori butonul mouse-ului (la dublu clic). click pe butonul pentru editarea procedurii respective. Pentru controale dintre evenimentele caracteristice acestora se pot enumera: OnClick:se declanşează în momentul în care se activează butonul mouse-ului. OnMouseMove: se declanşează în momentul în care utilizatorul mută mouse-ul pe deasupra controlului unde se tratează acest eveniment. OnLoad: se produce la deschiderea formularului. Pentru un obiect fomular (Form) principalele evenimente sunt: OnClose : se produce la închiderea şi ştergerea de pe ecran a formularului. OnCurrent: se declanşează atunci când o înregistrare din tabela sau interogarea ataşată formularului devine înregistrare curentă.selectaţi secţiunea Event. selectaţi evenimentul la care doriţi să ataşaţi o procedură. .

Sign up to vote on this title
UsefulNot useful