Sunteți pe pagina 1din 19

6.

REALIZAREA UNEI BAZE DE DATE IN VISUAL BASIC

Metoda cea mai rapidă de afişare a unei informaţii dintr-o bază de


date este plasarea unui control de date într-un formular. Controlul de date
face două lucruri:
¾ Furnizează o conexiune la o bază de date;
¾ Oferă utilizatorului o modalitate de a se deplasa prin baza de date şi
de a vedea înregistrările pe care le conţine.
Controlul Data control (DAO Data Control) este cea mai simpla
modalitate de a conecta un program scris în Visual Basic la o bază de date.

6.1.Conectarea la o bază de date si lucrul cu înregistrări

Crearea unei aplicaţii utilizând Data Control este foarte uşoară. Dacă
dorim doar o explorare a bazei de date nu este nevoie sa scriem nici măcar o
singură linie de cod. Trebuie doar să ţinem cont de două lucruri, şi anume,
setarea proprietăţilor DatabaseName şi RecordSource ale Data Control.
Pentru a face acest lucru trebuie să executăm următorii paşi:
1. Începem un nou proiect Visual Basic.
2. În bare de instrumente executăm dublu click pe pictograma Data
Control.

Pe formularul nostru va apărea un DAO Data Control asa cum se


poate observa din figura următoare.

Curs: sef.lucr.dr.ing. Leba Monica


Laborator: prep.ing. Tabacaru-Barbu Camelia
prep.ing. Sochirca Bogdan
3. Executăm click pe proprietatea DatabaseName din fereastra
Properties. Acest lucru ne permite selectarea unei baze de date la care dorim
să ne conectăm. Considerăm că avem o bază de date creată anterior pe care
dorim să o explorăm (exemplu.mdb care conţine un tabel „Phone book” in
care există patru câmpuri: Nume, Prenume, Adresă, Nr telefon). Vom selecta
baza de date exemplu.mdb.

În timpul rulării un utilizator poate executa click pe un control de date


pentru a se deplasa la următoarea, precedenta, prima sau ultima înregistrare
dintr-un set de înregistrări.
4. Executăm click pe proprietatea RecordSource. Va apărea o listă
derulantă afişând toate tabelele disponibile în baza de date pe care am ataşat-

Curs: sef.lucr.dr.ing. Leba Monica


Laborator: prep.ing. Tabacaru-Barbu Camelia
prep.ing. Sochirca Bogdan
o la controlul de date (folosind baza de date exemplu.mdb vom selecta
tabelul „Phone book”),după cum se poate observa şi în figura următoare.

Pe un formular putem pune oricât de multe controale de date diferite.


În felul acesta putem accesa diferite tabele sau chiar baze de date diferite,
toate pe acelaşi formular.
Conexiunea cu baza de date are loc de fiecare dată când aplicaţia
rulează. Aceasta conexiune nu este vizibilă deoarece nu avem nici o
modalitate de a vizualiza datele. Pentru a vizualiza datele cu ajutorul DAO
trebuie sa conectăm o serie de controale pentru afişarea datelor (data bound)
la acesta. Pentru a realiza acest lucru trebuie să urmăm următorii paşi:
1.Folosim 4 casete cu text pentru a explora tabelul „phone book” şi
anume pentru Nume, Prenume, Adresă, Nr telefon.
2. Setăm DataSource, din fereastra Properties, a tuturor casetelor cu
text cu numele controlului DAO folosit anterior (Dacă nu redenumim DAO
el se numeşte implicit Data1).

Curs: sef.lucr.dr.ing. Leba Monica


Laborator: prep.ing. Tabacaru-Barbu Camelia
prep.ing. Sochirca Bogdan
3. Pe rând setăm proprietatea DataField a casetelor cu text cu
câmpurile existente in tabelul nostru, câmpuri pe care dorim să le
vizualizăm.

Programul prin care putem vizualiza o baza de date este gata, şi el ar


trebui să ne permită explorarea bazei de date „exemplu.mdb” în care aveam
un tabel intitulat „Phone book”, in care sunt stocate informaţii privind
Numele, Prenumele, Adresa precum şi Nr de telefon a unor persoane, lucru
efectuat fără a scrie nici măcar o singură linie de cod, doar folosindu-ne de
anumite controale precum şi cu ajutorul proprietăţilor acestora.

6.2.Interogări

Când deschidem o conexiune la o bază de date vrem în general să


obţinem informaţii de la aceasta. Dar în cele mai multe cazuri nu dorim toate
informaţiile din ea. Pentru aceasta se folosesc interogările. O interogare este
o cerere pentru o anumită parte din informaţiile dintr-o bază de date. Când
rulăm o interogare, primim un set de înregistrări conţinând datele pe care le-
am cerut. Datele pe care le obţinem pot fi extrase din mai multe tabele,
grupate după criterii specifice şi sortate. În acest scop SQL (Structured
Query Language) a devenit modalitatea standard de interogare a bazelor de
date.
Pentru a construi o aplicaţie care testează interogările vom folosi
controlul DBGrid. Pentru aceasta vom realiza următoarele:

Curs: sef.lucr.dr.ing. Leba Monica


Laborator: prep.ing. Tabacaru-Barbu Camelia
prep.ing. Sochirca Bogdan
1. Pornim un nou proiect Visual Basic.
2. Din meniul Project Components vom adăuga componenta
Microsoft Data Bound Grid Control 5.0.

3. Controlul DBGrid va fi adăugat la bara de instrumente. Executând


dublu click pe componenta nou introdusă ea va fi automat adăugată in
formularul nostru.

Curs: sef.lucr.dr.ing. Leba Monica


Laborator: prep.ing. Tabacaru-Barbu Camelia
prep.ing. Sochirca Bogdan
4. Vom mai adăuga o casetă de text, un buton de comandă, precum şi
un control DAO. Le vom aranja astfel încât să arate ca in figura următoare:

5. Vom seta următoarele proprietăţi:


a) Casetei de text - Multiline = True
- Text = Select
b) Controlului DAO - DatabaseName = numele bazei de date la care
dorim să ne conectăm (dacă folosim baza de date
anterioară atunci va fi exemplu.mdb)
- RecordSource = numele tabelei din baza de data
(phone book)
c) Controlului DBGrid - DataSource = numele controlului DAO (Data1)
- Align = 1-vbAlignTop
d) Butonului de comandă - Caption = RunQuery
6. În final trebuie sa adăugăm următorul cod corespunzător apăsării
butonului Run query
Data1.RecordSource = Text1.Text
Data1.Refresh
Când vom rula aplicaţia Data Grid va fi populat cu conţinutul complet
al tabelului „phone book”.
În cazul în care nu ne interesează tot conţinutul tabelului vom putea
scrie in caseta de text comenzi SQL pentru sortarea sau filtrarea datelor

Curs: sef.lucr.dr.ing. Leba Monica


Laborator: prep.ing. Tabacaru-Barbu Camelia
prep.ing. Sochirca Bogdan
existente. Dacă vom dori o sortare in ordine alfabetică a numelor din tabel
vom scrie următoarele comenzi SQL în caseta de text:
Select *
from [phone book]
order by nume
Ne va apărea baza de date sortată crescător după „nume”

În continuare vom prezenta câteva din cele mai uzuale comenzi SQL

1.SELECT: principala propoziţie SQL pentru recuperarea datelor.


Forma generală este: Select field(s) from table(s)
În cazul în care dorim să recuperăm toate câmpurile dintr-un tabel
utilizăm comanda „*” .
De exemplu Select * from [phone book] are ca efect extragerea
tuturor înregistrărilor din tabela phone book. În cazul în care avem nume de
câmpuri care conţin caractere speciale sau chiar spaţii numele câmpurilor
trebuie puse în paranteze drepte.
Opţiunea „Order by” ne permite sortarea după anumite câmpuri.

2.WHERE: rafinarea câmpului


După folosirea propoziţiilor Select şi From dacă dorim să limităm şi
mai mult datele vom folosi Where care are ca scop filtrarea datelor
Forma generală este: Where field operator criteria
Field operator se referă la înregistrările asupra cărora urmează să fie
aplicat criteriul de rafinare.
Curs: sef.lucr.dr.ing. Leba Monica
Laborator: prep.ing. Tabacaru-Barbu Camelia
prep.ing. Sochirca Bogdan
Putem defini următorii operatori pentru a specifica un filtru:
Operator Semnificaţia Exemplu Rezultat
< Mai mic Where Nume < Arată toate
‘C’ numele care
incep cu A sau B
<= Mai mic sau egal cu Where Arată toate nr ID
IDNumber <=20 mai mici sau
egale cu 20
> Mai mare decât Where Arată toate nr ID
IDNumber >20 peste 20
>= Mai mare sau egal cu Where Arată toate nr ID
IDNumber =>20 peste 19
= Egal cu Where Arată numai nr
IDNumber =20 ID 20
<> Nu este egal cu Where Arată toate nr ID
IDNumber <>20 altele decât 20
BETWEEN Într-un interval Where nume Arată toate
Between ‘A’ and numele care
‘D’ încep cu A, B sau
C
LIKE Potriveşte cu model Where nume Arată toate
Like ‘Ion*’ numele care
încep cu
caracterele „Ion”
IN Potriveşte articolele Where nume In Arată toate
conţinute într-o listă (‘Ionescu’, numerele de
‘Vasile’) Ionescu sau
Vasile

