Creeaza.com - informatii profesionale despre


Simplitatea lucrurilor complicate - Referate profesionale unice
Acasa » scoala » informatica » access
Proiectarea Aplicatiilor de Baze de Date MICROSOFT ACCESS utilizand Mediul de Dezvoltare MICROSOFT VISUAL BASIC 6.0

Proiectarea Aplicatiilor de Baze de Date MICROSOFT ACCESS utilizand Mediul de Dezvoltare MICROSOFT VISUAL BASIC 6.0


Universitatea "Lucian Blaga" din Sibiu

Facultatea de Inginerie

Catedra de Calculatoare si Automatizari

Cercul Stiintific Studentesc

Proiectarea Aplicatiilor de Baze de Date

MICROSOFT ACCESS

utilizand Mediul de Dezvoltare



MICROSOFT VISUAL BASIC 6.0

1. Crearea bazei de date utilizand MsAccess

Pentru crearea unei noi baze de date utilizand MsAccess, sunt necesari urmatorii pasi:

Dupa startarea programului MsAccess se alege din meniul File, submeniul New Database (fig. 1)

Fig. 1

La aparitia ferestrei New se selecteaza icoana Blank Database (fig. 2) si apoi se apasa butonul OK pentru a crea o noua baza de date care nu contine nici o tabela.

Fig. 2

Dupa actionarea butonului OK din pasul anterior, va aparea o fereastra care ne va permite salvarea noii baze de date (fig. 3). Dupa stabilirea numelui acestei BD se va apasa butonul Create.

Fig. 3

In acest moment am creat o noua baza de date vida (nu contine tabele, interogari, s.a.m.d.). Pentru a putea adauga diverse elemente in aceasta BD, MsAccess ne pune la dispozitie fereastra Database (fig. 4).

Fig. 4

Fereastra Database contine categoriile:

Tables

Queries

Forms

Reports

Macros

Modules

Fiecare din aceste categorii pot fi selectate si ne permit adaugarea rapida si cu usurinta a tabelelor, interogarilor, formelor, rapoartelor, macrourilor si a modulelor ce vor compune baza de date.

Din cele 6 categorii de elemente ne intereseaza doar primele doua si anume tabelele si interogarile (Tables si Queries). Restul de componente le putem crea prin intermediul mediului Visual Basic.

Pentru a putea adauga un tabel in BD, trebuie sa selectam butonul New din fereastra Database. In urma actionarii acestui buton va aparea fereastra New Table (fig. 5).

Fig. 5

Fereastra New Table ne ofera cinci modalitati de creare a unei noi tabele:

Datasheet View

Prin apelarea acestei optiuni MsAccess ne pune la dispozitie o tabela cu 20 de campuri (coloane) avand denumiri predefinite: Field1 . Field20. In aceasta tabela putem introduce 30 de articole. Ulterior formatul acestei tabele poate fi modificat in functie de tipul aplicatiei.

Design View

Este cea mai utilizata optiune. La apelarea acestei variante MsAccess ne pune la dispozitie un editor simplu, robust si eficient, de creare a tabelelor necesare aplicatiilor de BD. Este optiunea pe care o vom utiliza atunci cand dorim sa ne creem o noua tabela.

Table Wizard

Acest "vrajitor" ne ajuta sa proiectam tabele predefinite de catre mediul MsAccess.

Import Table

Este utilizata pentru a importa tabele existente in alte BD. Ne scuteste de timp si efort atunci cand dorim sa utilizam tabele identice in BD diferite.

Link Table

Identica cu optiunea anterioara cu o mica diferenta: tabela nu este salvata din BD externa in BD curenta, ci doar se creeaza o legatura catre ea.

In aplicatiile de BD utilizand MsAccess si Visual Basic vom utiliza pentru crearea tabelelor optiunea Design View. La selectarea acestei optiuni se activeaza fereastra Table (Fig. 6).

Fig. 6

Pentru definirea de noi campuri (Fields) in tabela, se completeaza prima celula libera in coloana Field Name. Denumirea noului camp poate avea maxim 64 de caractere inclusiv spatii. Tipul de data alocat campului respectiv se defineste prin selectarea variantei respective din coloana Data Type:

Text (maxim 255 caractere)

Memo (maxim 65535 caractere)

Number (1, 2, 4 sau 8 octeti)

Date/Time (data/timp)

Currency (moneda)

Autonumber (numerotare automata)

Yes/No (Da/Nu)

OLE Object (obiecte OLE: fisiere MsWord, MsExcel, fisiere de imagini, etc.)


Hiperlink (legaturi de Internet)

Lookup Wizard (un "vrajitor" care permite copierea tipurilor de date din alte tabele; de obicei se foloseste pentru cheile de legatura dintre tabele)

Pentru fiecare tip de data definit anterior, se afiseaza proprietatile acestuia in partea de jos a ferestrei Table in sectiunea Field Properties. Fiecare proprietate poate fi setata de catre utilizator, rezultand un tip de data derivata.

Field Size: permite setarea lungimii campului (Ex.: pentru Text numarul maxim de caractere)

Format: permite formatarea pentru vizualizarea sau afisarea continutului campului respectiv (Ex: 4237.80 poate fi afisat ca $4237,80)

Input Mask: impune introducerea unui anumit format pentru campul respectiv (Ex: se poate impune doar introducerea de caractere mari)

Caption: seteaza numele sub care apare campul respectiv pe o forma

Default Value: reprezinta valoarea care se introduce automat in campul respectiv la adaugarea unei noi inregistrari

Validation Rule: este o expresie care limiteaza valorile care pot fi introduse in campul respectiv

Validation Text: este mesajul de eroare care se afiseaza in cazul introducerii de valori ce nu se conformeaza cerintelor proprietatii anterioare

Required: se specifica daca trebuie introduse in mod obligatoriu valori in acest camp

Allow Zero Length: este utilizat pentru a specifica faptul ca acest camp permite sau nu siruri de dimensiune zero

Indexed: specifica faptul ca acest camp este un camp de indecsi.

2. Visual Basic si Bazele de Date MsAccess

Mediul de dezvoltare Visual Basic dispune de o paleta larga de componente ce permit operarea automata asupra datelor dintr-o BD. Totusi, pentru a putea crea aplicatii de BD robuste si sigure se impune utilizarea functiilor de acces la BD. Aceste functii dau siguranta in implementarea software si permit deschiderea, operarea asupra datelor din BD precum si inchiderea tabelelor si interogarilor utilizate in manevrarea acestor date. Pe langa aceste functii este necesar sa se cunoasca limbajul SQL (Structure Query Language). Limbajul SQL permite realizarea interogarilor in BD, obtinerea datelor in functie de anumite conditii, prezentarea lor intr-o anumita ordine, sau obtinerea de date aflate in tabele diferite.

2.1. Deschiderea unei BD utilizand Visual Basic. Metoda OpenDatabase

Metoda OpenDataBase deschide o BD specificata si intoarce o referinta de tip obiect Database care o va reprezenta in continuare.

Sintaxa

Set database = OpenDatabase (dbname, options, read-only, connect)

database - Un obiect de tip Database care reprezinta BD cu care vom lucra in continuare

dbname - Un sir care reprezinta numele unei BD existenta

options - Optional. Poate lua valorile True sau False. Specifica faptul ca BD este deschisa in modul exclusiv sau partajat

read-only - Optional. Poate lua valorile True sau False. Specifica faptul ca BD este deschisa doar pentru citire sau pentru citire-scriere

connect - Optional. Un sir care contine diferite informatii de conectare inclusiv parole, utilizatori, etc.

Exemplul urmator prezinta o procedura care permite deschiderea unei BD care este selectata prin intermediul unei ferestre de tipul OpenFileDialog. Pentru a verifica acest cod, creati un proiect de tipul Standard EXE in Visual Basic. Adaugati in fereastra General (aflata in partea stanga a ecranului) un control de tipul Microsoft Common Dialog Control 6.0 astfel: click dreapta pe fereastra General; in meniul care apare selectati Components; in tab-ul Controls selectati Microsoft Common Dialog Control 6.0, iar apoi apasati butoanele Apply si Ok. Pe forma creata adaugati o componenta de tipul Microsoft Common Dialog Control 6.0. Apoi adaugati un buton. Dati doua click-uri pe acest buton si in codul astfel creat introduceti codul urmator:

Private Sub Command1_Click()

Dim fName As String

CommonDialog1.Filter = 'MSAccess DataBase Files (*.mdb)|*.mdb'

CommonDialog1.FilterIndex = 1

CommonDialog1.ShowOpen

fName = CommonDialog1.FileName

Set db = OpenDatabase(fName)

End Sub

2.2. Deschiderea unei tabele existente in BD. Metoda OpenRecordset

