Erreur 3001 vba Excel Macros MySQL Insert

Je tente d'insert une ligne dans un mysql db à l'aide de Macros Excel. La connection semble fonctionner correctement mais j'ai une erreur vba 3001

(Les arguments visuels de base de Microsoft 3001 sont du type incorrect ou sont hors gamme acceptable ou sont en conflit les uns avec les autres)

lorsque y exécutez ce code:

Dim rs As ADODB.Recordset Set rs = New ADODB.Recordset ConnectDB 'strSQL = "INSERT INTO talar.ots (UbicacionTecnica, Equipo, Posmant) VALUES ('sdasd', 'sdasd','sdasd')" rs.Open strSQL, oConn, adOpenDynamic, adLockOptimistic 

J'ai déjà lu et essayé différentes choses avec 50 tutoriels et autres publications dans cette page, tous les mauvais résultats ….

C'est le code de la connection:

  Private Sub ConnectDB() Dim oConn As ADODB.Connection Set oConn = New ADODB.Connection oConn.Open "DRIVER={MySQL ODBC 5.2 Unicode Driver};" & _ "SERVER=localhost;" & _ "DATABASE=talar;" & _ "USER=root;" & _ "PASSWORD=root;" & _ "Option=3" End Sub 

MySQL ODBC 5.2 Unicode Driver est installé, le service mysql fonctionne bien, j'utilise Excel 2010, windows 7. Je ne sais pas si cette information est suffisante. quelqu'un a une idée? Merci!

oConn est local au sous-set ConnectDB sorte que vous ne transmettez rien aux jeux d'loggings Open .

Ajouter une Option Explicit en haut de votre file de code pour recevoir un avertissement lorsque vous faites quelque chose comme ça.

Effectuez une fonction qui renvoie la connection:

 Private Function ConnectDB() As ADODB.Connection Set ConnectDB = New ADODB.Connection ConnectDB.Open "DRIVER={MySQL ODBC 5.2 Unicode Driver};SERVER=localhost;DATABASE=talar;USER=root;PASSWORD=root;Option=3" End Function 

alors

 dim cn as ADODB.Connection set cn = ConnectDB() cn.Execute "INSERT INTO talar.ots (UbicacionTecnica, Equipo, Posmant) VALUES ('sdasd', 'sdasd','sdasd')" cn.Close 

Vous n'avez pas besoin d'un jeu d' Recordset pour une insertion car aucune ligne ne sera renvoyée.

Lorsque vous avez besoin d'un jeu d' Recordset adOpenForwardOnly, adLockReadOnly vaut mieux que adOpenDynamic, adLockOptimistic sauf si vous avez spécifiquement besoin des fonctionnalités offertes par ce dernier.