Sunteți pe pagina 1din 19

6.

REALIZAREA UNEI BAZE DE DATE IN VISUAL BASIC Metoda cea mai rapid de afiare a unei informaii 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 nregistrrile pe care le conine. 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 nregistrri Crearea unei aplicaii utiliznd Data Control este foarte uoar. Dac dorim doar o explorare a bazei de date nu este nevoie sa scriem nici mcar o singur linie de cod. Trebuie doar s inem cont de dou lucruri, i anume, setarea proprietilor DatabaseName i RecordSource ale Data Control. Pentru a face acest lucru trebuie s executm urmtorii pai: 1. ncepem un nou proiect Visual Basic. 2. n bare de instrumente executm dublu click pe pictograma Data Control.

Pe formularul nostru va aprea un DAO Data Control asa cum se poate observa din figura urmtoare.

Curs: sef.lucr.dr.ing. Leba Monica Laborator: prep.ing. Tabacaru-Barbu Camelia prep.ing. Sochirca Bogdan

3. Executm click pe proprietatea DatabaseName din fereastra Properties. Acest lucru ne permite selectarea unei baze de date la care dorim s ne conectm. Considerm c avem o baz de date creat anterior pe care dorim s o explorm (exemplu.mdb care conine un tabel Phone book in care exist patru cmpuri: Nume, Prenume, Adres, Nr telefon). Vom selecta baza de date exemplu.mdb.

n timpul rulrii un utilizator poate executa click pe un control de date pentru a se deplasa la urmtoarea, precedenta, prima sau ultima nregistrare dintr-un set de nregistrri. 4. Executm click pe proprietatea RecordSource. Va aprea o list derulant afind toate tabelele disponibile n baza de date pe care am ataatCurs: 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 urmtoare.

Pe un formular putem pune orict de multe controale de date diferite. n felul acesta putem accesa diferite tabele sau chiar baze de date diferite, toate pe acelai formular. Conexiunea cu baza de date are loc de fiecare dat cnd aplicaia 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 conectm o serie de controale pentru afiarea datelor (data bound) la acesta. Pentru a realiza acest lucru trebuie s urmm urmtorii pai: 1.Folosim 4 casete cu text pentru a explora tabelul phone book i anume pentru Nume, Prenume, Adres, Nr telefon. 2. Setm DataSource, din fereastra Properties, a tuturor casetelor cu text cu numele controlului DAO folosit anterior (Dac nu redenumim DAO el se numete implicit Data1).

Curs: sef.lucr.dr.ing. Leba Monica Laborator: prep.ing. Tabacaru-Barbu Camelia prep.ing. Sochirca Bogdan

3. Pe rnd setm proprietatea DataField a casetelor cu text cu cmpurile existente in tabelul nostru, cmpuri pe care dorim s le vizualizm.

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 informaii privind Numele, Prenumele, Adresa precum i Nr de telefon a unor persoane, lucru efectuat fr a scrie nici mcar o singur linie de cod, doar folosindu-ne de anumite controale precum i cu ajutorul proprietilor acestora. 6.2.Interogri Cnd deschidem o conexiune la o baz de date vrem n general s obinem informaii de la aceasta. Dar n cele mai multe cazuri nu dorim toate informaiile din ea. Pentru aceasta se folosesc interogrile. O interogare este o cerere pentru o anumit parte din informaiile dintr-o baz de date. Cnd rulm o interogare, primim un set de nregistrri coninnd datele pe care leam cerut. Datele pe care le obinem 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 aplicaie care testeaz interogrile vom folosi controlul DBGrid. Pentru aceasta vom realiza urmtoarele:
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 aduga componenta Microsoft Data Bound Grid Control 5.0.

3. Controlul DBGrid va fi adugat la bara de instrumente. Executnd dublu click pe componenta nou introdus ea va fi automat adugat in formularul nostru.

Curs: sef.lucr.dr.ing. Leba Monica Laborator: prep.ing. Tabacaru-Barbu Camelia prep.ing. Sochirca Bogdan

4. Vom mai aduga o caset de text, un buton de comand, precum i un control DAO. Le vom aranja astfel nct s arate ca in figura urmtoare:

