BAZE DE DATE

Download Report

Transcript BAZE DE DATE

BAZE DE DATE
ACCESS
Prof. Bălăjel Ana-Maria
ÎNCHIDE APLICAŢIA
1
CUPRINS
 CONCEPTUL DE BAZE DE DATE-SGBD
 LUCRUL CU TABELE ÎN ACCESS
 CREAREA FORMULARELOR
 CREAREA INTEROGĂRILOR
 CREAREA RAPOARTELOR
 CREAREA MODULELOR
 CREAREA MACRO
 CREAREA UNEI PAGINI WEB
2
CONCEPTUL DE BAZĂ DE DATE
 Organizarea datelor în vederea prelucrării pe calculator este o
activitate de mare importanţă .
 Din punct de vedere al prelucrării pe calculator, datele sunt
definite de trei elemente:
– Un identificator (numele atribuit)
– Atribut (tipul de dată pe care-l conţine)
– Valoare (valoarea propriu-zisă).
 Informaţia este rezultatul prelucrării datelor.
– Organizarea datelor implică:


Organizarea datelor în memoria internă,care cuprinde structura de tip
listă,coadă şi stivă.
Organizarea datelor pe memoria externă, care cuprinde structurile de tip
fişier şi baze de date.
3
DIFERENŢA ÎNTRE BAZA DE DATE ŞI
SISTEMUL DE GESTIONARE A
BAZEI DE DATE
 Baza de date – este doar o componentă a SGBD care
conţine datele propriu-zise – este un container care
stochează date structurate.
 Sistemul de gestiune a BD (SGBD) –reprezintă software-ul
pentru baze de date care are rolul de a controla
organizarea şi integritatea bazei de date, de regăsire a
datelor din baza de date , precum şi de a asigura stocarea
fizică, securitatea, replicarea şi recuperarea informaţiilor
după erori.
 Microsoft Access este un SGBD comercial de tip desktop,
fiind adecvat administrării bazelor de date mici şi medii.
4
SGBD DE TIP DESKTOP
 UN SGBD de tip desktop este instalat şi rulează local. Este
o aplicaţie autonomă care stocează o bază de date şi
efectuează ea însăşi toate procesările SQL sau se comportă
ca şi client al unui server SQL.
 SQL este





UN LIMBAJ DE PROGRAMARE
NEPROCEDURAL
ÎNGLOBAT SAU INTERACTIV
STANDARDIZAT
UTILZAT PENTRU A MANIPULA DATELE ŞI OBIECTELE DIN BAZA
DE DATE
 SGBD execută programul SQL şi afişează rezultatul sau
mesajele de eroare.
5
MODELUL RELAŢIONAL AL BAZEI
DE DATE
 Se bazează pe teoria matematică a mulţimilor, tabelele
reprezentând analoagele mulţimilor – colecţii de elemente
distincte care au proprietăţi comune.
 O bază de date = colecţie formată din unul sau mai multe
tabele.
 Tabelul reprezintă:
– structura bazei de date care stochează datele ;
– Conţine date despre un tip de entitate : clasă de obiecte,
evenimente sau cocepte cu proprietăţi comune;
– Grilă bidimensională : coloane, rânduri;
– La intersecţia rând-coloană se află valoarea;
– Nume unic în baza de date.
6
MODELUL RELAŢIONAL
AL BAZEI DE DATE
TERMENI ECHIVALENŢI
MODELUL RELAŢIONAL
RELAŢIE - caracterizează un tip de
entitate - o clasă de obiecte, evenimente
sau concepte cu proprientăţi comune,
care aparţin lumii reale şi care pot fi
distinse de alte clase.
ATRIBUT- caracterizează o proprietate
specifică tipului entităţii din relaţie.
TUPLU- caracterizează o entitate (o
instanţă unică) al tipului de entitate
inclus în relaţia din care face parte
instanţa respectivă.
SQL
(SGBD)
NE-RELAŢIONAL
TABEL
FIŞIER
COLOANĂ
CÂMP
RÂND
ÎNREGISTRARE
7
NORMALIZAREA BAZEI DE DATE
Prima formă normală
1FN
A doua formă normală
2FN
A treia formă normală
3FN
Are coloane care
1FN
2FN
conţin numai valori
atomice (o singură
valoare, nedivizată)
Nu conţine grupuri
care se repetă (două
sau mai multe coloane
în relaţie logică unele
cu altele)
Nu există dependenţe
Nu există depen-
funcţionale parţiale.
Răspunsul la
întrebarea : “Pot
determina valoarea
coloanei non-cheie dacă
nu cunosc decât o parte
din valoarea cheii
primare ? ”
denţe tranzitive.
Răspunsul la
întrebarea : “ Pot
determina valoarea
coloanei non-cheie
dacă cunosc oricare
altă valoare a unei
coloane non-cheie ?”
8
CONCEPTE ALE REALIZĂRII
UNEI BAZE DE DATE
 Nivelul extern - corespunzător utilizatorului, care
îşi exprimă cerinţele informaţionale prin aşa
numitele scheme externe.
 Nivelul conceptual - aferent administratorului
bazei de date , care se concretizează în schema
conceptuală.
 Nivelul intern - corespunzător programatorului,
care realizează reprezentarea datelor pe suportul
fizic.
9
FUNCŢII ALE SGBD
 ORGANIZAREA DATELOR:
– crearea şi manevrarea tabelelor care conţin date
într-un format tabelar convenabil (linii şi coloane)Datasheet
 LEGAREA TABELELOR ŞI EXTRAGEREA DATELOR
