Bonjour,

je voudrais manipuler ma base de données MySQL depuis une macro Excel.
Je fais bien la connexion et je peux même bien faire certains INSERT depuis le worksheet Excel à ma base de donnée MySQL. Mais quand il s’agit de faire interrogation et en afficher les résultats sur une feuille ou pire un userform Excel, tout se complique.
Afficher le résultat d’une interrogation simple ou le résultat ne s’affiche que sur une cellule, c’est bon. Mais quand il s’agit, et dans la pratique ce sera ça la finalité, d’afficher les résultats sur un range ("A2 : D5" par exemple), je ne trouve pas le code qui fonction.

Je cherche un code pour afficher les données d’une table avec plus d’une colonne et plus d’une ligne. En fouillant sur le net, j’ai vu des codes avec EOF que je ne maitrise pas encore.
Merci d’avance pour vos contributions et votre aide.

Voici mon code de connexion qui fonction à merveille pour uploader depuis la feuille Excel des données, et en extraire sur une seule cellule. On passe par un formulaire pour que pas à mettre les infos sur une feuille cachée.
Le Code de connexion :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
Option Explicit
Public oConnect As ADODB.Connection
Public myServeur1 As String
Public mySchema1 As String
Public myUser1 As String
Public myPswd1 As String
 
Private Sub ConnectionDB()
'
Dim S As String
Dim myServeur1 As String
Dim mySchema1 As String
Dim myUser1 As String
Dim myPswd1 As String
'
myServeur1 = frm_Connexion2.txt_Serveur.Value
mySchema1 = frm_Connexion2.txt_Schema.Value
myUser1 = frm_Connexion2.txt_User.Value
myPswd1 = frm_Connexion2.txt_Pswd.Value
 
Set oConnect = New ADODB.Connection
    S = "DRIVER={MySQL ODBC 5.1 Driver};" & _
        "SERVER=" & myServeur1 & ";" & _
        "DATABASE=" & mySchema1 & ";" & _
        "USER=" & myUser1 & ";" & _
        "PASSWORD=" & myPswd1 & ";" & _
        "Option=3"
    oConnect.Open S
End Sub
Le code utiliser pour insérer des données depuis ma feuille Excel vers ma base de donnée MySQL :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
Sub MySQLInsertData()
Dim Rs As ADODB.Recordset
Dim Derligne As Integer, i As Integer
Dim Requete As String
Dim SqlValue
 
    Set Rs = New ADODB.Recordset
    Call ConnectionDB
    With Sheets(1)
        Derligne = .Range("A65000").End(xlUp).Row
        Requete = "INSERT INTO employes_tbl(ID_EMP, NOM, PRENOM, ADRESSE, VILLE, PAYS, TEL, EMAIL) VALUES "
        SqlValue = ""
        For i = 2 To Derligne
        If SqlValue <> "" Then SqlValue = SqlValue & ","
        SqlValue = SqlValue & "(" & .Cells(i, 1) & ",'" & .Cells(i, 2) & "','" & .Cells(i, 3) & "','" & .Cells(i, 4) & "','" & _
                   .Cells(i, 5) & "','" & .Cells(i, 6) & "','" & .Cells(i, 7) & "','" & .Cells(i, 8) & "')"
        Next i
        oConnect.Execute Requete & SqlValue
    End With
    oConnect.Close
    Set Rs = Nothing
    MsgBox Application.UserName & vbCr & (i - 2) & " enregistrement(s) ajouté(s) avec succès", _
    vbInformation, "RastaBomboclat - Insertion des données"
End Sub