mysql / Visual basic

mysql / Visual basic - SQL/NoSQL - Programmation

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

Reply

Marsh Posté le 15-04-2003 à 10:11:28   

Reply

Marsh Posté le 15-04-2003 à 10:41:45    

fastoche, tu suis ma signature ;)


---------------
Whichever format the fan may want to listen is fine with us – vinyl, wax cylinders, shellac, 8-track, iPod, cloud storage, cranial implants – just as long as it’s loud and rockin' (Billy Gibbons, ZZ Top)
Reply

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.

Reply

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.


---------------
Whichever format the fan may want to listen is fine with us – vinyl, wax cylinders, shellac, 8-track, iPod, cloud storage, cranial implants – just as long as it’s loud and rockin' (Billy Gibbons, ZZ Top)
Reply

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!

Reply

Marsh Posté le 15-04-2003 à 11:12:02    

Le compilateur dit qu'il ne connais pas "New".

Reply

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 !!!


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 15-04-2003 à 11:16:31    

cte honte je l'avais même pas vu :o


---------------
Whichever format the fan may want to listen is fine with us – vinyl, wax cylinders, shellac, 8-track, iPod, cloud storage, cranial implants – just as long as it’s loud and rockin' (Billy Gibbons, ZZ Top)
Reply

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 :
 
http://forum.hardware.fr/forum2.php3?post=35201&cat=10
 
Je ferme ce topic, mais merci de ne pas en recréer un autre !!!


 
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.

Reply

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 ;)


---------------
Whichever format the fan may want to listen is fine with us – vinyl, wax cylinders, shellac, 8-track, iPod, cloud storage, cranial implants – just as long as it’s loud and rockin' (Billy Gibbons, ZZ Top)
Reply

Marsh Posté le 15-04-2003 à 11:20:06   

Reply

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.

Reply

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? :??:

Reply

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? :fou:


---------------
Whichever format the fan may want to listen is fine with us – vinyl, wax cylinders, shellac, 8-track, iPod, cloud storage, cranial implants – just as long as it’s loud and rockin' (Billy Gibbons, ZZ Top)
Reply

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? :fou:


 
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 :jap:  

Reply

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?

Reply

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?


---------------
Whichever format the fan may want to listen is fine with us – vinyl, wax cylinders, shellac, 8-track, iPod, cloud storage, cranial implants – just as long as it’s loud and rockin' (Billy Gibbons, ZZ Top)
Reply

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"

Reply

Marsh Posté le 15-04-2003 à 15:34:05    

toutoun88 a écrit :

"Utilisation incorrecte du mot clé New"


:heink:
 
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 :
  1. Set oCon = New ADODB.Connection


au lieu de  

Code :
  1. Set oCon = New Connection


 
et modifie aussi la déclaration comme ceci:

Code :
  1. Dim oCon as ADODB.Connection


---------------
Whichever format the fan may want to listen is fine with us – vinyl, wax cylinders, shellac, 8-track, iPod, cloud storage, cranial implants – just as long as it’s loud and rockin' (Billy Gibbons, ZZ Top)
Reply

Marsh Posté le 15-04-2003 à 15:35:25    

Mettre mysql dans SGBD, faut oser :D


---------------
"Dieu a exploité tous nos complexes d'infériorité, en commençant par notre incapacité de croire à notre propre divinité." - Emil Michel Cioran
Reply

Marsh Posté le 15-04-2003 à 15:37:08    

Tetragrammaton IHVH a écrit :

Mettre mysql dans SGBD, faut oser :D


bah c'est surtout qu'on fait du VB quoi :D
 
bon commencez pas à troller hein :o


---------------
Whichever format the fan may want to listen is fine with us – vinyl, wax cylinders, shellac, 8-track, iPod, cloud storage, cranial implants – just as long as it’s loud and rockin' (Billy Gibbons, ZZ Top)
Reply

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"

Reply

Marsh Posté le 17-04-2003 à 09:50:22    

Personne ne peut me repondre?

Reply

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?

Reply

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 :
  1. Call oCon.Execute(strSql)


 
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? :??:


Message édité par drasche le 18-04-2003 à 11:30:19

---------------
Whichever format the fan may want to listen is fine with us – vinyl, wax cylinders, shellac, 8-track, iPod, cloud storage, cranial implants – just as long as it’s loud and rockin' (Billy Gibbons, ZZ Top)
Reply

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:
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?


 
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...

Reply

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 ;)


---------------
Whichever format the fan may want to listen is fine with us – vinyl, wax cylinders, shellac, 8-track, iPod, cloud storage, cranial implants – just as long as it’s loud and rockin' (Billy Gibbons, ZZ Top)
Reply

Marsh Posté le 18-04-2003 à 11:36:25    

drasche a écrit :


eheh, oui, aussi.  Pas question de foutre un nom de variable VB dans la string de la requête ;)


si tu dois pouvoir, mais à coup de concatenation de chaine et insertion de (';)  (chr(13) non ? je sais plus... zut :/)
 

Reply

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).


---------------
Whichever format the fan may want to listen is fine with us – vinyl, wax cylinders, shellac, 8-track, iPod, cloud storage, cranial implants – just as long as it’s loud and rockin' (Billy Gibbons, ZZ Top)
Reply

Marsh Posté le 18-04-2003 à 11:49:07    

La construction de sa requête devrait ressembler à ceci:
 

Code :
  1. strSql = "INSERT INTO produit VALUES ('" & Array(x, 1) & "', '" & Array(x, 10) & "', '" & Array(x, 3) & "');"


 
* ç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.


Message édité par drasche le 18-04-2003 à 11:50:27

---------------
Whichever format the fan may want to listen is fine with us – vinyl, wax cylinders, shellac, 8-track, iPod, cloud storage, cranial implants – just as long as it’s loud and rockin' (Billy Gibbons, ZZ Top)
Reply

Marsh Posté le 18-04-2003 à 11:53:44    

drasche a écrit :

La construction de sa requête devrait ressembler à ceci:
 

Code :
  1. strSql = "INSERT INTO produit VALUES ('" & Array(x, 1) & "', '" & Array(x, 10) & "', '" & Array(x, 3) & "');"


 
* ç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.


 
:jap:
 
j'approuve...

Reply

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.

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed