Sql

O bază de date MySQL poate fi interogată chiar şi folosind cod VB.
După stabilirea conexiunii, se utilizează proprietarta QueryTable pentru a interoga tabelul dorit în vederea obţinerii datelor dorite.

Cum procedăm ?
– după instalarea conectorului ODBC pentru MySQL şi crearea conexiunii, se scrie următorul cod:

'---------------------------------------------------------------------------------------
' Modul     : modQuery
' Autor     : Alexandru Dionisie
' Data      : 21.12.2011
' WebSite   : www.tutorialeoffice.ro
' Sursa Cod : -
' Scop      : Interogarea unei baze de date MySQL
' Observatii: Se va schimba numele sursei (DSN), numele utilizatorului (root) si parola.
'---------------------------------------------------------------------------------------
Private Sub cmdGo_Click()
On Error GoTo err
Dim Conexiune As String
Dim query As String
Dim QT As QueryTable
    'stabilim conexiunea cu BD
    Conexiune = "ODBC;PORT=3306;DSN=MySQL to Office;UID=root;PASSWORD="
    'cream interogarea de interes
    query = "" & txtSQL.Text & ""
    'stergem tot continutul foii de calcul
    Worksheets("Info").Activate
    Range("" & refDrop.Text & "").CurrentRegion.ClearContents
    'optional putem sterge orice conexiune existenta
    For Each QT In ActiveSheet.QueryTables
        QT.Delete
    Next QT
    If ActiveWorkbook.Connections.Count > 0 Then
        i = 1
        Do While ActiveWorkbook.Connections.Count > 0
            ActiveWorkbook.Connections.Item(i).Delete
            i = i - 1
        Loop
    End If
    'preluam noile informatii
    With ActiveSheet.QueryTables.Add(Connection:=Conexiune, _
                                     Destination:=Range("" & refDrop.Text & ""), Sql:=query)
        .Refresh BackgroundQuery:=False
        .RefreshPeriod = 0
        .RefreshOnFileOpen = True
    End With
Exit Sub
err:
    MsgBox err.Description, vbOKOnly + vbInformation, "Eroare"
End Sub

Tot acest cod este localizat „sub” butonul de comandă Go.
De ce am folosit un UserForm ?
– fiindcă s-a vrut ca utilizatorul să nu intervină în cod pentru a modifica interogarea şi celula de referinţă.
Drept urmare s-a inserat un text box pentru scrierea interogării şi un control de tip RefEdit pentru stabilirea celulei active.
 

Download | SQL-VBA.xlsm
Download | SQL-VBA.xls

Back To Top
Search