Metoda OpenRecordset deschide o tabela sau o interogare si returneaza articolele (datele existente) in functie de tipul cererii specificata in instructiune. Returneaza un obiect de tip Recordset care va permite manuirea in continuare a datelor din tabele.

Sintaxa

Set recordset = object.OpenRecordset (source, type, options, lockedits)

recordset - Variabila de tip obiect Recordset care va permite manuirea datelor din tabele, interogari, etc.

object - Reprezinta o variabila din care se va crea obiectul de tip Recordset

source - Este un sir care specifica numele tabelei sau interogarii cu care se va lucra in continuare, sau poate reprezenta o declaratie de tip SQL care returneaza articole

type - Optional. Reprezinta tipul noului obiect creat. Uzual dbOpenDynaset

options - Optional. Reprezinta o serie de caracteristici specificate in Help. Aceasta optiune este rareori utilizata

lockedits - Optional. Se refera la modul de acces la datele furnizate

Exemplu:

Dim Rec As Recordset

Set Rec = db.OpenRecordset("Student", dbOpenDynaset)

2.3. Crearea unei interogari SQL.

Deschiderea unei tabele utilizand interogari SQL

Metoda CreateQueryDef - permite crearea unei interogari

Sintaxa

Set querydef = object.CreateQueryDef (name, sqltext)

querydef - Obiectul de tip interogare care va fi creat

object - Reprezinta obiectul de tip Database obtinut anterior cu OpenDatabase

name - Optional. Un sir care va contine numele noii interogari

sqltext - Optional. Un sir care ne defineste o declaratie SQL. Pe baza acestei declaratii se vor obtine datele din BD

Exemplu:

Dim StudentQuery As QueryDef