– legarea mai multor tabele prin relaţiile între date
(prin intermediul Interogărilor),în vederea creării
unor tabele temporare (Recordset) , stocate în
memoria calculatorului sau în fişiere memorate pe
disc,care conţin datele alese de programator.
10
FUNCŢII ALE SGBD
 INTRODUCEREA ŞI EDITAREA DATELOR:
– Crearea şi implementarea unor Formulare pentru
introducerea, afişarea şi editarea datelor,ca
alternativă la prezentarea tabelară.
 PREZENTAREA DATELOR:
– Crearea de Rapoarte în care să poată fi sintetizate
informaţiile din obiectele Recordset pe care le puteţi
vedea , tipării şi publica pe Internet sau Intranet.
Aceste rapoarte reprezintă scopul final al unei aplicaţii
SGBD!
11
SCHEMA LOGICĂ A COLECŢIEI DE
OBIECTE ACCESS
TABEL1
TABEL2
TABEL3
INTEROGARE
FORMULAR
RAPORT
12
OBIECTELE ACCESS
 Table-obiect definit de utilizator
în care sunt stocate datele
primare.
 Form-obiect care permite
introducerea datelor, afişarea
acestora sau controlul întregii
aplicaţii.
 Query-obiect care permite
vizualizarea informaţiilor
obţinute prin prelucrarea
datelor din unul sau mai multe
tabele şi / sau interogări.
 Report-obiect care permite
formatarea şi tipărirea
informaţiilor obţinute în urma
consultării bazei de date sub
formă de document.
 Pages-obiect care include un
fişier HTML şi alte fişiere suport
în vederea furnizării accesului
la date prin intermediul
browser-ului Internet.
 Macro-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 eveniment.
 Module-obiect care conţine
proceduri definite de utilizator
şi scrise în limbajul de
programare Visual Basic.
13
CREAREA TABELELOR
MODUL DE
REALIZARE A
STRUCTURII
TABELEI
NUMELE
CÂMPULUI
TIPUL DE DATE
CONŢINUT DE CÂMP
DIMENSIUNEA CÂMPULUI.
SETĂRI SUPLIMENTARE
RELATIV LA CÂMPUL
DEFINIT.
SETĂRI SPECIFICE
CONŢINUTULUI
CÂMPULUI
14
STABILIREA INDECŞIROL ŞI A CHEII
TABELULUI
STABILIREA MODULUI DE
CĂUTARE ,DE SORTARE ÎN
TABELĂ CU AJUTORUL
CÂMPURILOR INDEXATE.
CHEIA PRIMARĂ A
TABELEI CARE
TREBUIE SĂ CONŢINĂ
ÎNREGISTRĂRI UNICE!
15
CREAREA LEGĂTURILOR ÎNTRE
TABELE
DESCHIDEREA
INTERFEŢEI PENTRU
CREAREA LEGĂTURILOR.
CASETĂ DE DIALOG
DESCHISĂ PRIN
MENIUL RAPID
PENTRU ADĂUGAREA
TABELELOR ÎN
SUPRAFAŢA
RELAŢIILOR.
16
CREAREA LEGĂTURILOR ÎNTRE
TABELE
LEGĂTURĂ DE
TIP UNU LA MAI
MULTE.
NUMELE
TABELEI
NUMELE CÂMPULUI
CHEIE PRIMARĂ SAU
CHEIE EXTERNĂ CARE
CREEAZĂ LEGĂTURA.
17
CREAREA FORMULARELOR
ALEGEREA TABELELOR
SAU INTEROGĂRILOR
DIN CARE SE PREIAU
CÂMPURILE NECESARE.
CÂMPURILE
TABELEI/INTEROGĂRII
SELECTATE.
18
CREAREA FORMULARELOR
PRELUAREA
CÂMPURILOR CARE
VOR FI PREZENTE ÎN
FORMULAR.
19
CREAREA FORMULARELOR
CÂMPURILE
DIN
FORMULAR.
TABELELE CARE
AU CONŢIN
CÂMPURILE CE
VOR APĂREA ÎN
FORMULAR. SE VA
ALEGE MODUL DE
PREZENTARE A
DATELOR.
CÂMPURILE DIN
FORMULARUL
SUBORDONAT
(SUBFORM).
20
CREAREA FORMULARELOR
MODUL DE
AFIŞARE A
DATELOR ÎN
FORMULAR.
21
CREAREA FORMULARELOR
FORMATUL
GRAFIC.
22
CREAREA FORMULARELOR
NUMELE
FORMULARULUI.
NUMELE SUBFORMULARULUI.
23
FORMULARUL ŞI SUBFORMULARUL
INCLUS ÎN FORMA DISPONIBILĂ
UTILIZATORULUI
FORMULARUL
SUBFORMULAR
24
CONTROALE ŞI FUNCŢIILE LOR
INSTRUMENT NUME
SELECT OBJECT
(indicator)
FUNCŢIE
Pointer-ul de selecţie al obiectelor.
CONTROL WIZARD Activează/dezactivează programele Control
Wizard
LABEL
(etichetă)
TEXT
BOX
Afişează texte fixe ce includ numele unui
control de tip text sau instrucţiuni.
Casetă de tip text ,editabilă.
OPTION
GROUP
Grup de controale de tip opţiune. Din grup
doar una poate fi selectată.
TOOGLE
BUTTON
Buton cu două stări : ON(selectat) care
înseamnă DA (-1) şi OFF(deselectat) care
înseamnă NU (0).
25
CONTROALE ŞI FUNCŢIILE LOR
INSTRUMENT
NUME
OPTION
BUTTON
FUNCŢIE
Buton opţiune folosit pe formular cu alte butoane
pentru a determina care din acţiuni să aibă loc atunci
când este selectat.
CHECK
BOX
Casetă de validare care,atunci cănd este selectată
comută în starea ON(-1).
COMBO
BOX
Casetă combinată.Casetă de text cu o listă derulantă.
Ăn caseta de text se poate edita şi găseşte elementul în
listă.
LIST
BOX
Casetă listă. Conţine o listă de valori al unui câmp din
baza de date.
COMMAND
BUTTON
Buton de comandă ,folosit pentru a executa coduri de
procedură editate în VBA.
IMAGE
Afişează o imagine statică.Nu poate fi editată în
26
formular.
CONTROALE ŞI FUNCŢIILE LOR
INSTRUMENT
NUME
FUNCŢIE
UNBOUND
OBJECT
FRAME
Obiect neasociat bazei de date care include un
obiect OLE: orice obiect editat într-un program
Microsoft Office.
BOUND
OBJECT
FRAME
Obiect asociat bazei de date şi care conţine un
obiect OLE : imagine,grafic,sunete,filme,etc.
PAGE
BREAK
Delimitator de pagină.Determină imprimanta să
tracă la o nouă pagină.Nu este vizibil în formular.
27
CONTROALE ŞI FUNCŢIILE LOR
INSTRUMENT
NUME
FUNCŢIE
TAB Schimbător de pagină.Crează o serie de pagini care
CONTROL pot fi schimbate.Fiecare pagină conţine mai multe
controale.Se utilizează pentru formulare prea
încărcate.
SUBFORM/
SUBREPORT
LINE
Introduce în formular , sub formă de subformular
sau raport ,un formular sau raport efectuat
anterior.
Crează o linie dreaptă pe care o putem
redimensiona şi muta.
RECTANGLE Crează un dreptunghi pe care îl putem configura cu
efecte speciale în moduri diferite.
28
TIPURI DE DATE
DATE
TIPUL DATELOR
TEXT
ALFANUMERICE
NUMERICE
DESCRIERE
Cel mult 255 caractere.Valoarea
prestabilită la 50.
MEMO
Cel mult 64.000 caractere. Nu poate
fi cheie primară şi nu putem
indexa după el.
NUMBER
Sunt disponibile mai multe
subtipuri.Se alege formatul
dorit(nr.zecimale,etc.)
AUTONUMBER
YES/NO
Tip Long Integer ce se
autoincrementează.Nu se poate
modifica când există înregistrări.
Tip boolean:Yes=-1,No=0.Nu poate fi
cheie dar poate fi indexat.
29
TIPURI DE DATE
DATE
NUMERICE
TIPUL
DATELOR
CURENCY
DESCRIERE
Format special,fix ,cu patru
zecimale,proiectat să excludă erorile de
rotunjire în calcule financiare.
DATE/TIME
Data calendaristică şi ora sunt stocate
într-un format special fix.Se selectează
formatul dorit.
OBJECT OLE
Include elemente grafice,fişiere cu
semnale audio şi alte tipuri de date create
de o aplicaţie OLE server.Nu poate fi
cheie şi nici index.
ADRESE INTERNET
HYPERLINK
Adresă a unei pagini Web.Formată din
trei părţi: textul afişat,adresa şi
subadresa.
INFORMAŢII
LEGATE
LOOKUP
WIZARD
Crează cîmpuri care permit utilizatorului
să aleagă valori din cadrul altor tabele
sau dintr-o listă de valori.
30
DATE
CALENDARISTICE
OBIECTE MARI
SUBTIPURI DE DATE NUMERICE
MĂRIMEA CĂMPULUI
ZECIMALE
INTERVALUL VALORIC
OCTEŢI
BYTE
0
DE LA 0 LA 256
1
INTEGER
0
DE LA -32.768 LA 32.768
2
LONG INTEGER
0
DE LA -2.147.483.648 LA
2.147.483.648
4
SINGLE
7
DE LA – 3,4*1038 LA + 3,4*1038
4
15
DE LA - 1,797*10308 LA
+1,797*10308
8
REPLICATION ID
IDENTIFICATOR GLOBAL
UNIC
16
DECIMAL
DE LA - 1028 LA + 1028
16
DOUBLE
31
SETĂRI CARACTERISTICE
CÂMPULUI
 FORMAT- permite alegerea unor formate prestabilite




sau crearea unui format personalizat pentru tipul de
dată ales.
DECIMAL PLACES -stabileşte numărul de zecimale
între 0-15.
INPUT MASK -se aplică tipului text şi dată
calendaristică un format personalizat de afişare.
Ex.Tel.(0262)655-224.
CAPTION -nume atribuit cîmpului la
vizualizare(diferit de cel intern,deja atribuit).
DEFAULT VALUE -valoarea inclusă implicit ,înainte
de actualizarea câmpului(când majoritatea valorilor
vor fi aceasta.)
32
SETĂRI CARACTERISTICE CÂMPULUI
 VALIDATION RULE - regula de validare testată pe baza
criteriului definit sub forma unei expresii. Acestea
folosesc:




Operatori: = ,- ,*, /, Mod ,< ,> ,≤ ,≥ ,AND,OR ,BETWEEN ,IN ,IS NULL.
Indentificatori: ]n paranteze drepte [ ].
Funcţii.
Constante.
 VALIDATION TEXT -mesajul care apare în cazul
nerespectării regulii de validare.
 REQUIRED -se stabileşte la yes dacă este strict necesară
