Mettre le résultat d'une requête dans un fichier texte

morpheus83z Messages postés 59 Date d'inscription mercredi 26 mai 2004 Statut Membre Dernière intervention 19 août 2004 - 27 mai 2004 à 09:53
morpheus83z Messages postés 59 Date d'inscription mercredi 26 mai 2004 Statut Membre Dernière intervention 19 août 2004 - 27 mai 2004 à 12:07
Salut !

En premier lieu je vous fournis le code de mon "prog" :

Option Explicit

Public Function Main()

Dim MyDb As Database
Dim MyRecordset As Recordset
Dim Requete As String

MyDb = mysql_init(0)

If Not pMySQL = 0 Then

Set MyDb = OpenDatabase("euriview", dbDriverNoPrompt, False, "ODBC;DATABASE=euriview;UID=adesmars;PWD=281083")

Else

MsgBox "Connexion à la base de donnée impossible", _
vbCritical, "Erreur"

Requete = "SELECT idlog,login FROM utilisateur"
MyDb.Execute Requete

Open "c:\resultat_req.php" For Output As #1
Print #1, "$Requete"
Close #1

Call Main

End Function

End Sub

Je suppose qu'il y a des erreurs mais j'aimerais savoir si ce que je fais est possible et si oui, que dois-je corriger ? Merci beaucoup.

8 réponses

morpheus83z Messages postés 59 Date d'inscription mercredi 26 mai 2004 Statut Membre Dernière intervention 19 août 2004
27 mai 2004 à 10:20
Salut !

En premier lieu je vous fournis le code de mon "prog" :

Option Explicit

Public Function Main()

Dim MyDb As Database
Dim MyRecordset As Recordset
Dim Requete As String

MyDb = mysql_init(0)

If Not pMySQL = 0 Then

Set MyDb = OpenDatabase("euriview", dbDriverNoPrompt, False, "ODBC;DATABASE=euriview;UID=adesmars;PWD=281083")

Else

MsgBox "Connexion à la base de donnée impossible", _
vbCritical, "Erreur"

Requete = "SELECT idlog,login FROM utilisateur"
MyDb.Execute Requete

Open "c:\resultat_req.php" For Output As #1
Print #1, Requete
Close #1

Call Main

End Function

End Sub

Voilà, donc il ne se connecte pas à ma BDD et ne crée pas le fichier, est-ce normal ?

(Petite correction incluse au niveau du print)
0
cs_labout Messages postés 1356 Date d'inscription samedi 8 décembre 2001 Statut Membre Dernière intervention 23 octobre 2006 8
27 mai 2004 à 10:27
labout
Avec ceci il va técrire dans le fichier texte
"SELECT idlog,login FROM utilisateur"

Il faut faire un parcours de ton recordset
Concatener chaque champ du record, l'écrire
puis passer au suivant.

dim rs as recordset
dim var1 as string
set rs = MyDb.Execute Requete
Open "c:\resultat_req.php" For Output As #1

do while not rs.eof
var1=rs.fields("idlog").value & ","
var1=var1 & rs.fields(login").value
print #1 var1
var1=""
rs.movenext
loop
close #1
@+
0
morpheus83z Messages postés 59 Date d'inscription mercredi 26 mai 2004 Statut Membre Dernière intervention 19 août 2004
27 mai 2004 à 10:37
ah oui, c'est vrai que la requête dans le fichier ça le fait pas .. j'ai déjà eu le prob en PHP mais plus simple à résoudre :) ! Donc j'ai mis ça dans mon programme, mais le problème c'est qu'il n'a pas l'air de se connecter a ma BDD et donc rien ne se passe (pas même l'écriture du fichier). Par contre, il n'y aurait pas un prob au niveau de set rs = MyDb.Execute Requete ? Car la ligne est rouge .. Bizarre

Enfin merci bcp pr ton aide !
0
cs_labout Messages postés 1356 Date d'inscription samedi 8 décembre 2001 Statut Membre Dernière intervention 23 octobre 2006 8
27 mai 2004 à 10:46
labout
si
Set Rs = MyDb.OpenRecordset(requete)
@+
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
morpheus83z Messages postés 59 Date d'inscription mercredi 26 mai 2004 Statut Membre Dernière intervention 19 août 2004
27 mai 2004 à 10:51
Merci encore beaucoup, vous êtes cool sur ce forum .. Mes questions volent pas encore très haut mais je débute :big)

