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

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  [ VB6 + MySQL ] - Acces a une base MySQL via une appli VB

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[ VB6 + MySQL ] - Acces a une base MySQL via une appli VB

n°151364
SquiiiD
be cool !
Posté le 04-06-2002 à 23:27:19  profilanswer
 

Salut, tlm
je voudrais savoir comment acceder a partir d'un application VB a une base de donnee Mysql distante: j'ai essayer ce code choppé sur un site apres avoir installé MyOBDC 3.5.1 mais ca va po , y a plein d'erreur dans le script deja dans la declaration des variable , et je ne sais pas quel reference ajouter dans vb ..  
 
Private Sub Form_Load()
    ' Déclaration des objets
Dim wrkJet As Workspace
Dim db As Connection
Dim rs As Recordset
Dim Qd As QueryDef
 
Set wrkJet = CreateWorkspace("", "", "", dbUseODBC)
Set db = wrkJet.OpenConnection("", dbDriverNoPrompt, False, "ODBC;DSN=MonDSN;UID=MonID;
PWD=MonPasse" )
 
' Création d'une requète SQL
' Pour mettre à jour un champs
sqlquery = "UPDATE Matable SET Champs2 = 'toto' WHERE Champs1 = 1;"
 
' Pour créer un nouvel enregistrement
sqlquery = "INSERT INTO Matable (Champs1, Champs2) VALUES (1, 'toto';);"
 
' Pour supprimer un enregistrement
sqlquery = "DELETE FROM Matable WHERE Champs1 = 1;"
 
' Pour selectionner des enregistrements
sqlquery = "SELECT * FROM Matable WHERE Matable.Champs1 = 1 ORDER BY Matable.Champs2"
 
' Pour émettre la requète sauf pour la récupération des résultats sous forme de tableau
Set Qd = db.CreateQueryDef("" )
Qd.SQL = sqlquery
Qd.Execute dbRunAsync
 
' Récupération des résultats sous forme de tableau (requète de selection)
Set rs = db.OpenRecordset(sqlquery)
Do While Not rs.EOF
 
 
Valeur1 = Trim(rs("Champs1" ))
Valeur2 = Trim(rs("Champs2" ))
Me.Print Valeur1 & " " & Valeur2
rs.MoveNext
 
Loop
' fermeture de la base
rs.Close
Set rs = Nothing
db.Close
Set db = Nothing
wrkJet.Close
Set wrkJet = Nothing
 
End Sub

 
 
 
qqun a un bon site avec un tutoriel a ce sujet ? Merci
 
SquiD

mood
Publicité
Posté le 04-06-2002 à 23:27:19  profilanswer
 

n°151415
SquiiiD
be cool !
Posté le 05-06-2002 à 00:11:44  profilanswer
 

up :/
 
pq personne lis mon post?

n°151426
SquiiiD
be cool !
Posté le 05-06-2002 à 00:44:43  profilanswer
 

up

n°151457
CMOIJIM
Posté le 05-06-2002 à 09:34:34  profilanswer
 

Tu as déclarer le driver ODBC dans le panneau de configuration de windows ?
 
 
 
J.  :p

n°151489
SquiiiD
be cool !
Posté le 05-06-2002 à 10:22:00  profilanswer
 

salut cmoijim, bah non je me suis contenté d'installé OBDC 3.5.1 la, comment dois je faire pour declarer ca?
 
merci

n°151490
SquiiiD
be cool !
Posté le 05-06-2002 à 10:22:50  profilanswer
 

P.S. chui sous xp pro

n°151546
Bolino
Posté le 05-06-2002 à 11:38:40  profilanswer
 

eh oui ! il te faut créer un DSN utilisateur
 
dans le panneau de config doit y avoir un truc "ODBC 32" ou "Data source" ou quelque chose comme ça..
tu cliques dessus, tu ajoutes un nouveau DSN utilisateur, et là tu sélectionnes le driver que tu as installé.
 
dans le code, il faudra remplacer "MonDSN" par celui que tu as créé :D

n°151559
SquiiiD
be cool !
Posté le 05-06-2002 à 11:46:05  profilanswer
 

Okkkk on va essayer ca
merci !

n°151740
SquiiiD
be cool !
Posté le 05-06-2002 à 14:38:30  profilanswer
 

ben y a po ca :'(

n°151868
matz
Posté le 05-06-2002 à 16:22:27  profilanswer
 

SquiiiD a écrit a écrit :

ben y a po ca :'(  




 
sous xp pro, tu vas dans le panneau de config/outils d'administration/source de données odbc. tu fais "ajouter" et tu sélectionne le pilote ODBC de mysql. Dans sa config, donne lui le nom "MonDSN", et sélectionne la bonne base de données. Si elle est distante et que t'y connais rien en ODBC, ça va être un peu dur. Essaie de trouver une doc sur le drivers odbc de mysql si tu t'en sors pas. Pour sql server, quand c'est distant, on peut mettre l'adresse ip de la machine distante... peut etre est ce pareil dans mysql
 
Attention, il faut que tu utilises un utilisateur existant dans mysql à la place de MonID et MonPasse.

mood
Publicité
Posté le 05-06-2002 à 16:22:27  profilanswer
 

n°152284
SquiiiD
be cool !
Posté le 06-06-2002 à 08:11:02  profilanswer
 

Salut matz,  
 
voila j'ai fais ce que tu as dis, mais dans VB cette ligne reste toutjours en rouge, est-ce normal???  
 
Set db = wrkJet.OpenConnection("", dbDriverNoPrompt, False, "ODBC;DSN=MonDSN;UID=MonID;
PWD=MonPasse" )
 
le code ke jai copié collé je l'ai trouvé ici :  
http://www.devparadise.com/technoweb/code/vb/A99.asp
 
qu'est ce qui va pas? merci d'avance a+
 

matz a écrit a écrit :

 
 
sous xp pro, tu vas dans le panneau de config/outils d'administration/source de données odbc. tu fais "ajouter" et tu sélectionne le pilote ODBC de mysql. Dans sa config, donne lui le nom "MonDSN", et sélectionne la bonne base de données. Si elle est distante et que t'y connais rien en ODBC, ça va être un peu dur. Essaie de trouver une doc sur le drivers odbc de mysql si tu t'en sors pas. Pour sql server, quand c'est distant, on peut mettre l'adresse ip de la machine distante... peut etre est ce pareil dans mysql
 
Attention, il faut que tu utilises un utilisateur existant dans mysql à la place de MonID et MonPasse.  



n°152291
k1200
Posté le 06-06-2002 à 08:39:27  profilanswer
 

Il faut aussi que tu rajoutes dans les references la dll utiliser pour te connecter a MySQL...

n°152293
SquiiiD
be cool !
Posté le 06-06-2002 à 08:42:35  profilanswer
 

k1200 a écrit a écrit :

Il faut aussi que tu rajoutes dans les references la dll utiliser pour te connecter a MySQL...  




 
Vi c'est ce que j'ai regardé mais y a des centaine de truc dedans, je ne sais pas le quel mettre, et y a rien qui fait reference a MySQL la dedans :/
donc si tu sais quoi mettre .. merci
 
a+

n°152335
k1200
Posté le 06-06-2002 à 10:07:13  profilanswer
 

Essaye avec "Microsoft ActiveX Data Object x.x Library" (ADO)...

n°152491
SquiiiD
be cool !
Posté le 06-06-2002 à 11:43:55  profilanswer
 

j'en ai plein mais dans aucun y a ADO !
voila une capture ptete ke ca vous aidera a m'aider :  
jai essayer tout les activex data object, ca change rien :/
 
http://scyberchat.free.fr/capture.jpg
 
merci

n°152592
k1200
Posté le 06-06-2002 à 13:27:46  profilanswer
 

Bon tu prend la derniere version (2.7 dans ton cas...)
 
Et pour ta ligne en rouge mais ton "PWD=MonPasse" )" a la fin de la ligne du dessus...
 
Sur VB tu dois mettre une instruction par ligne... C'est pas du C ou tu peux avoir plusieurs instruction par ligne et qu'une instruction soit sur plusieurs ligne vu qu'il y a des ; a la fin de chaque instruction...

n°152597
tegu
Posté le 06-06-2002 à 13:42:48  profilanswer
 

En VB6 on peut coder sur plusieurs lignes en ajoutant <espace>_ à chaque fin de ligne qui a une suite
 
exemple:
Dim a As String, b As String, _
    c As Long, d As Long
 
C'était juste pour info...
 
a+

n°152623
k1200
Posté le 06-06-2002 à 14:05:22  profilanswer
 

C'est aussi une solution... mais ne pas oublier l'espace entre le code et le "_" autrement VB rale...

n°152669
matz
Posté le 06-06-2002 à 14:32:13  profilanswer
 

SquiiiD a écrit a écrit :

Salut matz,  
 
voila j'ai fais ce que tu as dis, mais dans VB cette ligne reste toutjours en rouge, est-ce normal???  
 
Set db = wrkJet.OpenConnection("", dbDriverNoPrompt, False, "ODBC;DSN=MonDSN;UID=MonID;
PWD=MonPasse" )
 
le code ke jai copié collé je l'ai trouvé ici :  
http://www.devparadise.com/technoweb/code/vb/A99.asp
 
qu'est ce qui va pas? merci d'avance a+
 
 




 
Va sur la ligne en rouge, ajoute un caractère à la fin, enleve le, et fais "enter". C'est juste pour le forcer à revérifier la ligne. Quel est le message d'erreur qu'il te donne ? Donne le nous précisemment

n°152924
SquiiiD
be cool !
Posté le 06-06-2002 à 17:17:43  profilanswer
 

Merci bcp !  
Voila j'ai fait ce que vous m'avez dit, et en effet pour la ligne en rouge il fallait que ca soit sur la meme ligne, mais maitnenant j'ai ce message d'erreur qui apparait :  
 
http://scyberchat.free.fr/capture2.jpg
 
 
merci d'avance !

n°152930
Bolino
Posté le 06-06-2002 à 17:25:57  profilanswer
 

Ca donne quoi quand tu cliques sur débogage ?

n°152933
SquiiiD
be cool !
Posté le 06-06-2002 à 17:28:34  profilanswer
 

bah il me met la ligne que j'ai selectionnee plus haut en jaune.  
:/

n°152981
matz
Posté le 06-06-2002 à 18:10:07  profilanswer
 

SquiiiD a écrit a écrit :

bah il me met la ligne que j'ai selectionnee plus haut en jaune.  
:/  




 
C'est parceque tu dois cocher, dans les references du projet, "Microsft Activex Data Objects 2.7 Library". Si ça marche toujours pas, décoche le et coche "Microsft Activex Data Objects Recordset 2.7 Library". Si ça marche pas, coche les deux.

n°152984
SquiiiD
be cool !
Posté le 06-06-2002 à 18:17:57  profilanswer
 

microsoft activex data objects 2.7 library est coché, mais ca va pas, et ta deuxieme solution ben n'apparait meme pas dans la liste :/
 
pourtant jai bien installé le driver OBDC .  
 
comprends po :/
 
a+ merci

n°153000
matz
Posté le 06-06-2002 à 18:28:57  profilanswer
 

SquiiiD a écrit a écrit :

microsoft activex data objects 2.7 library est coché, mais ca va pas, et ta deuxieme solution ben n'apparait meme pas dans la liste :/
 
pourtant jai bien installé le driver OBDC .  
 
comprends po :/
 
a+ merci  




 
Ca n'a rien à voir avec ton driver ODBC. Là, tu as un problème VB, pas d'odbc
 
Ton problème de code (on n'est en pas encore a l'acces a la base distante) vient d'un problème de librairie non referencée.. donc tu dois cocher la bonne dans "reference". essaie avec tout ce qui ressemble à "ADO", "Active Data Objects", "ActiveX Data Objects", "ADODB". Coche tout ce qui ressemble à ça, et reessaie.

n°153079
SquiiiD
be cool !
Posté le 06-06-2002 à 21:11:34  profilanswer
 

Ok on va essayer ca.
 
C'est toujours aussi compliquer de faire un truc avec microsoft???

n°153097
matz
Posté le 06-06-2002 à 21:49:45  profilanswer
 

SquiiiD a écrit a écrit :

Ok on va essayer ca.
 
C'est toujours aussi compliquer de faire un truc avec microsoft???  




 
c'est pas microsoft, le problème, c'est l'accès aux données, la prgorammation, la cohabitation de systèmes différents etc.
 
dans ton site d'exmple, ils disent pas quelle references ils ont utilisé pour cet example?

n°153117
SquiiiD
be cool !
Posté le 06-06-2002 à 22:25:52  profilanswer
 

non je pense pas :/

n°153288
k1200
Posté le 07-06-2002 à 09:08:09  profilanswer
 

C'est bon j'ai trouver... c'est pas du ADO mais du DAO...
 
Tu dois cocher "Microsoft DAO x.x Object Library"
 
Et la j'ai tester et ca fonctionne...

n°156049
SquiiiD
be cool !
Posté le 10-06-2002 à 17:51:28  profilanswer
 

Private Sub Form_Load()
    Dim myConn As New ADODB.Connection
    Dim VarThemeNom As String
    Dim i As Integer
    Dim NombreEnregistrements
     
    myConn.Open "MonDSN"
    Dim MyRecordSet As New ADODB.Recordset
     
    Set MyRecordSet.ActiveConnection = myConn
    MyRecordSet.Source = "SELECT * FROM PhotosThemes"
    MyRecordSet.CursorType = adOpenDynamic
    MyRecordSet.Open
     
     
     
    For i = 1 To 10
         
        VarThemeNom = MyRecordSet!ThemeNom
        txtThemeNom.Text = txtThemeNom.Text + " - " + VarThemeNom
        MyRecordSet.MoveNext
    Next i
     
End Sub


 
 
et ca marche !!! Merci a tous

mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  [ VB6 + MySQL ] - Acces a une base MySQL via une appli VB

 

Sujets relatifs
Pb MySQL sous XPRecherche base de données !!
Conversion base access en base sql (mysql)Mysql , problème avec NOT IN et NOT EXISTS
Borland C++ [afficher une appli dans un form]mysql sous unix : récupérer les messages d'erreurs
cherche url VB6[JAVASCRIPT] Problème d'accès à une frame dans une fonction (résolu)
mysql, update where id='$id' :( 
Plus de sujets relatifs à : [ VB6 + MySQL ] - Acces a une base MySQL via une appli VB


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