În continuare vom prezenta câteva exemple de comenzi SQL precum


si efectele acestora asupra bazei noastre de date.

Curs: sef.lucr.dr.ing. Leba Monica


Laborator: prep.ing. Tabacaru-Barbu Camelia
prep.ing. Sochirca Bogdan
1.
Select *
from [phone book]
where nume <'c'

2.
Select *
from [phone book]
where nume >'c'

Curs: sef.lucr.dr.ing. Leba Monica


Laborator: prep.ing. Tabacaru-Barbu Camelia
prep.ing. Sochirca Bogdan
3.
Select *
from [phone book]
where nume <>'Ionescu'

4.
Select *
from [phone book]
where nume between 'a' and 'e'

Curs: sef.lucr.dr.ing. Leba Monica


Laborator: prep.ing. Tabacaru-Barbu Camelia
prep.ing. Sochirca Bogdan
5.
Select *
from [phone book]
where nume like 'io*'

6.
Select *
from [phone book]
where nume in ('ionescu', 'popescu')

Curs: sef.lucr.dr.ing. Leba Monica


Laborator: prep.ing. Tabacaru-Barbu Camelia
prep.ing. Sochirca Bogdan
6.3 Rapoarte

Un raport este, în forma sa cea mai simplă, doar o tipărire de


informaţii dintr-o bază de date. Aplicaţia creată poate să afişeze raportul pe
ecran, dar cel mai adesea îl putem trimite către imprimantă. Rapoartele
bazelor de date implică mai multe operaţii decât o simplă imprimare a
datelor din baza noastră. Cele mai multe rapoarte implică operaţii adiţionale
cum ar fi:
• Interogarea datelor pentru afişarea sau imprimarea doar a datelor
care ne interesează. Această operaţie se mai numeşte şi filtrare.
• Sortarea datelor astfel încât acestea să apară în ordinea dorită de
utilizator.
• Gruparea datelor pentru a fi afişate într-o ordine cât mai firească.
Sunt mai multe instrumente se ocupă de rapoarte în mediul de
programare Visual Basic, noi ne vom opri asupra lui Crystal Reports Pro
considerat a fi cel mai uşor de folosit. Pentru crearea unui raport trebuie
urmaţi doi paşi, şi anume crearea raportului iar apoi adaugarea controlului
ActivX Crystal Reports în proiectul nostru.
De obicei dacă la instalarea mediului de programareVisual Basic am
instalat şi opţiunea Report Designer, atunci Crystal Reports se va gasi
instalat, iar dacă nu-l avem instalat îl putem instala manual de pe CD nr.2 al
pachetului Microsoft Visual Studio din directorul COMMON\ TOOLS\ VB\
CRYSREPT, apoi CRYSTL32.EXE.
Înainte de a folosi un raport în aplicaţia nosstră trebuie mai întâi creat
raportul. Nu putem creea rapoarte folosind linii de cod, dar în schimb
folosim Crystal Reports pentru a le creea. După crerea raportului şi salvarea
acestuia vom putea să-l folosim în aplicaţie.
Pentru a lansa în execuţie Crysal Reports trebuie urmaţi paşii:
1. Din meniul Add-Ins alegem opţiunea Report Designer.
2. Crystal Reporsts se va lansa automat.
3. Din meniul File al aplicaţiei Crystal Reports alegem New. Va
apărea caseta Create New Report.

Curs: sef.lucr.dr.ing. Leba Monica


