mysql / Visual basic - SQL/NoSQL - Programmation
Marsh Posté le 15-04-2003 à 10:41:45
fastoche, tu suis ma signature
Marsh Posté le 15-04-2003 à 10:50:55
Ouai, mais en prnant ton exemple, ça plante a "set oVon = new connexion" car c'est une macro VBA Excel que j'utilise et non Visual BAsic.
Marsh Posté le 15-04-2003 à 10:53:16
c'est ADO 2.5 que tu dois avoir dans tes références, le reste est inclus d'office, même s'il n'est pas visible
PS: poste tes réponses uniquement ici que ça soit plus clair stp.
Marsh Posté le 15-04-2003 à 11:09:48
Ok, ça c'est déja fait et ça ne marche pas! Est-ce que VBA Excel supporte programmation objet? Parce que a mon avis ça viens de la!
Marsh Posté le 15-04-2003 à 11:13:02
Pourquoi tu créé plusieurs topics ? En plus, je t'avais déja indiqué le topic de drasche dans ton 1er topic :
http://forum.hardware.fr/forum2.php3?post=35201&cat=10
Je ferme ce topic, mais merci de ne pas en recréer un autre !!!
Marsh Posté le 15-04-2003 à 11:16:31
cte honte je l'avais même pas vu
Marsh Posté le 15-04-2003 à 11:18:44
Harkonnen a écrit : Pourquoi tu créé plusieurs topics ? En plus, je t'avais déja indiqué le topic de drasche dans ton 1er topic : |
Bon alors on me dis qu'il faut que j'ecrive sur celui, puis sur un autre, alors en fait j'ecris sur lequel?
Merci et excusez moi.
Marsh Posté le 15-04-2003 à 11:20:06
écris ici vu que l'autre est fermé, et efface ton post sur la FAQ vu que la réponse est donnée ici
Marsh Posté le 15-04-2003 à 11:22:31
Bon alors reprenons, Le compilateur dit qu'il ne connais pas "New", quand je créer une nouvelle connexion.
Marsh Posté le 15-04-2003 à 14:40:30
Ce programme ne marche pas en VBA Excel, il ne connais pas du tout new et open. Vous ne savez pas ce qu'il faut importer ou referencer pour que ça marche?
Marsh Posté le 15-04-2003 à 14:54:17
relis le premier post de la FAQ c'est marqué dedans. t'as juste fait un copier/coller du code ou quoi?
Marsh Posté le 15-04-2003 à 15:16:05
drasche a écrit : relis le premier post de la FAQ c'est marqué dedans. t'as juste fait un copier/coller du code ou quoi? |
Mais j'ai déja dis que j'avais référencé ce qu'il faut. C'est bon, j'ai reférencé "Microsoft ActiveX Data Objects 2.5", si y'a que ça a mettre, bah chez moi ça marche pas alors!
PS: Je ne suis pas un boulet quand même
Marsh Posté le 15-04-2003 à 15:20:02
Par contre, dans ta capture y'a aussi "Visual Basic runtime objects and procedures" et "Visual Basic Objects and procedures" de coché. Et moi ces trucs ils n'existes pas dans mon VBA, donc je me demande si VBA Excel supporte la programmation objet?
Marsh Posté le 15-04-2003 à 15:21:24
C'est quoi ta version d'Excel? parce que je viens d'essayer et mis à part la fonction Replace qui n'existe pas, ça marche pour moi. J'ai Excel 97.
Et si ça plante, quel est le message d'erreur affiché par VB?
Marsh Posté le 15-04-2003 à 15:28:58
Ma version d'Excel, c'est office 2000.
L'erreur qu'il me donne est la suivante:
"Utilisation incorrecte du mot clé New"
Et quand je met la ligne en commentaire, il me fais l'erreur juste aprés, sur "Call oCon.Open(strConnect)". Et il me met "Membre de methode ou de données introuvable"
Marsh Posté le 15-04-2003 à 15:34:05
toutoun88 a écrit : "Utilisation incorrecte du mot clé New" |
je vois pas en quoi c'est incorrect
quant à voir si ça marche après avoir mis la ligne en commentaire, le résultat était attendu. Tu peux pas utiliser l'objet si il n'a pas d'abord été alloué en mémoire.
mmmh essaie à tout hasard:
Code :
|
au lieu de
Code :
|
et modifie aussi la déclaration comme ceci:
Code :
|
Marsh Posté le 15-04-2003 à 15:35:25
Mettre mysql dans SGBD, faut oser
Marsh Posté le 15-04-2003 à 15:37:08
Tetragrammaton IHVH a écrit : Mettre mysql dans SGBD, faut oser |
bah c'est surtout qu'on fait du VB quoi
bon commencez pas à troller hein
Marsh Posté le 15-04-2003 à 15:44:53
Bon maintenant il compile. Au debuger, ça passe jusqu'a la ligne "Call oCon.Open(strConnect)", aprés il plante en me disant
"Erreur d'execution '-2147467259 (80004005)'
Erreur Automation
Erreur non spécifiée"
Marsh Posté le 18-04-2003 à 11:21:56
Bon, j'arrive maintenant a me connecter a la base, mais j'ai un autre probleme:
ma requete, n'est pas une recherche (select), mais une insertion (insert), j'ai donc repris votre exemple:
strSql = "INSERT INTO produit VALUES (array(x,1), array(x,10), array(x,3));"
Set record = New ADODB.Recordset
Call record.Open(strSql, oCon, adOpenForwardOnly, adLockReadOnly, adCmdText)
Mais ça plante a la deniere ligne, pourquoi? Est-ce que pour un insert, c'est different?
Marsh Posté le 18-04-2003 à 11:29:54
Tout à fait, les deux lignes en question sont destinées à interroger une table ou plus généralement faire un select.
Pour un insert, il y a plus radical et plus simple:
Code :
|
Il y a une toute petite contrainte: une seule requête à la fois
Comment as-tu résolu le problème d'automation? mauvaise install?
Marsh Posté le 18-04-2003 à 11:29:57
toutoun88 a écrit : Bon, j'arrive maintenant a me connecter a la base, mais j'ai un autre probleme: |
Il me semble, je dis bien il me semble, qu'avec mysql, il faut des quotes (' dans les requetes, c'est donc peut etre ta requete qui est invalide...
Marsh Posté le 18-04-2003 à 11:31:14
backdafuckup a écrit : Il me semble, je dis bien il me semble, qu'avec mysql, il faut des quotes (' dans les requetes, c'est donc peut etre ta requete qui est invalide... |
eheh, oui, aussi. Pas question de foutre un nom de variable VB dans la string de la requête
Marsh Posté le 18-04-2003 à 11:36:25
drasche a écrit : |
si tu dois pouvoir, mais à coup de concatenation de chaine et insertion de (' (chr(13) non ? je sais plus... zut )
Marsh Posté le 18-04-2003 à 11:44:50
backdafuckup a écrit : si tu dois pouvoir, mais à coup de concatenation de chaine et insertion de (' (chr(13) non ? je sais plus... zut ) |
vivivi bien sûr, je faisais un parallèle avec ce qui peut se faire en PHP où tu as la possibilité de foutre tes variables directement dans la string (mais pas recommandé question performance).
Marsh Posté le 18-04-2003 à 11:49:07
La construction de sa requête devrait ressembler à ceci:
Code :
|
* ça marchera s'il n'y a pas d'apostrophes dans ses variables (cfr ce topic).
* Array est un nom réservé, trouver autre chose
* une seule requête à la fois car MySQL ne supporte pas de recevoir plusieurs requêtes d'un seul coup, hélas.
Marsh Posté le 18-04-2003 à 11:53:44
drasche a écrit : La construction de sa requête devrait ressembler à ceci:
|
j'approuve...
Marsh Posté le 18-04-2003 à 11:54:45
@drasche
Erreur bete, j'ai la version 3.52 de ODBC, et je n'avais pas fais gaffe que la version du prog etait 3.51. Honte a moi!!!!!
Merci pour la requete insert.
Marsh Posté le 15-04-2003 à 10:11:28
Bonjour a tous,
j'aurais voulu savoir comment on peut faire pour agir sur une base mysql avec Visual basic? En fait, a partir d'une feuille de calculs Excel, je souhaite programmer une macro VBA pour inserer les donnée de cette feuilles dans la base mysql.
Merci