Si certains comprennent pourquoi je ne me connecte pas à ma BDD, je suis preneur :)
0
morpheus83z Messages postés 59 Date d'inscription mercredi 26 mai 2004 Statut Membre Dernière intervention 19 août 2004
27 mai 2004 à 11:18
J'ai toujours mon soucis de connection avec ma base MySQL en local (pour le moment).

' Connection à une Base de donnée local & envoi du résultat
' d'une requête dans un fichier resultat_req.txt

Option Explicit

Public Function Main()

Dim MyDb As Database
Dim MyRecordset As Recordset
Dim Requete As String
Dim Requete2 As String
Dim var1 As String

MyDb = mysql_init(0)

If Not pMySQL = 0 Then
' Connection à la BDD euriview en root sans mot de passe / localhost (mode DAO)
Set MyDb = OpenDatabase("euriview", dbDriverNoPrompt, False, "ODBC;DSN=euriview;DATABASE=euriview;UID=root;PWD=")

Else

MsgBox "Connexion à la base de donnée impossible", _
vbCritical, "Erreur"

' On insère de nouvelles données dans la table utilisateur
Requete2 = "INSERT INTO utilisateur (idlogin,login,password,choix) VALUES ('', 'zxz', 'xzx', 'uiu')"
' On sélectionne les infos de la table utilisateur
Requete = "SELECT idlog,login, password, choix FROM utilisateur"
Set MyRecordset = MyDb.OpenRecordset(Requete)
' Fermeture de la BDD
mysql_close

Private Sub GenereWeb()
' Création d'un fichier resultat_req
Open "c:\resultat_req.txt" For Output As #1
' Récupération des données de la requête en clair dans le fichier texte
Do While Not MyRecordset.EOF
var1 = MyRecordset.Fields("idlog").Value & ","
var1 = var1 & MyRecordset.Fields("login").Value
Print #1, var1
var1 = ""
MyRecordset.MoveNext
Loop
Close #1

Call Main
Call GenereWeb

End Sub

End Function

J'ai essayé de commenter un peu le fichier même si ce n'est pas d'une difficulté extrème. Vous avez une idée pour trouver mon (mes ?) erreur(s) ?
0
cs_labout Messages postés 1356 Date d'inscription samedi 8 décembre 2001 Statut Membre Dernière intervention 23 octobre 2006 8
27 mai 2004 à 11:25
labout
A quel niveau est l'erreur ?
Je ne connais pas mysql
à mon avis c'est là
MyDb = mysql_init(0)
0
morpheus83z Messages postés 59 Date d'inscription mercredi 26 mai 2004 Statut Membre Dernière intervention 19 août 2004
27 mai 2004 à 12:07
Tout à fait ! j'ai mélangé du DAO et de l'ADO ...

Voilà le programme final qui marche nickel, merci bcp pr ta précieuse aide :

Option Explicit

Public MyRecordset As Recordset

Public Sub Main()

Dim MyDb As Database

Dim Requete As String
Dim Requete2 As String

' Connection à la BDD euriview en root sans mot de passe / localhost (mode DAO)
Set MyDb = OpenDatabase("euriview", dbDriverNoPrompt, False, "ODBC;DSN=euriview;DATABASE=euriview;UID=root;PWD=")

' On insère de nouvelles données dans la table utilisateur
Requete2 = "INSERT INTO utilisateur (login,password,choix) VALUES ('zxz', 'xzx', 4)"

' On sélectionne les infos de la table utilisateur
Requete = "SELECT idlog,login, password, choix FROM utilisateur"

Set MyRecordset = MyDb.OpenRecordset(Requete)
MsgBox MyRecordset("idlog")

'MyDb.Execute Requete2

Call GenereWeb

End Sub

Private Function GenereWeb()

Dim var1 As String

' Création d'un fichier resultat_req
Open "c:\resultat_req.txt" For Output As #1
' Récupération des données de la requête en clair dans le fichier texte
Do While Not MyRecordset.EOF
var1 = MyRecordset.Fields("idlog").Value & ","
var1 = var1 & MyRecordset.Fields("login").Value & ","
var1 = var1 & MyRecordset.Fields("password").Value
Print #1, var1
var1 = ""
MyRecordset.MoveNext
Loop
Close #1

End Function
0
Rejoignez-nous