|
REALIZAREA UNEI BAZE DE DATE IN VISUAL BASIC
Metoda cea mai rapida de afisare a unei informatii dintr o baza de date este plasarea unui control de date intr-un formular. Controlul de date face doua lucruri:
Furnizeaza o conexiune la o baza de date;
Ofera utilizatorului o modalitate de a se deplasa prin baza de date si de a vedea inregistrarile pe care le contine.
Controlul Data control DAO Data Control) este cea mai simpla modalitate de a conecta un program scris in Visual Basic la o baza de date.
1.Conectarea la o baza de date si lucrul cu inregistrari
Crearea unei aplicatii utilizand Data Control este foarte usoara. Daca dorim doar o explorare a bazei de date nu este nevoie sa scriem nici macar o singura linie de cod. Trebuie doar sa tinem cont de doua lucruri, si anume, setarea proprietatilor DatabaseName si RecordSource ale Data Control. Pentru a face acest lucru trebuie sa executam urmatorii pasi:
1. Incepem un nou proiect Visual Basic.
2 In bare de instrumente executam dublu click pe pictograma Data
Control.
Pe formularul nostru va aparea un DAO Data Control asa cum se poate observa din figura urmatoare.
Curs: sef.lucr.dr.ing. Leba Monica
Laborator: prep.ing. Tabacaru-Barbu Camelia prep.ing. Sochirca Bogdan
3 Executam click pe proprietatea DatabaseName din fereastra Properties. Acest lucru ne permite selectarea unei baze de date la care dorim sa ne conectam. Consideram ca avem o baza de date creata anterior pe care dorim sa o exploram (exemplu.mdb care contine un tabel Phone book" in care exista patru campuri: Nume, Prenume, Adresa, Nr telefon). Vom selecta baza de date exemplu mdb.
In timpul rularii un utilizator poate executa click pe un control de date pentru a se deplasa la urmatoarea, precedenta, prima sau ultima inregistrare dintr un set de inregistrari.
4 Executam click pe proprietatea RecordSource. Va aparea o lista
derulanta afisand toate tabelele disponibile in baza de date pe care am atasat-
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 ,dupa cum se poate observa si in figura urmatoare.
Pe un formular putem pune oricat de multe controale de date diferite. In felul acesta putem accesa diferite tabele sau chiar baze de date diferite, toate pe acelasi formular.
Conexiunea cu baza de date are loc de fiecare data cand aplicatia ruleaza. Aceasta conexiune nu este vizibila deoarece nu avem nici o modalitate de a vizualiza datele. Pentru a vizualiza datele cu ajutorul DAO trebuie sa conectam o serie de controale pentru afisarea datelor data bound) la acesta. Pentru a realiza acest lucru trebuie sa urmam urmatorii pasi:
1.Folosim 4 casete cu text pentru a explora tabelul phone book" si anume pentru Nume, Prenume, Adresa, Nr telefon.
2. Setam DataSource, din fereastra Properties, a tuturor casetelor cu text cu numele controlului DAO folosit anterior (Daca nu redenumim DAO
el se numeste implicit Data1).
Curs: sef.lucr.dr.ing. Leba Monica
Laborator: prep.ing. Tabacaru-Barbu Camelia prep.ing. Sochirca Bogdan
3 Pe rand
setam proprietatea DataField a casetelor cu text cu campurile existente in tabelul nostru, campuri pe care dorim sa le vizualizam.
Programul prin care putem vizualiza o baza de date este gata, si el ar trebui sa ne permita explorarea bazei de date "exemplu mdb" in care aveam un tabel intitulat Phone book , in care sunt stocate informatii privind Numele, Prenumele, Adresa precum si Nr de telefon a unor persoane, lucru efectuat fara a scrie nici macar o singura linie de cod, doar folosindu-ne de anumite controale precum si cu ajutorul proprietatilor acestora.
2.Interogari
Cand deschidem o conexiune la o baza de date vrem in general sa obtinem informatii de la aceasta. Dar in cele mai multe cazuri nu dorim toate informatiile din ea. Pentru aceasta se folosesc interogarile. O interogare este o cerere pentru o anumita parte din informatiile dintr o baza de date. Cand rulam o interogare, primim un set de inregistrari continand datele pe care le- am cerut. Datele pe care le obtinem pot fi extrase din mai multe tabele, grupate dupa criterii specifice si sortate. In acest scop SQL (Structured Query Language) a devenit modalitatea standard de interogare a bazelor de date.
Pentru a construi o aplicatie care testeaza interogarile vom folosi controlul DBGrid. Pentru aceasta vom realiza urmatoarele:
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 adauga componenta
Microsoft Data Bound Grid Control 5.0.
3. Controlul DBGrid va fi adaugat la bara de instrumente. Executand dublu click pe componenta
nou
introdusa ea va fi
automat adaugata in formularul nostru.
Curs: sef.lucr.dr.ing. Leba Monica
Laborator: prep.ing. Tabacaru-Barbu Camelia prep.ing. Sochirca Bogdan
4. Vom mai adauga o caseta de text, un buton de comanda, precum si un control DAO. Le vom aranja astfel incat sa arate ca in figura urmatoare:
5. Vom seta urmatoarele proprietati:
a) Casetei de text - Multiline = True
Text = Select
b) Controlului DAO - DatabaseName = numele bazei de date la care dorim sa ne conectam (daca folosim baza de date anterioara 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 comanda - Caption = RunQuery
In final trebuie sa adaugam urmatorul cod corespunzator apasarii butonului Run query
Data1.RecordSource = Text1 Text
Data1.Refresh
Cand vom rula aplicatia Data Grid va fi populat cu continutul complet al tabelului phone book .
In cazul in care nu ne intereseaza tot continutul 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. Daca vom dori o sortare in ordine alfabetica a numelor din tabel vom scrie urmatoarele comenzi SQL in caseta de text:
Select *
from [phone book]
order by nume
Ne va aparea baza de date sortata crescator dupa "nume"
In continuare vom prezenta cateva din cele mai uzuale
comenzi SQL
1.SELECT: principala propozitie SQL pentru recuperarea datelor. Forma generala este: Select field(s) from table(s)
In cazul in care dorim sa recuperam toate campurile dintr un tabel utilizam comanda *" .
De exemplu Select * from phone book] are ca efect extragerea tuturor inregistrarilor din tabela phone book. In cazul in care avem nume de campuri care contin caractere speciale sau chiar spatii numele campurilor trebuie puse in paranteze drepte.
Optiunea Order by" ne permite sortarea dupa anumite campuri.
2.WHERE: rafinarea campului
Dupa folosirea propozitiilor Select si From daca dorim sa limitam si mai mult datele vom folosi Where care are ca scop filtrarea datelor
Forma generala este: Where field operator criteria
Field operator se refera la inregistrarile asupra carora urmeaza sa fie aplicat criteriul de rafinare.
Curs: sef.lucr.dr.ing. Leba Monica
Laborator: prep.ing. Tabacaru-Barbu Camelia prep.ing. Sochirca Bogdan
Putem defini urmatorii operatori pentru a specifica un filtru:
Operator
Semnificatia
Exemplu
Rezultat
<
Mai mic
Where Nume <
C
Arata toate
numele care incep cu A sau B
<=
Mai mic sau egal cu
Where
IDNumber < 20
Arata toate nr ID mai mici sau egale cu 20
>
Mai mare decat
Where
IDNumber >20
Arata toate nr ID
peste 20
>=
Mai mare sau egal cu
Where
IDNumber >20
Arata toate nr ID
peste 19
Egal cu
Where
IDNumber =20
Arata numai nr
ID 20
<>
Nu este egal cu
Where
IDNumber <>20
Arata toate nr ID
altele decat 20
BETWEEN
Intr-un interval
Where nume
Between 'A' and
'D'
Arata toate
numele care incep cu A, B sau C
LIKE
Potriveste cu model
Where nume
Like 'Ion*'
Arata toate
numele care incep cu caracterele Ion"
IN
Potriveste articolele
continute intr-o lista
Where nume In
('Ionescu',
'Vasile')
Arata toate
numerele de Ionescu sau Vasile
In continuare vom prezenta cateva 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 '
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
3 Rapoarte
Un raport este, in forma sa cea mai simpla, doar o tiparire de informatii dintr-o baza de date. Aplicatia creata poate sa afiseze raportul pe ecran, dar cel mai adesea il putem trimite catre imprimanta. Rapoartele bazelor de date implica mai multe operatii decat o simpla imprimare a datelor din baza noastra. Cele mai multe rapoarte implica operatii aditionale cum ar fi:
. Interogarea datelor pentru afisarea sau imprimarea doar a datelor care ne intereseaza. Aceasta operatie se mai numeste si filtrare.
. Sortarea datelor astfel incat acestea sa apara in ordinea dorita de utilizator.
. Gruparea datelor pentru a fi afisate intr-o ordine cat mai fireasca. Sunt mai multe instrumente se ocupa de rapoarte in mediul de
programare Visual Basic, noi ne vom opri asupra lui Crystal Reports Pro considerat a fi cel mai usor de folosit. Pentru crearea unui raport trebuie urmati doi pasi, si anume crearea raportului iar apoi adaugarea controlului ActivX Crystal Reports in proiectul nostru.
De obicei daca la instalarea mediului de programareVisual Basic am instalat si optiunea Report Designer, atunci Crystal Reports se va gasi instalat, iar daca nu-l avem instalat il putem instala manual de pe CD nr 2 al pachetului Microsoft Visual Studio din directorul COMMON TOOLS VB CRYSREPT, apoi CRYSTL32 EXE.
Inainte de a folosi un raport in aplicatia nosstra trebuie mai intai creat raportul. Nu putem creea rapoarte folosind linii de cod, dar in schimb folosim Crystal Reports pentru a le creea. Dupa crerea raportului si salvarea acestuia vom putea sa-l folosim in aplicatie.
Pentru a lansa in executie Crysal Reports trebuie urmati pasii:
1 Din meniul Add-Ins alegem optiunea Report Designer.
2 Crystal Reporsts se va lansa automat.
3 Din meniul File al aplicatiei Crystal Reports alegem New. Va aparea 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 aparea 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 sabloane vom alege raportul Standard.
Curs: sef.lucr.dr.ing. Leba Monica
Laborator: prep.ing. Tabacaru-Barbu Camelia prep.ing. Sochirca Bogdan
5 In urmatoarea caseta de dialog ni se cere baza de date de unde vrem sa extragem datele pentru raportul nostru. Daca folosim aceeasi baza de date ca in exemplele precedente vom adauga
exemplu.mdb". Se poate crea un raport extragand informatii din mai multe baze
de date.
Urmatorul pas consta in selectarea campurilor care dorim sa apara in raportul nostru. Putem selecta doar un camp sau le putem selecta pe toate, cate dorim sa apara in raport.
Monica
acaru-Barbu Camelia
|
Laborator: prep.ing. Tab
prep.ing. Sochirca Bogdan
Daca avem de-a face cu baze de date relationale tot in aceasta fereastra vom putea vizualiza si relatiile existente intre acestea. De asemenea vom putea modifica relatiile existente prin adaugarea unora noi sau prin stergere.
7 In urmatorul pas va trebui sa sortam datele dupa anumite campuri (unul sau mai multe campuri adunate in grupuri) dupa criteri deja predefinite sau dupa criterii definite de utilizator.
Curs: sef.lucr.dr.ing. Leba Monica
Laborator: prep.ing. Tabacaru-Barbu Camelia prep.ing. Sochirca Bogdan
8 La urmatorul pas trebuie sa alegem campurile sau grupurile de campuri la care dorim sa le facem un subtotal, sa le numaram, etc.
9 Apoi vor trebui selectate campurile care dorim sa le afisam in raport operatie numita si filtrare. Putem alege campurile dar putem alege si o regula dupa care sa apara. De exemplu putem alega ca anumite date sa aiba o anumita valoare sa fie intre anumite limite,sa fie mai mici, mai mari, sau putem definii propriile noastre formule de aparitie a datelor.
cr.dr.ing. Leba Monica
ep.ing. Tabacaru-Barbu Camelia rep.ing. Sochirca Bogdan
Laborator: pr
p
10 Ultimul pas in crearea raportului este acela de a selecta stilul de aparitie a datelor, fonturile,titlul, si chiar putem selecta sa apara o imagine ca logo.
11 Dupa acest ultim pas putem sa vizualizam modul de afisare a datelor unde putem face modificari de structura, dimensiunile campurilor. Raportul generat cu Crystal Reports este un raport foarte flexibil putand fi ulterior modificat cu usurinta. Nu ne mai ramane de facut decat de salvat raportul, lucru foarte important deoarece cu fisierul astfel salvat (cu extensia *.rpt) il vom folosi in Visual Basic.
Basic.
In continuare vom lega raportul astfel creat de o aplicatie in Visual
1 Vom deschide un nou proiect in 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 sa adaugam controlul activx Crystal Report Control 4.6 la bara de instrumente.
3 Il inseram in formular si alaturi m ai introducem un buton de comanda la care ii vom schimba numele in Generare.
4 Controlului Crystal Reports in vom schimba proprietatea ReportFileName cu numele fisierului raport salvat anterior. Ne va aparea o caseta de dialog care ne va cere sa alegem intre afisarea raportului pe ecran, catre imprimanta, catre cu fisier 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 apasarea butonului Generare va trebui sa adaugam urmatoarea linie de cod:
CrystalReport1.PrintReport
Daca vom alege ca raportul sa apara pe ecran, el va fi afisat intr-o fereastra separata