Haal data op uit MySQL met VBA

Lees eerst deze berichten:

Connector/ODBC installeren
Gegevens ophalen met MySQL en importeren in Excel

Met onderstaande code kun je automatisch data lezen uit je MySQL database. Voorop gesteld dat je bovenstaande berichten hebt gelezen en uitgevoerd.

Sub SelecteerDataVanMySQL()
    
    Dim SQLStr As String
    Dim Cn As ADODB.Connection
    Dim Server_Name As String
    Dim Database_Name As String
    Dim User_ID As String
    Dim Password As String
    Dim Table As String
    Dim rs As ADODB.Recordset
    Dim rngKolom As Integer
    Dim rngRij As Integer
    Dim myArray()
    Dim K As Integer
    Dim R As Integer
    
    'Set variable
    Set rs = New ADODB.Recordset
    
    'Clear the range
    Range("a5:bb60000").ClearContents
    
    'Connection properties
    Server_Name = "YOUR SERVER NAME"
    Database_Name = "YOUR DATABASE NAME"
    User_ID = "YOUR USER ID"
    Password = "YOUR PASSWORD"
    Table = "YOUR TABLE NAME"
    Field = "YOUR FIELD NAME"

    'Create a mysql query string
    SQLStr = "SELECT * FROM " & Table & " WHERE " & Field & "  = 2"
    
    'Connect to the database
    Set Cn = New ADODB.Connection
    Cn.Open "Driver={MySQL ODBC 5.3 Unicode Driver};Server=" & _ 
        Server_Name & ";Database=" & Database_Name & ";Uid=" & _
        User_ID & ";Pwd=" & Password & ";"
    
    'Create a recordset
    rs.Open SQLStr, Cn, adOpenStatic
    
    'Store rs in array variable
    myArray = rs.GetRows()
    rngKolom = UBound(myArray, 1)
    rngRij = UBound(myArray, 2)
    For K = 0 To rngKolom
        'Transfer recordset data to worksheet
        Range("A5").Offset(0, K).Value = rs.Fields(K).Name
        For R = 0 To rngRij
            Range("A5").Offset(R + 1, K).Value = myArray(K, R)
        Next
    Next
    'Close the connection
    rs.Close
    Set rs = Nothing
    Cn.Close
    Set Cn = Nothing
End Sub

Leave a Reply

Your email address will not be published. Required fields are marked *