XL 2016 Connexion entre VBA-Excel et Mysql

Benam

XLDnaute Nouveau
Bonjour,
je suis débutant en informatique (programmation/base de données...)
Je souhaite établir une connexion entre mon fichier excel et la base donnée faite sur le MySQL workbench.

voila mon code :

'----------------------------------------------------------------------------------
Sub ADOExcelSQLServer()

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 SQLStr As String
Dim rs As ADODB.Recordset
Set rs = New ADODB.Recordset

Server_Name = "127.0.0.1"
Database_Name = "base"
User_ID = "root"
Password = "m02pas"
SQLStr = "SELECT* FROM table01.base"

Set Cn = New ADODB.Connection
Cn.Open "Driver={SQL Server};Server=" & Server_Name & ";Database=" & Database_Name & _
";Uid=" & User_ID & ";Pwd=" & Password & ";"

rs.Open SQLStr, Cn, adOpenStatic

With Worksheets("Feuil1").Range("a1:z500")
.ClearContents
.CopyFromRecordset rs
End With
'
rs.Close
Set rs = Nothing
Cn.Close
Set Cn = Nothing
End Sub

'----------------------------------------------------------------------------------

quand j'excecute le programme... ca beug
Screenshot_1.jpg

si j'ai bien comprit, apparement c'est un probleme d'ODBC...

J'ai verifié dans ma librairie de reference VBA, j'ai bien le microsoft activex data objects 2.8 library coché :
Screenshot_3.jpg

j'ai suivi un tuto sur internet; donc j'ai declaré sur l'administrateur de source de données ODBC ma base de donnée... mais peut etre j'etais pas jusqu'au bout dans ma demarche
Screenshot_4.jpg



j'avais essayé l'application MySQL for Excel pour etre sur que ma base de donnée est correcte. apparement tout va bien, j'arrive a faire des check-out check-in.
pouvez vous m'aidez SVP
merci d'avance.
 

Pièces jointes

  • Screenshot_2.jpg
    Screenshot_2.jpg
    115.1 KB · Affichages: 39
  • Screenshot_5.jpg
    Screenshot_5.jpg
    316.5 KB · Affichages: 31
  • Screenshot_6.jpg
    Screenshot_6.jpg
    288.8 KB · Affichages: 32

Benam

XLDnaute Nouveau
C'est bizarre, je ne comprends pas pourquoi ca ne marche pas.
pourtant tout est bon

Serveur : 127.0.0.1
port : 3306
Base de donnée : base
user : root
mot de passe : m02pas

j'ai egalement demarrer le mysql sur la liste des services de mon ordi (gestionnaire des taches)

excel version 2016
j'ai desintallé le connecteur installé par defaut et j'ai reinstallé la version que tu m'as envoyé
:
Screenshot_8.jpg


as tu une piste à explorer stp ?
merci d'avance
 

Benam

XLDnaute Nouveau
j'ai désinstallé la version 8.0 et j'ai réinstallé la 5.1 que tu m'as envoyé.
toujours le même problème.

on est bien d'accord que mon programme VBA doit être fait dans un module ?
 

Pièces jointes

  • Screenshot_9.jpg
    Screenshot_9.jpg
    257.2 KB · Affichages: 39

Benam

XLDnaute Nouveau
apparement il faut installer la version 32bits
vu la version excel dont je dispose est une 32bits

source :

par contre ca m'affiche

Screenshot_12.jpg
 

Pièces jointes

  • Screenshot_10.jpg
    Screenshot_10.jpg
    89.9 KB · Affichages: 29
  • Screenshot_11.jpg
    Screenshot_11.jpg
    75.7 KB · Affichages: 25

Benam

XLDnaute Nouveau
C'est bon ca marché... merci Tatiac :)
par contre il faut activé le Microsoft ActiveX DATA Objects 2.8 Library.
voila le code final qui marche pour moi :

VB:
Sub ADOExcelSQLServer2()

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 SQLStr As String
Dim rs As ADODB.Recordset
Set rs = New ADODB.Recordset
Dim Num As String



Server_Name = "127.0.0.1"
Database_Name = "base"
User_ID = "root"
Password = "m02pas"


Num = 1022

SQLStr = "SELECT numero FROM table01 WHERE numero LIKE '" & Num & "%'"


Set Cn = New ADODB.Connection
Cn.Open "Driver={MYSQL ODBC 8.0 Unicode Driver};Server=" & Server_Name & ";Database=" & Database_Name & ";Uid=" & User_ID & ";Pwd=" & Password & ";"
rs.Open SQLStr, Cn, adOpenStatic

With Worksheets("Feuil2").Range("a1:z500")
.ClearContents
.CopyFromRecordset rs
End With

rs.Close
Set rs = Nothing
Cn.Close
Set Cn = Nothing

End Sub
 

Discussions similaires

Statistiques des forums

Discussions
314 628
Messages
2 111 337
Membres
111 104
dernier inscrit
JEMADA