Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1125 connectés 

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  mysql / Visual basic

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

mysql / Visual basic

n°361252
toutoun88
Posté le 15-04-2003 à 10:11:28  profilanswer
 

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

mood
Publicité
Posté le 15-04-2003 à 10:11:28  profilanswer
 

n°361324
drasche
Posté le 15-04-2003 à 10:41:45  profilanswer
 

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)
n°361357
toutoun88
Posté le 15-04-2003 à 10:50:55  profilanswer
 

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.

n°361361
drasche
Posté le 15-04-2003 à 10:53:16  profilanswer
 

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)
n°361394
toutoun88
Posté le 15-04-2003 à 11:09:48  profilanswer
 

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!

n°361405
toutoun88
Posté le 15-04-2003 à 11:12:02  profilanswer
 

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

n°361406
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 15-04-2003 à 11:13:02  profilanswer
 

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)
n°361416
drasche
Posté le 15-04-2003 à 11:16:31  profilanswer
 

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)
n°361421
toutoun88
Posté le 15-04-2003 à 11:18:44  profilanswer
 

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.

n°361425
drasche
Posté le 15-04-2003 à 11:20:06  profilanswer
 

é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)
mood
Publicité
Posté le 15-04-2003 à 11:20:06  profilanswer
 

n°361430
toutoun88
Posté le 15-04-2003 à 11:22:31  profilanswer
 

Bon alors reprenons, Le compilateur dit qu'il ne connais pas "New", quand je créer une nouvelle connexion.

n°361859
toutoun88
Posté le 15-04-2003 à 14:40:30  profilanswer
 

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

n°361897
drasche
Posté le 15-04-2003 à 14:54:17  profilanswer
 

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)
n°361937
toutoun88
Posté le 15-04-2003 à 15:16:05  profilanswer
 

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:  

n°361943
toutoun88
Posté le 15-04-2003 à 15:20:02  profilanswer
 

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?

n°361947
drasche
Posté le 15-04-2003 à 15:21:24  profilanswer
 

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)
n°361964
toutoun88
Posté le 15-04-2003 à 15:28:58  profilanswer
 

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"

n°361976
drasche
Posté le 15-04-2003 à 15:34:05  profilanswer
 

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)
n°361980
Tetragramm​aton IHVH
dieu unique => pensée unique
Posté le 15-04-2003 à 15:35:25  profilanswer
 

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
n°361985
drasche
Posté le 15-04-2003 à 15:37:08  profilanswer
 

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)
n°362007
toutoun88
Posté le 15-04-2003 à 15:44:53  profilanswer
 

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"

n°364340
toutoun88
Posté le 17-04-2003 à 09:50:22  profilanswer
 

Personne ne peut me repondre?

n°366158
toutoun88
Posté le 18-04-2003 à 11:21:56  profilanswer
 

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?

n°366180
drasche
Posté le 18-04-2003 à 11:29:54  profilanswer
 

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)
n°366181
backdafuck​up
Back to da old skool
Posté le 18-04-2003 à 11:29:57  profilanswer
 

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

n°366187
drasche
Posté le 18-04-2003 à 11:31:14  profilanswer
 

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)
n°366197
backdafuck​up
Back to da old skool
Posté le 18-04-2003 à 11:36:25  profilanswer
 

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 :/)
 

n°366225
drasche
Posté le 18-04-2003 à 11:44:50  profilanswer
 

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)
n°366232
drasche
Posté le 18-04-2003 à 11:49:07  profilanswer
 

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)
n°366239
backdafuck​up
Back to da old skool
Posté le 18-04-2003 à 11:53:44  profilanswer
 

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

n°366242
toutoun88
Posté le 18-04-2003 à 11:54:45  profilanswer
 

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

mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  mysql / Visual basic

 

Sujets relatifs
[mySql]SELECT le dérnier enregistrement inséré! je cherche la synthaxe[PHP-MySQL] Quel portail utiliser chez free ?
rechercher tous les noms qui commence par 'ant' ! Cherch synthax mysql[php-mysql] Idées de projet??
ISNULL SqlServer > mySqlOù trouver une version d'évaluation Visual C++ 7 ?
Mettre une image dans un blob (MySQL) pour ensuite l'afficher ??[PHP MySQL] Clef primaire multiple ?(prob. réglé + infos législation)
[MySql] J'ai une idée, mais j'arrive pas à la mettre en oeuvre ! HelpMysql et Visual Basic 6.0 - Connecter les 2 ?
Plus de sujets relatifs à : mysql / Visual basic


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR