2. 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
3. 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
4. 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
5. 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
6. 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
7. MODELUL RELAŢIONAL
AL BAZEI DE DATE
TERMENI ECHIVALENŢI
MODELUL RELAŢIONAL SQL NE-RELAŢIONAL
(SGBD)
RELAŢIE - caracterizează un tip de entitate -
o clasă de obiecte, evenimente sau concepte TABEL FIŞIER
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. COLOANĂ CÂMP
TUPLU- caracterizează o entitate (o instanţă
unică) al tipului de entitate inclus în relaţia RÂND ÎNREGISTRARE
din care face parte instanţa respectivă.
7
8. NORMALIZAREA BAZEI DE DATE
Prima formă normală 1FN A doua formă normală A treia formă normală
2FN 3FN
Are coloane care conţin 1FN 2FN
numai valori atomice (o Nu există dependenţe Nu există depen-denţe
singură valoare, funcţionale parţiale. tranzitive. Răspunsul la
nedivizată) Răspunsul la întrebarea : întrebarea : “ Pot
Nu conţine grupuri care “Pot determina valoarea determina valoarea
se repetă (două sau mai coloanei non-cheie dacă coloanei non-cheie dacă
multe coloane în relaţie nu cunosc decât o parte cunosc oricare altă
logică unele cu altele) din valoarea cheii primare valoare a unei coloane
?” non-cheie ?”
8
9. 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
10. 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
11. 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
12. SCHEMA LOGICĂ A COLECŢIEI DE
OBIECTE ACCESS
TABEL2
TABEL1 TABEL3
INTEROGARE
FORMULAR RAPORT
12
13. OBIECTELE ACCESS
Table-obiect definit de utilizator în
care sunt stocate datele primare. Pages-obiect care include un fişier
HTML şi alte fişiere suport în
Form-obiect care permite
vederea furnizării accesului la date
introducerea datelor, afişarea
prin intermediul browser-ului
acestora sau controlul întregii
Internet.
aplicaţii.
Macro-obiect care conţine o
Query-obiect care permite
definiţie structurată a uneia sau mai
vizualizarea informaţiilor obţinute
multor acţiuni pe care Access le
prin prelucrarea datelor din unul sau
realizează ca răspuns la un
mai multe tabele şi / sau interogări.
eveniment.
Report-obiect care permite
Module-obiect care conţine
formatarea şi tipărirea informaţiilor
proceduri definite de utilizator şi
obţinute în urma consultării bazei de
scrise în limbajul de programare
date sub formă de document.
Visual Basic.
13
14. CREAREA TABELELOR
MODUL DE NUMELE TIPUL DE DATE
REALIZARE A
CÂMPULUI CONŢINUT DE CÂMP
STRUCTURII
TABELEI
DIMENSIUNEA CÂMPULUI.
SETĂRI SUPLIMENTARE
RELATIV LA CÂMPUL
DEFINIT.
SETĂRI SPECIFICE
CONŢINUTULUI
CÂMPULUI
14
15. 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
16. CREAREA LEGĂTURILOR ÎNTRE
TABELE
CASETĂ DE DIALOG
DESCHIDEREA DESCHISĂ PRIN
INTERFEŢEI PENTRU MENIUL RAPID
CREAREA LEGĂTURILOR. PENTRU ADĂUGAREA
TABELELOR ÎN
SUPRAFAŢA
RELAŢIILOR.
16
17. 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
20. CREAREA FORMULARELOR
CÂMPURILE
DIN
FORMULAR.
CÂMPURILE DIN
TABELELE CARE FORMULARUL
AU CONŢIN SUBORDONAT
CÂMPURILE CE (SUBFORM).
VOR APĂREA ÎN
FORMULAR. SE VA
ALEGE MODUL DE
PREZENTARE A
DATELOR.
20
25. CONTROALE ŞI FUNCŢIILE LOR
INSTRUMENT NUME FUNCŢIE
SELECT OBJECT (indicator) Pointer-ul de selecţie al obiectelor.
CONTROL WIZARD Activează/dezactivează programele Control
Wizard
LABEL Afişează texte fixe ce includ numele unui
(etichetă) control de tip text sau instrucţiuni.
TEXT Casetă de tip text ,editabilă.
BOX
OPTION Grup de controale de tip opţiune. Din grup doar
GROUP una poate fi selectată.
TOOGLE Buton cu două stări : ON(selectat) care
BUTTON înseamnă DA (-1) şi OFF(deselectat) care
înseamnă NU (0).
25
26. CONTROALE ŞI FUNCŢIILE LOR
INSTRUMENT
FUNCŢIE
NUME
OPTION Buton opţiune folosit pe formular cu alte butoane pentru a
BUTTON determina care din acţiuni să aibă loc atunci când este
selectat.
CHECK Casetă de validare care,atunci cănd este selectată comută în
BOX starea ON(-1).
COMBO Casetă combinată.Casetă de text cu o listă derulantă. Ăn
BOX caseta de text se poate edita şi găseşte elementul în listă.
LIST Casetă listă. Conţine o listă de valori al unui câmp din baza
BOX de date.
COMMAND Buton de comandă ,folosit pentru a executa coduri de
BUTTON procedură editate în VBA.
IMAGE Afişează o imagine statică.Nu poate fi editată în formular.
26
27. CONTROALE ŞI FUNCŢIILE LOR
INSTRUMENT NUME FUNCŢIE
UNBOUND Obiect neasociat bazei de date care include un obiect
OBJECT OLE: orice obiect editat într-un program Microsoft
FRAME Office.
BOUND Obiect asociat bazei de date şi care conţine un obiect
OBJECT OLE : imagine,grafic,sunete,filme,etc.
FRAME
PAGE Delimitator de pagină.Determină imprimanta să tracă la o
BREAK nouă pagină.Nu este vizibil în formular.
27
28. CONTROALE ŞI FUNCŢIILE LOR
INSTRUMENT NUME FUNCŢIE
TAB Schimbător de pagină.Crează o serie de pagini care pot
CONTROL fi schimbate.Fiecare pagină conţine mai multe
controale.Se utilizează pentru formulare prea încărcate.
SUBFORM/ Introduce în formular , sub formă de subformular sau
SUBREPORT raport ,un formular sau raport efectuat anterior.
LINE 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
29. TIPURI DE DATE
DATE TIPUL DATELOR DESCRIERE
Cel mult 255 caractere.Valoarea
TEXT
prestabilită la 50.
ALFANUMERICE Cel mult 64.000 caractere. Nu poate fi
MEMO cheie primară şi nu putem indexa
după el.
Sunt disponibile mai multe
NUMBER subtipuri.Se alege formatul
dorit(nr.zecimale,etc.)
Tip Long Integer ce se
NUMERICE autoincrementează.Nu se poate
AUTONUMBER modifica când există înregistrări.
Tip boolean:Yes=-1,No=0.Nu poate fi
YES/NO
cheie dar poate fi indexat.
29
30. TIPURI DE DATE
DATE TIPUL DATELOR DESCRIERE
NUMERICE Format special,fix ,cu patru
CURENCY zecimale,proiectat să excludă erorile de
rotunjire în calcule financiare.
Data calendaristică şi ora sunt stocate într-un
DATE
DATE/TIME format special fix.Se selectează formatul
CALENDARISTICE
dorit.
Include elemente grafice,fişiere cu semnale
audio şi alte tipuri de date create de o
OBIECTE MARI OBJECT OLE
aplicaţie OLE server.Nu poate fi cheie şi nici
index.
Adresă a unei pagini Web.Formată din trei
ADRESE INTERNET HYPERLINK
părţi: textul afişat,adresa şi subadresa.
Crează cîmpuri care permit utilizatorului să
LOOKUP
INFORMAŢII LEGATE aleagă valori din cadrul altor tabele sau dintr-
WIZARD
o listă de valori.
30
31. 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
DE LA -2.147.483.648 LA
LONG INTEGER 0 4
2.147.483.648
SINGLE 7 DE LA – 3,4*1038 LA + 3,4*1038 4
DE LA - 1,797*10308 LA
DOUBLE 15 8
+1,797*10308
REPLICATION ID IDENTIFICATOR GLOBAL UNIC 16
DECIMAL DE LA - 1028 LA + 1028 16
31
32. 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
33. 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 operaţiile de
căutare în baza de date.
33
34. 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
35. 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
36. 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
37. 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
38. 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
39. OPERAŢII PREDEFINITE DE ACCESS
OPERAŢIA FUNCŢIA TIP CÂMP
Suma valorilor unui Numeric, Autonumber ,
SUM
câmp Data, Logic
Numeric, Autonumber ,
AVG Media aritmetică
Data, Logic
Numeric, Autonumber ,
MIN Valoarea minimă
Data, Logic, Text
Numeric, Autonumber ,
MAX Valoarea maximă
Data, Logic,Text
39
40. OPERAŢII PREDEFINITE DE ACCESS
OPERAŢIA FUNCŢIA TIP CÂMP
Numărul de valori dintr- Toate tipurile
COUNT
un câmp
Varianţa valorilor unui Numeric, Autonumber
STDEV
câmp ,Data,Logic
FIRST Prima valoare din câmp Toate tipurile
LAST Ultima valoare din câmp Toate tipurile
40
41. 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 CRITERII DE
REZULTATUL SELECŢIE
INTEROGĂRII
41
42. 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
43. 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
44. INTEROGARE DE TIP CROSSTAB
TITLU DE CRITERIU CARE NU
CÂMP
COLOANĂ APARE ÎN TABELĂ
CALCULAT
ÎNREGISTRARE
44
45. INTEROGARE SIMPLĂ
SELECT [domeniu] listă_selecţie
FROM nume_tabelă1, nume_tabelă2,.. domeniu: ALL,
DISTINCT,
[WHERE criteriul_de selecţie
DISTINCTROW
[ORDER BY câmpuri_criteriu [ASC/DESC]];
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
46. 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
47. 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
48. 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
49. 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
50. 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
51. 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
52. 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
53. 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
54. DESCHIDEREA WIZARD-ului PENTRU
CREARE DE RAPOARTE
ALEGEREA INTEROGĂRII
UTILITARUL CARE SERVEŞTE CA SURSĂ
WIZARD DE DATE
54
55. ALEGEREA SURSEI DE DATE
ALEGEREA CÂMPURILOR CU INTEROGAREA
DATELE DORITE SELECTATĂ
55
56. PRECIZAREA MODULUI DE VIZUALIZARE
PRECIZAREA MODULUI SE DOREŞTE
DE VIZUALIZARE GRUPAREA DUPĂ
CÂMPUL ANUL
56
64. 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
65. 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
66. 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
68. 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
69. 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
70. 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
71. 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
72. 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
73. OPERATORII DE COMPARARE VBA
CARACTERE UTILIZATE LA CĂUTAREA UNEI
OPERATOR EXPLICAŢIE ÎNREGISTRĂRI
= EGALITATE CARACTER EXPLICAŢIE
> MAI MARE
ZERO SAU MAI MULTE
*
CARACTERE
< MAI MIC
>= MAI MARE SAU EGAL ? UN CARACTER
<= MAI MIC SAU EGAL
# O CIFRĂ
<> DIFERIT
COMPARARE A DOUĂ [ listă caractere ] UN CARACTER DIN LISTĂ
LIKE ŞIRURI
COMPARĂ DOUĂ
VARIABILE CE REFERĂ
UN CARACTER CARE NU EXISTĂ
IS [ ! listă caractere ]
OBIECTE ÎN LISTĂ 73
74. PROCEDURI ŞI FUNCŢII
Sub Procedura1() Sub Procedura2 (Pf1,Pf2,Pf3)
PARAMETRII ACTUALI
................ ........................
Call Procedura2(P1,P2,P3) End Sub
.................
PARAMETRII FORMALI
Call Procedura2(P11,P12,P13)
.................. Function Funcţia1(Pf1,Pf2, Pf3) As
Var_1=Funcţia1(Pa1,Pa2,Pa3) tip_rezultat
.................. .................
Var_2=Funcţia1(Pa11,Pa12,Pa13)
Funcţia1=expresie
......
.......
End Sub
End Function
74
75. 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
76. 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 în
“mesaj” bara de stare”)
SysCmd acSysCmdSetStatus , mesaj End Sub
End Sub
APELUL FUNCŢIEI
Function Versiune() DEFINITE
Sub test()
Versiune = SysCmd(acSysCmdAccessVer) MsgBox Versiune
End Sub
End Function
76
77. FUNCŢII ACCESS
Abs(expr_numerică)-valoarea Date()-data curentă
absolută Day(dată)-numărul zilei din
Asc(şir_caractere)-codul ascii a lună
primului caracter Month(dată)-numărul lunii din
Chr(cod_caracter)–caracterul an
Int(expr_numerică)-partea Year(dată)-anul datei
întreagă a numărului Time()-oră:minute:secunde
Exp(expr_numerică)-e la Hour(expr_timp)-ora
puterea expr_numerică
Minute(expr_timp)-minute
Log(expr_numerică)-logaritmul
Second(expr_timp)-secunde
natural
Cos(expr_numerică)-cosinusul
expresiei 77
78. FUNCŢII ACCESS
IsNull(expr) -true/false
Len(şir_caractere)-numărul de
IsDate(expr) –true/false
caractere din şir
IsEmpty(expr) –true/false
Space(număr)-număr de spaţii
CStr(expr) –conversie în
Str(expr_numerică)-conversie
în caractere String
CSng(expr) –conversie în
Val(şir caracter)-conversie în
număr Single
Cdate(expr) –conversie în
Mid(şir,poziţie,[nr_caractere])-
extrage şir, de lungime ,din Date
poziţia Cbool(expr) –conversie în
Boolean
78
79. STRUCTURI FUNDAMENTALE DE
PROGRAMARE
STRUCTURI ALTERNATIVE : Instrucţiunea SELECT CASE
Instrucţiunea IF: SELECT CASE expr_selector
IF condiţie THEN CASE listă_expr1
instrucţiuniA
Instrucţiuni1
CASE listă_expr2
ELSE
Instrucţiuni2
Instrucţiuni B
...........................................................
END IF
CASE ELSE
........................................................... Istrucţiuni3
IF NOT (condiţie) THEN END CASE
Insrtucţiuni
END IF
............................................................
79
80. STRUCTURI FUNDAMENTALE DE
PROGRAMARE
Funcţia IIF: STRUCTURI REPETITIVE :
valoare=IIF(expr_test ; valoare Instrucţiunea WHILE...WEND:
returnată pentru cazul adevărat al WHILE condiţie_adevărată
expresiei de testare ; valoare Instrucţiuni
returnată pentru cazul fals al WEND
expresiei de testare) .............................................................
Instrucţiunea DO.....LOOP UNTIL:
Obs. În loc de valoare returnată
DO
pot fi incluse alte funcţii care să
Instrucţiuni
returneze valoarea sau să
LOOP UNTIL condiţie_falsă
execute o acţiune!
80
81. STRUCTURI REPETITIVE
Instrucţiunea DO WHILE ..... Instrucţiunea FOR ....NEXT:
LOOP: FOR contor=val_iniţială TO val_finală
DO WHILE condiţie_adevăr Secvenţă_instrucţiuni
Instrucţiuni [EXIT FOR]
LOOP Secvenţă instrucţiuni
NEXT contor
.......................................................
Instrucţiunea DO UNTIL ..... ........................................................
LOOP: Instrucţiunea FOR EACH...NEXT:
DO UNTIL condiţie_falsă FOR EACH variabilă IN colecţie
Secventă instrucţiuni
Instrucţiuni NEXT variabilă
LOOP
81
83. 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
84. TIPURI DE ACŢIUNI ÎN
MACRO-COMENZI
Deschiderea / închiderea
Deschiderea / închiderea de
tabele, interogări, formulare diferitelor meniuri de
sau rapoarte. Access.
Afişarea de mesaje de
Vizualizarea sau tipărirea
rapoartelor. atenţionare sau chiar sunete
de atenţionare.
Rularea cererilor de tip
Ştergerea, redenumirea ,
acţiune.
copierea sau salvarea
Efectuarea condiţională a diferitelor obiecte ale
anumitor acţiuni. aplicaţiei.
Căutarea anumitor date în Comunicarea cu alte
tabele. produse
software(Word,Excel,etc.).84
85. CREAREA UNUI BUTON DE NAVIGARE
ÎNTRE ÎNREGISTRĂRI
CASETE PE CARE LE
OFERĂ WIZARDUL
ACCESS PENTRU CREAREA
BUTONULUI
85
86. CREAREA UNUI BUTON DE NAVIGARE
ÎNTRE ÎNREGISTRĂRI
BUTONUL REZULTAT PE
NUMELE BUTONULUI FORMULAR.
ÎNREGISTRAT ÎN BAZA DE
DATE A APLICAŢIEI
ACCESS
86
88. Macrocomanda care apelează funcţia
IsLoaded() de închiderea a formularului
Tipul acţiunii
Condiţia aplicării
acţiunii
Tipul obiectului căruia îi este
aplicată acţiunea
Numele obiectului
specificat mai sus
88
89. 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
90. 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
91. 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