Laborator: prep.ing. Tabacaru-Barbu Camelia
prep.ing. Sochirca Bogdan
Din caseta de dialog care va apărea putem selecta mai multe sabloane
de rapoarte. Dintre acestea putem aminti:
• Standard ( a report that list information in rows and columns
enabeling you to sort and total data)
• Listing ( a straight list of data with no summary or totaling fields.
You might use this kind of report to print telephone directories)
• Cross-Tab (a summary of data in two dimensions)
• Mail Label (a report designed to print data in columns for mailing
labels)
• Summary (a report showing only totals and aggregate figure
without the detalied data)
• Graph (a visual representation of data)
• Top N (a repot that enables you to specify a certain numer of
records to display)
• Drill Down (a report that enables you to double-click summary
data to see the detail behind that data)
• Another Report (a reprt that uses as a template a report you’ve
previously created as a template)
4. Dintre toate aceste şabloane vom alege raportul Standard.
Curs: sef.lucr.dr.ing. Leba Monica
Laborator: prep.ing. Tabacaru-Barbu Camelia
prep.ing. Sochirca Bogdan
5. În următoarea caseta de dialog ni se cere baza de date de unde
vrem să extragem datele pentru raportul nostru. Dacă folosim
aceeaşi bază de date ca în exemplele precedente vom adăuga
„exemplu.mdb”. Se poate crea un raport extrăgând informaţii din
mai multe baze de date.

6. Următorul pas constă în selectarea câmpurilor care dorim sa apară


în raportul nostru. Putem selecta doar un câmp sau le putem selecta
pe toate, câte dorim să apară în raport.

Curs: sef.lucr.dr.ing. Leba Monica


Laborator: prep.ing. Tabacaru-Barbu Camelia
prep.ing. Sochirca Bogdan
Dacă avem de-a face cu baze de date relaţionale tot în această
fereastră vom putea vizualiza şi relaţiile existente între acestea. De asemenea
vom putea modifica relaţiile existente prin adăugarea unora noi sau prin
ştergere.

7. În următorul pas va trebui să sortăm datele după anumite câmpuri


(unul sau mai multe câmpuri adunate în grupuri) dupa criteri deja
predefinite sau după criterii definite de utilizator.

Curs: sef.lucr.dr.ing. Leba Monica


Laborator: prep.ing. Tabacaru-Barbu Camelia
prep.ing. Sochirca Bogdan
8. La următorul pas trebuie să alegem câmpurile sau grupurile de
câmpuri la care dorim să le facem un subtotal, să le numărăm, etc.

9. Apoi vor trebui selectate câmpurile care dorim să le afişăm în


raport operaţie numită si filtrare. Putem alege câmpurile dar putem
alege si o regulă după care să apară. De exemplu putem alega ca
anumite date sa aibă o anumită valoare,să fie între anumite
limite,să fie mai mici, mai mari, sau putem definii propriile noastre
formule de apariţie a datelor.

Curs: sef.lucr.dr.ing. Leba Monica


Laborator: prep.ing. Tabacaru-Barbu Camelia
prep.ing. Sochirca Bogdan
10. Ultimul pas în crearea raportului este acela de a selecta stilul de
apariţie a datelor, fonturile,titlul, şi chiar putem selecta să apară o
imagine ca logo.

11. După acest ultim pas putem să vizualizăm modul de afişare a


datelor unde putem face modificări de structură, dimensiunile
câmpurilor. Raportul generat cu Crystal Reports este un raport
foarte flexibil putând fi ulterior modificat cu uşurinţă. Nu ne mai
rămâne de făcut decât de salvat raportul, lucru foarte important
deoarece cu fişierul astfel salvat (cu extensia *.rpt) îl vom folosi in
Visual Basic.

În continuare vom lega raportul astfel creat de o aplicaţie în Visual


Basic.
1. Vom deschide un nou proiect în Visual Basic.

Curs: sef.lucr.dr.ing. Leba Monica


Laborator: prep.ing. Tabacaru-Barbu Camelia
prep.ing. Sochirca Bogdan
2. Pentru a ne putea folosi de raportul creat anterior va trebui să
adăugăm controlul activx Crystal Report Control 4.6 la bara de
instrumente.

3. Îl inserăm în formular si alături m-ai introducem un buton de


comandă la care îi vom schimba numele în Generare.

4. Controlului Crystal Reports în vom schimba proprietatea


ReportFileName cu numele fişierului raport salvat anterior. Ne va
apărea o casetă de dialog care ne va cere să alegem între afişarea
raportului pe ecran, către imprimantă, către cu fişier care poate sa
fie de tip lotus, word, html, excel, etc.
Curs: sef.lucr.dr.ing. Leba Monica
Laborator: prep.ing. Tabacaru-Barbu Camelia
prep.ing. Sochirca Bogdan
5. La apăsarea butonului Generare va trebui să adăugăm următoarea
linie de cod:
CrystalReport1.PrintReport
Dacă vom alege ca raportul să apară pe ecran, el va fi afişat într-o
fereastră separată

Curs: sef.lucr.dr.ing. Leba Monica


Laborator: prep.ing. Tabacaru-Barbu Camelia
prep.ing. Sochirca Bogdan

S-ar putea să vă placă și