Set StudentQuery = db.CreateQueryDef('', 'SELECT * FROM Student

WHERE CodGrupa=231 And CodSemigrupa=2')

In exemplul anterior se vor SELECTA in urma interogarii articolele care contin in campul CodGrupa valoarea 231 iar in CodSemigrupa valoarea 2 (adica datele referitoare la toti studentii din semigrupa 231/2).

Pentru a putea opera asupra datelor obtinute printr-o interogare SQL, este necesar ca datele selectate anterior sa fie plasate intr-o tabela. Asadar, trebuie creat un obiect de tip Recordset. Doar acest obiect va permite utilizarea metodelor AddNew, Edit, Delete, Update, metode utilizate atunci cand operam asupra datelor. Crearea acestui obiect de tip Recordset se face tot cu functia OpenRecordset, doar ca parametrul object va fi obiectul creat anterior cu metoda CreateQueryDef.

Exemplu:

Dim StudentQuery As QueryDef

Dim StudentRec As Recordset

Set StudentQuery = db.CreateQueryDef('', 'SELECT * FROM Student

WHERE CodGrupa=231 And CodSemigrupa=2')

Set StudentRec = StudentQuery.OpenRecordset(dbOpenDynaset)

2.4. Aflarea numarului de articole existente intr-o tabela

Dupa deschiderea unei tabele, este necesar (in unele cazuri) sa cunoastem numarul de elemente existente. Proprietatea RecordCount a obiectului de tip Recordset ne poate furniza, imediat dupa crearea tabelei, doua valori:

0 daca tabela nu contine nici o inregistrare

1 daca tabela contine cel putin o inregistrare (pointer-ul tabelei este pozitionat pe primul articol existent)

Pentru a actualiza valoarea returnata de RecordCount este necesar sa pozitionam pointer-ul tabelei la sfarsitul acesteia, iar apoi sa il readucem pe primul articol. In acest moment RecordCount va contine numarul real de articole din tabela, iar pointer-ul tabelei este pozitionat pe prima inregistrare.

Exemplu:

Dim StudentQuery As QueryDef

Dim StudentRec As Recordset

Set StudentQuery = db.CreateQueryDef('', 'SELECT * FROM Student

WHERE CodGrupa=231 And CodSemigrupa=2')

Set StudentRec = StudentQuery.OpenRecordset(dbOpenDynaset)

With StudentRec

If .RecordCount<>0 Then

.MoveLast

.MoveFirst

Else

MsgBox "Tabela nu contine nici un articol!"

End If

End With

2.5. Adaugarea unui articol intr-o tabela

Pentru adaugarea unui articol intr-o tabela vom utiliza metodele AddNew si Update ale clasei Recordset (vom opera asupra unui obiect de tip Recordset).

Exemplu:

Dim StudentQuery As QueryDef

Dim StudentRec As Recordset

Set StudentQuery = db.CreateQueryDef('', 'SELECT * FROM Student

WHERE CodGrupa=231 And CodSemigrupa=2')

Set StudentRec = StudentQuery.OpenRecordset(dbOpenDynaset)

With StudentRec

If .RecordCount<>0 Then

.MoveLast

.MoveFirst

Else

MsgBox "Tabela nu contine nici un articol!"

End If

.AddNew

!ID_Student=001

!Nume_Student="Popescu"

!Prenume_Student="Alexandru"

!CodGrupa=231

!CodSemigrupa=2

.Update

End With

2.6. Modificarea unui articol dintr-o tabela

Pentru modificarea unui articol utilizam metoda de pozitionare a pointer-ului de tabela AbsolutePosition si apoi metodele Edit si Update.

Exemplu:

Dim StudentQuery As QueryDef

Dim StudentRec As Recordset

Set StudentQuery = db.CreateQueryDef('', 'SELECT * FROM Student

WHERE CodGrupa=231 And CodSemigrupa=2')

Set StudentRec = StudentQuery.OpenRecordset(dbOpenDynaset)

With StudentRec

If .RecordCount<>0 Then

.MoveLast

.MoveFirst

.AbsolutePosition=5

.Edit

!Prenume_Student="Alexandru Ioan"

.Update

Else

MsgBox "Tabela nu contine nici un articol!"

End If

End With

2.7. Modificarea tuturor articolelor dintr-o tabela

Pentru modificarea tuturor articolelor implementam o bucla si utilizam metodele Edit si Update.

Exemplu:

Dim StudentQuery As QueryDef

Dim StudentRec As Recordset

Set StudentQuery = db.CreateQueryDef('', 'SELECT * FROM Student

WHERE CodGrupa=231 And CodSemigrupa=2')

Set StudentRec = StudentQuery.OpenRecordset(dbOpenDynaset)

With StudentRec

If .RecordCount<>0 Then

.MoveLast

.MoveFirst

Do While Not .EOF

.Edit

!CodGrupa=231

.Update

.MoveNext

Loop

'----- ----- ----------------SAU-------- ----- ------

For I=0 to .RecordCount-1

.Edit

!CodGrupa=231

.Update

.MoveNext

Next I

Else

MsgBox "Tabela nu contine nici un articol!", vbOkOnly

End If

End With

2.8. Stergerea unui articol dintr-o tabela

Pentru stergerea unui articol utilizam metoda de pozitionare a pointer-ului de tabela AbsolutePosition si apoi metoda Delete.

Exemplu:

Dim StudentQuery As QueryDef

Dim StudentRec As Recordset

Set StudentQuery = db.CreateQueryDef('', 'SELECT * FROM Student

WHERE CodGrupa=231 And CodSemigrupa=2')

Set StudentRec = StudentQuery.OpenRecordset(dbOpenDynaset)

With StudentRec

If .RecordCount<>0 Then

.MoveLast

.MoveFirst

.AbsolutePosition=5

.Delete

Else

MsgBox "Tabela nu contine nici un articol!"

End If

End With

2.9. Stergerea tuturor articolelor dintr-o tabela

Pentru stergerea tuturor articolelor implementam o bucla si utilizam metoda Delete.

Exemplu:

Dim StudentQuery As QueryDef

Dim StudentRec As Recordset

Set StudentQuery = db.CreateQueryDef('', 'SELECT * FROM Student

WHERE CodGrupa=231 And CodSemigrupa=2')

Set StudentRec = StudentQuery.OpenRecordset(dbOpenDynaset)

With StudentRec

If .RecordCount<>0 Then

.MoveLast

.MoveFirst

Do While Not .EOF

.Delete

Loop

Else

MsgBox "Tabela nu contine nici un articol!", vbOkOnly

End If

End With

3. Informatii pe Internet

Pentru informatii suplimentare consultati documentatia oferita de cele doua medii: Microsoft Access si Microsoft Visual Basic. De asemenea, puteti obtine informatii extrem de utile de pe site-uri care gazduiesc aceste informatii. Spre exemplu, utilizati motorul de cautare www.google.com si introduceti ca si cuvinte cheie "visual basic sources", "visual basic databases", "visual basic access", etc.





Politica de confidentialitate


creeaza logo.com Copyright © 2024 - Toate drepturile rezervate.
Toate documentele au caracter informativ cu scop educational.