completarea acestui câmp.
 INDEXED - se alege opţiunea pentru un index neduplicat
(primar) sau duplicat . Câmpul indexat este util în
33
operaţiile de căutare în baza de date.
INTEROGĂRILE ÎN ACCESS
 Interogarea bazei de date înseamnă regăsirea şi
extragerea datelor stocate în aceasta , într-un mod util
scopului urmărit.
 Rezultatul unei interogări reprezintă o foaie de răspuns
dinamic, numită Dynaset, care nu mai există fizic după
închiderea interogării.
 Crearea Query se poate în următoarele moduri:




Crearea pas cu pas în modul Design view (fereastră de proiectare)
Utilizând instrumentul Wizard
Exprimarea cererii în limbaj SQL
Crearea unui filtru şi salvarea acestuia ca cerere de interogare.
34
TIPURI DE INTEROGĂRI
 Interogări de tip Select care afişează datele din mai multe
tabele şi nu permite actualizarea datelor.

Constituie o sursă de date pentru un raport sau formular.
 Interogări de tip Crosstab pentru sintetizarea datelor sub
forma unei foi de calcul de tip Excel.
 Interogări de tip Parameter care folosesc aceeaşi
interogare de mai multe ori cu parametrii diferiţi.
35
TIPURI DE INTEROGĂRI
 Interogări de tip Action , acestea având efect asupra
datelor din baza de date:
Interogări de tip Append –permit adăugarea de noi înregistrări
într-o tabelă existentă.
 Interogări de tip Delete –permit ştergerea unor înregistrări
dintr-o tabelă pe seama unor criterii.
 Interogare de tip Make Table -creerea de noi tabele pe baza
celor existente.
 Interogare de tip Update –modificarea(actualizarea) datelor
existente fără crearea de noi înregistrări sau tabele.

36
CREAREA INTEROGĂRILOR
 Paşii creării unei interogări sunt:
– Alegerea tipului de interogare;
– Alegerea tabelelor / interogărilor care vor constitui
sursa de date a interogării (în partea superioară a
ferestrei de lucru);
– Selectarea câmpurilor (mutarea prin glisare în grila
de proiectare numită grilă QBE adică Query By
Exemples – în partea inferioară a ferestrei de lucru)
şi eventual stabilirea unor criterii de selecţie.
– Ordonarea datelor (Sort) crescător / descrescător.
Dacă există mai multe câmpuri ordonate se aplică
ordonarea începând din stânga.
37
CREAREA INTEROGĂRILOR
 Crearea unor câmpuri calculate:
– Se selectează coloana şi se accesează comanda de
meniu Totals ()
– Se selectează Expresion în linia de Totals
– În linia Field se introduce expresia sub forma:

Nume rezultat : [Câmp1] operator aritmetic [Câmp2]
 Realizarea unor operaţii de calcul asupra tuturor
înregistrărilor :
– În linia Totals , unde apare Group By ,se alege
tipul de operaţie dorit
38
OPERAŢII PREDEFINITE DE ACCESS
OPERAŢIA
FUNCŢIA
TIP CÂMP
SUM
Suma valorilor unui
câmp
Numeric, Autonumber ,
Data, Logic
AVG
Media aritmetică
Numeric, Autonumber ,
Data, Logic
MIN
Valoarea minimă
Numeric, Autonumber ,
Data, Logic, Text
MAX
Valoarea maximă
Numeric, Autonumber ,
Data, Logic,Text
39
OPERAŢII PREDEFINITE DE ACCESS
OPERAŢIA
FUNCŢIA
TIP CÂMP
COUNT
Numărul de valori
dintr-un câmp
Toate tipurile
STDEV
Varianţa valorilor unui
câmp
Numeric, Autonumber
,Data,Logic
FIRST
Prima valoare din
câmp
Toate tipurile
LAST
Ultima valoare din
câmp
Toate tipurile
40
TIP DE INTEROGARE
CÂMPURI SELECTATE SAU
CALCULATE
SURSA DE DATE
EVENTUALE OPERAŢII
ASUPRA CÂMPURILOR
MOD DE SORTARE
AFIŞAREA SAU NU ÎN
DYNASET
APARE ÎN
REZULTATUL
INTEROGĂRII
CRITERII DE
SELECŢIE
41
INTEROGARE DE SELECŢIE
ÎN LIMBAJ SQL
LISTA DE CÂMPURI
SELECTATE
TABELA / TABELELE DIN
CARE PROVIN CÂMPURILE
CONDIŢIE DE SELECŢIE
GRUPAREA SELECŢIEI DUPĂ
ANUMITE CÂMPURI
42
INTEROGARE DE TIP CROSSTAB
 Sunt interogări care au ca rezultat o reprezentare
tabelară a datelor identică cu cea din Excel.
 Este utilă atunci cănd se doreşte o centralizare a datelor
, de exemplu numărarea înregistrărilor unei grupe de
date , însumarea unor date pe grupe sau după anumite
criterii.
 Schema unei astfel de interogări este:



Câmp coloană - apare ca nume de câmp
Câmpuri rând –apar ca înregistrări
Câmp calculat – apare ca valoare calculată a înregistrărilor.
43
INTEROGARE DE TIP CROSSTAB
TITLU DE
COLOANĂ
ÎNREGISTRARE
CÂMP
CALCULAT
CRITERIU CARE NU
APARE ÎN TABELĂ
44
INTEROGARE SIMPLĂ
SELECT [domeniu] listă_selecţie
FROM nume_tabelă1, nume_tabelă2,..
[WHERE criteriul_de selecţie
[ORDER BY câmpuri_criteriu [ASC/DESC]];
domeniu: ALL,
DISTINCT,
DISTINCTROW
SELECT INTRARE_EL.nume, INTRARE_EL.pren,
INTRARE_EL.datan, INTRARE_EL.adresa, DATE_EX.media_ex
FROM INTRARE_EL INNER JOIN DATE_EX ON
INTRARE_EL.nrinr = DATE_EX.nrinr
WHERE (((DATE_EX.rezultat)=True))
ORDER BY DATE_EX.media_ex DESC;
45
INTEROGĂRI CU CÂMPURI
CALCULATE
 Interogare de tip Select utilizată pentru crearea unor cămpuri
calculate şi având şi un parametru :
SELECT [domeniu] [funcţie_agregat (nume_câmp) AS alias, ...]
FROM nume_tabelă1, nume_tabelă2, ...
GROUP BY câmp_de_grupare
[HAVING criteriul_de_grupare]
[ORDER BY câmpuri_criteriu [ASC/DESC]];
Exemplu :
SELECT Count(carti.cod_c) AS CountOfcod_c, carti.autor, carti.titlu,
carti.an_ap
FROM carti
GROUP BY carti.autor, carti.titlu, carti.an_ap
HAVING (((carti.autor)=["AUTOR:"]));
46
INTEROGARE DE TIP CROSSTAB
 Interogare de tip Crosstabe:
 TRANSFORM funcţie_agregat(câmp) AS alias
 SELECT [ALL/DISTINCT/DISTINCTROW] nume_câmp
 FROM nume_tabelă1, nume_tabelă2, ...
 GROUP BY nume_câmp
 PIVOT nume_câmp ;
 Exemplu:
 TRANSFORM Sum(cit_tot.nr) AS SumOfnr1
 SELECT cit_tot.luna AS Expr1
 FROM cit_tot
 GROUP BY cit_tot.luna
 PIVOT cit_tot.varsta ;
47
INTEROGARE DE COMBINARE








Interogare de tip Union :
SELECT listă_câmpuri FROM tabela1
UNION SELECT listă_câmpuri FROM tabela2
[GROUP BY câmp_de_grupare]
[HAVING criteriu_de_grupare]
UNION SELECT listă_câmpuri FROM tabela3
...
[ORDER BY câmp_de_sortare];






Exemplu :
SELECT distinct fmasc.luna, fmasc.nr, fmasc.sex
FROM fmasc
UNION select distinct ffem.luna,ffem.nr,ffem.sex
FROM ffem;
UNION select distinct imp_luna.luna , imp_luna.nr , imp_luna.total
from imp_luna ;
48
CREARE DE TABEL PRIN INTEROGARE
 Interogare de tip Make Table:
SELECT [domeniu] câmp1, câmp2, ...
INTO tabela_nouă
FROM tabela_sursă
[WHERE criteriul_de_adăugare];
 Exemplu:
 SELECT ALL INTRARE_EL.nume, INTRARE_EL.pren,
INTRARE_EL.datan, INTRARE_EL.adresa, DATE_EX.media_ex,
INTRARE_EL.sex
INTO ADM_2005
FROM INTRARE_EL INNER JOIN DATE_EX ON INTRARE_EL.nrinr =
DATE_EX.nrinr
WHERE (((DATE_EX.rezultat)=True))
ORDER BY DATE_EX.media_ex DESC ;
49
INTEROGARE DE ADĂUGARE
 Interogare de tip Append:
INSERT INTO tabelă_destinaţie (câmp1, câmp2, ...)
SELECT [domeniu] câmp, câmp, ...
FROM tabelă_sursă
WHERE criteriul_de_adăgare;
 Exemplu:
INSERT INTO DATE_EL ( nume, pren, datan, adresa, anul )
SELECT INTRARE_EL.nume, INTRARE_EL.pren, INTRARE_EL.datan,
INTRARE_EL.adresa, DATE_EX.anul
FROM INTRARE_EL INNER JOIN DATE_EX ON INTRARE_EL.nrinr =
DATE_EX.nrinr
WHERE (((DATE_EX.rezultat)=True))
ORDER BY DATE_EX.media_ex DESC ;
50
INTEROGARE DE ACTUALIZARE
 Interogare de tip Update :
UPDATE nume_tabelă
SET nume_câmp1=valoare1, nume_câmp2=valoare2, ...
[WHERE criteriu_de_actualizare];
 Exemplu :
UPDATE MARFURI
SET categ=“detergent”, um=“cutie”
WHERE categ=“detergenti” AND um=“cutii”;
51
INTEROGARE DE ŞTERGERE
 Interogare de tip Delete:
DELETE *
FROM nume_tabelă
[WHERE criteriu_de_ştergere];
 Exemplu:
DELETE INTRARE_EL.*, [an_prec] AS Expr1
FROM INTRARE_EL
WHERE ((([an_prec])=Year(Date())-1)) ;
52
INTEROGARE PARAMETRIZATĂ
 Interogare de tip Parameter:
 PARAMETERS listă_câmpuri_parametru
 SELECT DISTINCTROW nume_câmp1, nume_câmp2, ...
 FROM nume_tabelă
 [WHERE condiţie_parametru]
 [ORDER BY nume_câmp ASC/DESC];
 Exemplu :
 PARAMETERS [PUNCTAJ PESTE] Short;
 SELECT date_olimp.nume, date_olimp.clasa, date_olimp.total_p
 FROM date_olimp
 WHERE (((date_olimp.total_p)<=[PUNCTAJ PESTE]))
 ORDER BY date_olimp.total_p DESC;
53
DESCHIDEREA WIZARD-ului PENTRU
CREARE DE RAPOARTE
UTILITARUL
WIZARD
ALEGEREA INTEROGĂRII
CARE SERVEŞTE CA SURSĂ
DE DATE
54
ALEGEREA SURSEI DE DATE
ALEGEREA CÂMPURILOR CU
DATELE DORITE
INTEROGAREA
SELECTATĂ
55
PRECIZAREA MODULUI DE
VIZUALIZARE
PRECIZAREA MODULUI
DE VIZUALIZARE
SE DOREŞTE
GRUPAREA DUPĂ
CÂMPUL ANUL
56
GRUPĂRI ŞI SORTĂRI
NIVELUL DE
GRUPARE
MODUL DE SORTARE A
DATELOR
57
SORTARE ŞI TOTALIZĂRI DE RAPORT
SORTARE DESCRESCÎTOARE PRIN CLIC PE
BUTONUL ASCENDING
CENTRALIZĂRI ÎN SUBSOLUL
RAPORTULUI
58
MODUL DE PREZENTARE ÎN
CADRUL PAGINII
MOD DE ARANJARE ÎN
PAGINĂ
ALEGEREA
AUTOFORMATULUI
PERSONALIZAT
ANTERIOR
59
TITLUL RAPORTULUI
TITLUL
RAPORTULUI
VIZUALIZARE
NORMALĂ
VIZUALIZARE ÎN MOD
DE PROIECTARE
60
PEGINA REZULTATĂ FĂRĂ
AJUSTARE
61
RAPORTUL PRELUCRAT
PAG.1
62
RAPORTUL PRELUCRAT
PAG.2
63
MODULE. NOŢIUNI GENERALE
 Limbajul Visual Basic este instrumentul de programare
pentru aplicaţiile informatice dezvoltate cu ajutorul
Microsoft Office 2002-2003.
 Limbajul VBA este limbaj orientat pe obiecte şi
evenimente.
 Obiectele Access sunt caracterizate prin metode şi
proprietăţi.
– Metoda acţionează asupra stării obiectului.
– Proprietatea indică starea obiectului.
– Exemplu: Obiect.Visible = True
64
ACCESAREA OBIECTELOR ACCESS
 Nume obiect access![Nume obiect].Proprietate
– Parantezele sunt necesare dacă numele conţine spaţii
 Nume obiect access(“Nume obiect”).Metodă
 Exemplu:
– Forms![formular elevi]![cod elev].SetFocus
– Forms![formular elevi]![Buton iesire].Enabled=True
– Me.rezultat.Value= “-1” – unde Me reprezintă formularul
aflat pe ecran şi în care avem controlul de tip ChekBox
cu numele rezultat a cărei valoare o setăm cu adevărat
( “-1” ).
65
AFIŞARE ŞI INTRODUCERE
DATELOR
 InputBox(Mesaj,Titlu,Val_implicit,X,Y,Fişier Help,Context)
–afişează o casetă de dialog pentru introducere de date.
– Mesaj-şir de caractere(max.1024) cu trecerea la alt rând
prin Chr(13).
– Titlu – şir de caractere care reprezintă titlul casetei
– Val_implicită – spaţiul pentru introducerea datei
– X – coordonata x raportată la marginea stânga sus
– Y - coordonata y raportată la marginea stânga sus
– Fişier Help –şir de caractere care indică numele
fişierului
– Context – număr care indică locul fişierului.
66
AFIŞARE ŞI INTRODUCERE
DATELOR
MsgBox (mesaj, butoane, titlu, fişier Help, context)
 Butoane:
 vbOkOnly  0
 vbOkCancel  1
 vbAbortRetryIgnor2
 vbYesNoCancel  3
 vbCritical  16 afişează
 vbQuestion  32

?
 vbExclamation  48
!
 vbInformation  64

 vbYesNo  4
 vbRetryCancel  5
67
MODULE
 Modulele sunt obiecte din Access care permit scrierea
de rutine în limbaj VBA Visual Basic pentru Access.
 Modulele sunt formate din :
– Declaraţii de variabile
– Tipuri de date utilizator
– Proceduri
– Funcţii
 Tipurile de date sunt:
– Date standard
– Date definite de utilizator
68
TIPURI DE DATE STANDARD
TIP DE DATĂ
CARACTERISTICI
DOUBLE
CU VIRGULĂ MOBILĂ PE 64 BIŢI
SINGLE
CU VIRGULĂ MOBILĂ PE 32 BIŢI
CURRENCY
CU PATRU ZECIMALE PE 64 BIŢI
BYTE
NUMERE NATURALE PE 8 BIŢI
INTEGER
NUMERE ÎNTREGI PE 16 BIŢI
LONG
NUMERE ÎNTREGI PE 32 BIŢI
BOOLEAN
LOGICE: TRUE (“-1”) ŞI FALSE (“0”)
DATE
TIP DATĂ CALENDARISTICĂ ( ÎNTRE #)
STRING
TIP CARACTER (ÎNTRE “ ”)
VARIANT
TIP GENERIC – CARACTER GENERAL
OBJECT
REFERĂ UN OBIECT ŞI ESTE PRECEDAT DE SET
69
DECLARAREA VARIABELOR
 VARIABILE GLOBALE –valabile în toate modulele :
– PUBLIC variabila As tip_variabilă
– GLOBAL variabila As tip_variabilă
 VARIABILE LOCALE –valabile doar în modulul în care
au fost definite :
– DIM variabila As tip_dată
– PRIVATE variabila As tip_dată
– SET variabila_obiect = expresie_obiect
 VARIABILE DINAMICE:
– DE TIP VECTOR : Dim var_vector(10) As tip_dată
– DE TIP MATRICE :Dim var_matrice(10,10) As
tip_dată
70
DATE DEFINITE DE UTILIZATOR
 Cuprinde date de tipuri diferite:
 [PRIVATE ]/ [PUBLIC] TYPE nume_tip_dată
– Element1 As tip_dată
– Element2 As tip_dată
– Element3 As tip_dată
– ......
– Elementn As tip_dată
 END TYPE
 Accesul la o astfel de dată se poate face global sau
perticular: nume_tip_dată.Element1
71
OPERATORI MATEMATICI VBA
OPERATORI
OPERAŢIA REALIZATĂ
^
RIDICARE LA PUTERE
+
ADUNARE
-
SCĂDERE
*
ÎNMULŢIRE
/
ÎMPĂRŢIRE
\
CÂTUL ÎMPĂRŢIRII
MOD
RESTUL ÎMPĂRŢIRII
&
CONCATENAREA(LIPIREA) A DOUĂ EXPRESII CU
TRANSFORMAREA ACESTUIA ÎNTR-UN ŞIR DE CARACTERE
(STRING)
72
OPERATORII DE COMPARARE VBA
OPERATOR
EXPLICAŢIE
=
EGALITATE
>
MAI MARE
CARACTERE UTILIZATE LA CĂUTAREA UNEI
ÎNREGISTRĂRI
CARACTER
EXPLICAŢIE
*
ZERO SAU MAI MULTE
CARACTERE
?
UN CARACTER
#
O CIFRĂ
<
MAI MIC
>=
MAI MARE SAU
EGAL
<=
MAI MIC SAU EGAL
<>
DIFERIT
LIKE
COMPARARE A
DOUĂ ŞIRURI
[ listă caractere ]
UN CARACTER DIN LISTĂ
IS
COMPARĂ DOUĂ
VARIABILE CE
REFERĂ OBIECTE
[ ! listă caractere ]
UN CARACTER CARE NU
EXISTĂ ÎN LISTĂ 73
PROCEDURI ŞI FUNCŢII











Sub Procedura1()
PARAMETRII ACTUALI
................
Call Procedura2(P1,P2,P3)
.................
Call Procedura2(P11,P12,P13)
..................
Var_1=Funcţia1(Pa1,Pa2,Pa3)
..................
Var_2=Funcţia1(Pa11,Pa12,Pa13)
......
End Sub
 Sub Procedura2 (Pf1,Pf2,Pf3)
 ........................
 End Sub
PARAMETRII FORMALI
 Function Funcţia1(Pf1,Pf2, Pf3)




As tip_rezultat
.................
Funcţia1=expresie
.......
End Function
74
PROCEDURI ŞI FUNCŢII
 Dacă procedura sau funcţia există în alt modul sau sunt
mai multe cu acelaşi nume ,apelul se face prin precizarea
modulului din care face parte:
 Call nume_modul.nume_procedură
[(val_param1,val_param2)]
 Variabila = nume_modul.nume_funcţie
[(val_param1,val_param2)]
– Notă: Testarea unei proceduri/funcţii cu parametrii, se
creează o altă procedură fără prametrii şi se apelează
cea dintâi.
– Testarea unei proceduri/funcţii fără parametrii se face
cu comanda Run , Run Sub/User Form din meniul
principal.
75
EXEMPLE DE PROCEDURI/FUNCŢII
ŞI APELAREA LOR
 Sub afisez_msg (mesaj As String)
 Sub test_msg()
 ‘ mesajul este parametrizat prin
 Call afisez_msg (“mesajul
“mesaj”
 SysCmd acSysCmdSetStatus ,
mesaj
 End Sub
în bara de stare”)
 End Sub
Function Versiune()
APELUL FUNCŢIEI
DEFINITE
Versiune = SysCmd(acSysCmdAccessVer)
End Function
Sub test()
MsgBox Versiune
End Sub
76
FUNCŢII ACCESS
 Abs(expr_numerică)-valoarea  Date()-data curentă






absolută

Asc(şir_caractere)-codul ascii
a primului caracter

Chr(cod_caracter)–caracterul
Int(expr_numerică)-partea 
întreagă a numărului

Exp(expr_numerică)-e la

puterea expr_numerică

Log(expr_numerică)
logaritmul natural
Cos(expr_numerică)cosinusul expresiei
Day(dată)-numărul zilei
din lună
Month(dată)-numărul lunii
din an
Year(dată)-anul datei
Time()-oră:minute:secunde
Hour(expr_timp)-ora
Minute(expr_timp)-minute
Second(expr_timp)secunde
77
FUNCŢII ACCESS
 Len(şir_caractere)-numărul




de caractere din şir
Space(număr)-număr de
spaţii
Str(expr_numerică)conversie în caractere
Val(şir caracter)-conversie
în număr
Mid(şir,poziţie,[nr_caractere
])- extrage şir, de lungime
,din poziţia
 IsNull(expr) -true/false
 IsDate(expr) –true/false
 IsEmpty(expr) –true/false
 CStr(expr) –conversie în
String
 CSng(expr) –conversie în
Single
 Cdate(expr) –conversie în
Date
 Cbool(expr) –conversie în
Boolean
78
STRUCTURI FUNDAMENTALE DE
PROGRAMARE
 STRUCTURI ALTERNATIVE :
Instrucţiunea IF:
 IF condiţie THEN
 instrucţiuniA
 ELSE
 Instrucţiuni B
 END IF
...........................................................
IF NOT (condiţie) THEN
Insrtucţiuni
END IF
............................................................
Instrucţiunea SELECT CASE
SELECT CASE expr_selector
CASE listă_expr1
Instrucţiuni1
CASE listă_expr2
Instrucţiuni2
...........................................................
 CASE ELSE
 Istrucţiuni3
 END CASE






79
STRUCTURI FUNDAMENTALE DE
PROGRAMARE
 Funcţia IIF:
 STRUCTURI REPETITIVE :
 valoare=IIF(expr_test ; valoare
Instrucţiunea WHILE...WEND:
 WHILE condiţie_adevărată
 Instrucţiuni
 WEND
.............................................................
Instrucţiunea DO.....LOOP
UNTIL:
 DO
 Instrucţiuni
 LOOP UNTIL condiţie_falsă
returnată pentru cazul
adevărat al expresiei de
testare ; valoare returnată
pentru cazul fals al expresiei
de testare)
 Obs. În loc de valoare
returnată pot fi incluse alte
funcţii care să returneze
valoarea sau să execute o
acţiune!
80
STRUCTURI REPETITIVE
Instrucţiunea DO WHILE .....
LOOP:
 DO WHILE condiţie_adevăr
 Instrucţiuni
 LOOP
 .......................................................
Instrucţiunea DO UNTIL .....
LOOP:
 DO UNTIL condiţie_falsă
 Instrucţiuni
 LOOP
Instrucţiunea FOR ....NEXT:
 FOR contor=val_iniţială TO val_finală
 Secvenţă_instrucţiuni
 [EXIT FOR]
 Secvenţă instrucţiuni
 NEXT contor
 ........................................................
Instrucţiunea FOR EACH...NEXT:
 FOR EACH variabilă IN colecţie


Secventă instrucţiuni
NEXT variabilă
81
82
COMENZI MACRO
 Alături de codurile VBA ,comenzile macro
asigură automatizarea aplicaţiilor Access.
 Comenzile macro permit automatizarea
diverselor evenimente, fără ca realizatorul
aplicaţiei să cunoască un limbaj de programare.
 În cadrul comenzilor macro pot fi incluse un
număr mare de acţiuni a căror derulare poate fi
condiţionată de anumite valori afişate în
formulare sau rapoarte.
83
TIPURI DE ACŢIUNI ÎN
MACRO-COMENZI
 Deschiderea / închiderea




de tabele, interogări,
formulare sau rapoarte.
Vizualizarea sau tipărirea
rapoartelor.
Rularea cererilor de tip
acţiune.
Efectuarea condiţională a
anumitor acţiuni.
Căutarea anumitor date în
tabele.
 Deschiderea / închiderea
diferitelor meniuri de
Access.
 Afişarea de mesaje de
atenţionare sau chiar
sunete de atenţionare.
 Ştergerea, redenumirea ,
copierea sau salvarea
diferitelor obiecte ale
aplicaţiei.
 Comunicarea cu alte
produse
software(Word,Excel,etc.).
84
CREAREA UNUI BUTON DE
NAVIGARE ÎNTRE ÎNREGISTRĂRI
CASETE PE CARE LE
OFERĂ WIZARDUL
ACCESS PENTRU CREAREA
BUTONULUI
85
CREAREA UNUI BUTON DE
NAVIGARE ÎNTRE ÎNREGISTRĂRI
NUMELE BUTONULUI
ÎNREGISTRAT ÎN BAZA DE
DATE A APLICAŢIEI
ACCESS
BUTONUL REZULTAT PE
FORMULAR.
86
PROCEDURA ATAŞATĂ
EVENIMENTULUI SCRISĂ DE ACCESS
PROCEDURA SCRISĂ DE SGBD
ACCESS PENTRU
FUNCŢIONAREA BUTONULUI
87
Macrocomanda care apelează funcţia
IsLoaded() de închiderea a formularului
Condiţia aplicării
acţiunii
Tipul acţiunii
Tipul obiectului căruia îi este
aplicată acţiunea
Numele obiectului
specificat mai sus
88
Procedură ataşată butonului de
deschidere a unui formular
Apelează macrocomanda
“cautare” , de închidere a
formularului cu acelaşi
nume , înainte de
deschiderea formularului
“FURNIZORI”
89
CREAREA UNEI PAGINI WEB
 Acest lucru este necesar fie pentru a utiliza baza de
date în reţea, astfel încât fiecare utilizator să poată
accesa în mod citire sau editare diferite date din
aceasta, fie pentru a informa prin reţeaua Internet
asupra unor resurse din baza de date a firmei
respective.
 Deşi pare un lucru greu, “vrăjitorul” te ajută, iar dacă
ai şi noţiuni de HTML poţi să faci modificări direct în
sursa paginii.
 Oricum, în principiu nu este mai greu decât să realizezi
un raport pe baza unei interogări în modul Wizard!
90
MODURI DE CREAREA PAGINII WEB
 Crearea unei pagini Web în
modul Design (introduceţi
fiecare dată singur ).
 Crearea unei pagini Web în
modul Wizard (exact ca în
cazul formularelor, se crează
pe baza unei interogări sau a
unei tabele).
 Editarea unei pagini Web deja
existentă.
 Eu vă recomand să utilizaţi
varianta Wizard şi să
respectaţi regulile învăţate la
crearea rapoartelor.
91