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é :
Si quelqu'un pouvait m'aider et m'expliquer clairement à quoi corresponde les différents paramètres de la connectionString.
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
Merci.
Partager