Bonjour,

Je souhaiterais écrire une macro en VBA qui me permettrais de lire les informations contenu dans une base de données MySql.

Cette base de données est sur une autre machine avec IP:***.***.***.*** ,port:****, login:*******, password:*******

J'ai cherché pendant un moment sur ce forum et je n'ai réussi à faire fonctionner aucun code. La connectionString ne doit pas être correcte.

Voici le code que j'ai trouvé :
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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
Function sql() As Integer
 
Dim LigneTraitee As Long
Dim LigneDebTFElec As Long
Dim LigneDebTFGaz As Long
Dim lundi As String
 
 
Dim NomRepertoire As String
 
Dim Datedeb As String
Dim Datefin As String
 
'Définition du nombre de requêtes
Dim StrSQL(4) As String
 
'Définition des variables de connexion
Dim Conn_MySQL_2 As ADODB.Connection
Dim Conn_MySQL_3 As ADODB.Connection
 
'Définition des variables d'enregistrement
Dim Rs_MySQL_TF As ADODB.Recordset
Dim Rs_MySQL_TFGaz As ADODB.Recordset
Dim Rs_MySQL_TF_Part As ADODB.Recordset
Dim Rs_MySQL_TFGaz_Part As ADODB.Recordset
 
'Définition des variables de commande de la bse
Dim Cmd_MySQL_2 As ADODB.Command
Dim Cmd_MySQL_3 As ADODB.Command
 
'définition du début des lignes
LigneDebTFElec = 4
LigneDebTFGaz = 16
 
'on initialise la valeur retour de test du déroulement de la fonction xxxx
Donnees_COTF = 0
lundi = Now()
'Mise en forme de la date à récuperer dans la base xxxx
Datedeb = Mid(lundi, 7, 4) & "-" & Mid(lundi, 4, 2) & "-" & Mid(lundi, 1, 2)
Datefin = Mid(lundi, 7, 4) & "-" & Mid(lundi, 4, 2) & "-" & Mid(lundi, 1, 2) + 4
 
 
 
'Initialisation des variables de connexion
Set Conn_MySQL_2 = New ADODB.Connection
Set Conn_MySQL_3 = New ADODB.Connection
 
   'Initialisation des variables d'enregistrement
   Set Rs_MySQL_TF = New ADODB.Recordset
   Set Rs_MySQL_TFGaz = New ADODB.Recordset
   Set Rs_MySQL_TF_Part = New ADODB.Recordset
   Set Rs_MySQL_TFGaz_Part = New ADODB.Recordset
 
   'Initialisation des variables de commande
   Set Cmd_MySQL_2 = New ADODB.Command
   Set Cmd_MySQL_3 = New ADODB.Command
 
   'Activation du fichier TdB
   'Workbooks(Feuil1).Activate
 
   'Initialisation des variables d'indicateurs de bons déroulement des requêtes sur base COTF
   indicateur_fin_traitement_COTF_ELEC = 0
   indicateur_fin_traitement_COTF_GAZ = 0
 
'On Error GoTo ErreuraccesbaseCOTF_ELEC
   'Paramètre connexion nouvelle base
   Conn_MySQL_2.ConnectionString = "DRIVER={MySQL ODBC 3.51 Driver} ;" _
                                                    & "SERVER= ***.***.***.*** ;" _
                                                    & "PORT=**** ;" _
                                                    & "DATABASE= **** ; " _
                                                    & "UID= **** ; " _
                                                   & "PWD= ****  ; "
 
   Conn_MySQL_2.Open
 
   Cmd_MySQL_2.ActiveConnection = Conn_MySQL_2
 
 
   StrSQL(1) = "SELECT * " & _
            "FROM ind_adm_fct " & _
            "WHERE dateInd >= '" & Datedeb & "' and dateInd <= '" & Datefin & "'" & _
            "AND indicProPart = '0';"
 
   StrSQL(2) = "SELECT * " & _
            "FROM ind_adm_fct " & _
            "WHERE dateInd >= '" & Datedeb & "' and dateInd <= '" & Datefin & "'" & _
            "AND indicProPart = '1';"
 
   'Exécution des 2 requêtes et mise en mémoire des résultats dans 2 enregistrements
   Cmd_MySQL_2.CommandText = StrSQL(1)
   Cmd_MySQL_2.CommandType = adCmdText
   Cmd_MySQL_2.CommandTimeout = 15
   Set Rs_MySQL_TF = Cmd_MySQL_2.Execute()
 
   Cmd_MySQL_2.CommandText = StrSQL(2)
   Cmd_MySQL_2.CommandType = adCmdText
   Cmd_MySQL_2.CommandTimeout = 15
   Set Rs_MySQL_TF_Part = Cmd_MySQL_2.Execute()
 
End Function
Si quelqu'un pouvait m'aider et m'expliquer clairement à quoi corresponde les différents paramètres de la connectionString.

Merci.