Bonjour,
Je commence à m'initier à MySQL, et aux base de données par la même occasion.
Je souhaite pouvoir me connecter à une base de données MySQL à partir d'Excel via VBA.
Pour ce faire, j'ai écrit la fonction suivante :
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
| Type tCnxParam
Driver As Variant
Server As Variant
Database As String
User As String
Pwd As String
Option As Variant
End Type
Function ConnectDB(ByRef oConnect As ADODB.Connection, _
ByRef CnxParam As tCnxParam, _
ByRef StrError As String) _
As Boolean
Dim CnxString As String
Set oConnect = New ADODB.Connection
oConnect.ConnectionString = "DRIVER={" + CnxParam.Driver + "};" _
& "SERVER=" + CnxParam.Server + ";" _
& "DATABASE=" + CnxParam.Database + ";" _
& "USER=" + CnxParam.User + ";" _
& "PASSWORD=" + CnxParam.Pwd + ";" _
& "OPTION=3;"
If CnxParam.Option <> "" Then
oConnect.ConnectionString = oConnect.ConnectionString _
& "OPTION=" + CnxParam.Option + ";"
End If
On Error GoTo GetError
oConnect.Open
GoTo FinalStatus
GetError:
StrError = "Erreur N° " + CStr(Err.Number) + " : " + Err.Description
FinalStatus:
ConnectDB = CBool(oConnect.State = adStateOpen)
End Function |
Ce qui m'a permis de tenter la connexion avec diverses combinaisons de valeurs :
- Driver : "SQL Server" ou "MySQL ODBC 5.3 Driver" ou "MySQL ODBC 8.0 Driver" (cette dernière valeur est celle suggérée par le site de MySQL)
- Server : "MySqlServer" ou "localhost"
- Option : "" ou "3"
Avec Driver = "SQL Server", j'obtiens quelsquesoient les autres paramètres :
Erreur 2147467259 : [Microsoft][ODBC SQL Server Driver][DBNETLIB]Ce serveur SQL n'existe pas ou son accès est refusé.
Avec Driver = "MySQL ODBC 5.3 Driver" et "MySQL ODBC 8.0 Driver", j'obtiens quels que soient les autres paramètres :
Erreur 2147467259 : [Microsoft][Gestionnaire de pilotes ODBC] Source de données introuvable et nom de pilote non spécifié
Je précise que :
- Je sous sous Windows 10
- La version de Ms Office est 2016
- J'ai installé MySQL 8.0.13
- J'ai vérifié que le connecteur ODBC était bien installé, et que le service correspondant était démarré
- J'ai vérifié le username et le password, que j'avais moi-mê créés
Pour aller plus loin dans mes tentatives, j'ai installé MySQL for Excel, et j'ai tenté une connexion à partir de Excel sans passer par le VBA. Résultat :
"Authentification method 'caching_sha2_password' not suported by any..." puis je ne peux lire la suite, et les détails sont :
A possible fail reason could be that your user requires a SSL connection that is not currently supported.
Please check with the Administrator if you require a SSL Connection and if he can authorize your user to login without a SSL connection."
J'ai vérifié via MySQK WorkBench, et le SSL est "not enabled" pour le compte utilisateur testé.
Comme indiqué en préambule, je suis au tout début de mon apprentissage MySQL.
Comme je l'ai indiqué plus loin, j'ai cherché la solution sur Internet, y compris évidemment sur le forum de développez.com, et notamment sur le site de MySQL, et plus précisément sur leur tutoriel, que j'ai tenté de suivre scrupuleusement. La solution a peut-être été sous mes yeux à un moment donné, mais mes très maigres connaissances ne m'ont pas permis de les voir ou de les comprendre.
Aussi, un grand merci d'avance à toute personne ayant la gentillesse de m'aider et/ou me donner une explication suffisamment claire, à l'opposé d'un "une recherche sur Google t'aurait permis de trouver toi même la solution" avec le lien associé, dont je ne saurais sans doute pas tirer profit, ou d'un renvoi vers un autre post que j'ai sans doute déjà consulté sans qu'il me permette de résoudre mon problème.
Bonne journée à tous
Partager