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 :
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
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
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
Partager