5. Vom seta urmtoarele proprieti: a) Casetei de text - Multiline = True - Text = Select b) Controlului DAO - DatabaseName = numele bazei de date la care dorim s ne conectm (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 adugm urmtorul cod corespunztor apsrii butonului Run query Data1.RecordSource = Text1.Text Data1.Refresh Cnd vom rula aplicaia Data Grid va fi populat cu coninutul complet al tabelului phone book. n cazul n care nu ne intereseaz tot coninutul 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 urmtoarele comenzi SQL n caseta de text: Select * from [phone book] order by nume Ne va aprea baza de date sortat cresctor dup nume

n continuare vom prezenta cteva din cele mai uzuale comenzi SQL 1.SELECT: principala propoziie SQL pentru recuperarea datelor. Forma general este: Select field(s) from table(s) n cazul n care dorim s recuperm toate cmpurile dintr-un tabel utilizm comanda * . De exemplu Select * from [phone book] are ca efect extragerea tuturor nregistrrilor din tabela phone book. n cazul n care avem nume de cmpuri care conin caractere speciale sau chiar spaii numele cmpurilor trebuie puse n paranteze drepte. Opiunea Order by ne permite sortarea dup anumite cmpuri. 2.WHERE: rafinarea cmpului Dup folosirea propoziiilor Select i From dac dorim s limitm 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 nregistrrile asupra crora 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 urmtorii operatori pentru a specifica un filtru: Operator Semnificaia 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 dect 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 dect 20 BETWEEN ntr-un interval Where nume Arat toate Between A and numele care D ncep cu A, B sau C LIKE Potrivete cu model Where nume Arat toate Like Ion* numele care ncep cu caracterele Ion IN Potrivete articolele Where nume In Arat toate coninute ntr-o list (Ionescu, numerele de Vasile) Ionescu sau Vasile n continuare vom prezenta cteva 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 tiprire de informaii dintr-o baz de date. Aplicaia creat poate s afieze raportul pe ecran, dar cel mai adesea l putem trimite ctre imprimant. Rapoartele bazelor de date implic mai multe operaii dect o simpl imprimare a datelor din baza noastr. Cele mai multe rapoarte implic operaii adiionale cum ar fi: Interogarea datelor pentru afiarea sau imprimarea doar a datelor care ne intereseaz. Aceast operaie se mai numete i filtrare. Sortarea datelor astfel nct acestea s apar n ordinea dorit de utilizator. Gruparea datelor pentru a fi afiate ntr-o ordine ct 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 uor de folosit. Pentru crearea unui raport trebuie urmai doi pai, 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 opiunea 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 aplicaia nosstr trebuie mai nti 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 aplicaie. Pentru a lansa n execuie Crysal Reports trebuie urmai paii: 1. Din meniul Add-Ins alegem opiunea Report Designer. 2. Crystal Reporsts se va lansa automat. 3. Din meniul File al aplicaiei Crystal Reports alegem New. Va aprea 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 aprea 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 youve 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 urmtoarea caseta de dialog ni se cere baza de date de unde vrem s extragem datele pentru raportul nostru. Dac folosim aceeai baz de date ca n exemplele precedente vom aduga exemplu.mdb. Se poate crea un raport extrgnd informaii din mai multe baze de date.

6. Urmtorul pas const n selectarea cmpurilor care dorim sa apar n raportul nostru. Putem selecta doar un cmp sau le putem selecta pe toate, cte 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 relaionale tot n aceast fereastr vom putea vizualiza i relaiile existente ntre acestea. De asemenea vom putea modifica relaiile existente prin adugarea unora noi sau prin tergere.

7. n urmtorul pas va trebui s sortm datele dup anumite cmpuri (unul sau mai multe cmpuri 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 urmtorul pas trebuie s alegem cmpurile sau grupurile de cmpuri la care dorim s le facem un subtotal, s le numrm, etc.

9. Apoi vor trebui selectate cmpurile care dorim s le afim n raport operaie numit si filtrare. Putem alege cmpurile 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 apariie 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 apariie a datelor, fonturile,titlul, i chiar putem selecta s apar o imagine ca logo.

11. Dup acest ultim pas putem s vizualizm modul de afiare a datelor unde putem face modificri de structur, dimensiunile cmpurilor. Raportul generat cu Crystal Reports este un raport foarte flexibil putnd fi ulterior modificat cu uurin. Nu ne mai rmne de fcut dect de salvat raportul, lucru foarte important deoarece cu fiierul astfel salvat (cu extensia *.rpt) l vom folosi in Visual Basic.

n continuare vom lega raportul astfel creat de o aplicaie 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 adugm controlul activx Crystal Report Control 4.6 la bara de instrumente.

3. l inserm n formular si alturi 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 fiierului raport salvat anterior. Ne va aprea o caset de dialog care ne va cere s alegem ntre afiarea raportului pe ecran, ctre imprimant, ctre cu fiier 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 apsarea butonului Generare va trebui s adugm urmtoarea linie de cod: CrystalReport1.PrintReport Dac vom alege ca raportul s apar pe ecran, el va fi afiat 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