 |
|
 |
 | Program simplu cu baza de date Access VB |  |
Trimis: 19/07/2007 17:24 |
|
|
| Ad_Infinitum |
| Administrator |

 |
 |
| Data inscrierii: 23/Iun/2007 |
| Mesaje: 212 |
|
|
|
 |
 |
 |
|
Unul dintre primele lucruri care le incearca lumea cu VB este conectarea la o baza de date. Lucrurile nu sint complicate insa daca se greseste ceva sau nu se intelege procesul poate dura destul de mult pt. aflarea raspunsului si corectarea greselii.
Intii de toate pentru absolut orice conectare la o baza de date aveti trebuință de ADO (ActiveX Data Objects). Aceasta este o librarie care vine cu VB (sau mai întocmai Visual Studio), insa este foarte probabil sa existe versiuni mai noi. Cele mai frecvente versiuni sint ADO 2.5, 2.6, 2.7. Pt. upgrade se poate face download de pe site-ul Microsoft.
Indiferent ce versiune aveti trebuie intii facuta o referinta la aceasta librarie (intr-un proiect nou, de regula Standard Exe). Din meniul Projects -> References ... bifati in lista Microsoft ActiveX Data Objects 2.6 Library, de exemplu.
Apoi adaugati un buton la care scrieti:
Private Sub Command1_Click()
Dim conexiune As ADODB.Connection
Set conexiune = New ADODB.Connection
conexiune.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=c:caletabela.mdb;" & _
"User Id=admin;" & _
"Password="
MsgBox IIf(conexiune.State = 1, "Conexiune deschisa", "Nu a deschis conexiunea")
conexiune.Close
Set conexiune = Nothing
End Sub
Ar trebui sa primiti mesajul "Conexiune deschisa" cind apasati pe buton la rularea programului. Nu uitati sa inclocuiti calea catre *.mdb-ul dvs., creat inainte cu MS Access.
Acest exemplu deschide doar conexiune la baza de date si apoi o inchide la loc. Pentru a face o selectie in baza de date avem necesitate de inca un obiect: ADODB.Recordset. Programul ar putea arata asa (a fost adaugata doat fracțiune despre Recordset):
Private Sub Command1_Click()
Dim conexiune As ADODB.Connection
Set conexiune = New ADODB.Connection
conexiune.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=c:caletabela.mdb;" & _
"User Id=admin;" & _
"Password="
MsgBox IIf(conexiune.State = 1, "Conexiune deschisa", "Nu a deschis conexiunea")
Dim rs As ADODB.Recordset
Set rs = New ADODB.Recordset
rs.Open "SELECT TOP 1 * FROM Tabela", conexiune, adOpenForwardOnly
If rs.EOF Then
MsgBox "Tabela e goala"
Else
MsgBox rs(0)
End If
rs.Close
Set rs = Nothing
conexiune.Close
Set conexiune = Nothing
End Sub
Acest cod deschide intii conexiunea apoi creaza un obiect Recordset si interogheaza tabela 'Tabela' luind debutantul record cu o comanda SQL. Daca tabela e goala (nu a fost returnat nimic) se afiseaza 'Tabela e goala' altfel o sa afiseze valoarea primului cimp. Se poate utiliza atit sub forma rs(0) sau rs(1) dar si ca rs("nume_cimp") sau chiar rs!nume_cimp.
In final inchide atit Recordsetul care tine recordurile luate din tabela cit si conexiunea la baza de date si apoi elibereaza memoria ocupata (Set obiect = Nothing).
In aceste exemple am utilizat obiecte locale de acces a bazei de date sau inregistrarilor. Se poate insa muta Dim conexiune As ADODB.Connection in afara procedurii si obiectul nu va fi doar local. Adica se poate deschide o conexiune la inceputul programului si pastra pina la sfirsit. In cazul de mai sus o sa fie distrus la terminarea procedurii.
Mai numeroase detalii cu lucrul cu baze de date o sa fie prezentate in articolele urmatoare cind vom intra in alte amanunte: cum se poate modifica o tabela, cum se poate parcurge o multime de recorduri returnate, cum se poate conecta la un MS SQL Server, cum se deschid tabele cu parola sau multe altele. |
|
|
|
|
|
|
Fa-ti si tu propriul forum GRATUIT, pe www.myforum.ro
|
|