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

Signaler
Messages postés
59
Date d'inscription
mercredi 26 mai 2004
Statut
Membre
Dernière intervention
19 août 2004
-
Messages postés
59
Date d'inscription
mercredi 26 mai 2004
Statut
Membre
Dernière intervention
19 août 2004
-
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

Messages postés
59
Date d'inscription
mercredi 26 mai 2004
Statut
Membre
Dernière intervention
19 août 2004

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)
Messages postés
1356
Date d'inscription
samedi 8 décembre 2001
Statut
Membre
Dernière intervention
23 octobre 2006
8
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
@+
Messages postés
59
Date d'inscription
mercredi 26 mai 2004
Statut
Membre
Dernière intervention
19 août 2004

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 !
Messages postés
1356
Date d'inscription
samedi 8 décembre 2001
Statut
Membre
Dernière intervention
23 octobre 2006
8
labout
si
Set Rs = MyDb.OpenRecordset(requete)
@+
Messages postés
59
Date d'inscription
mercredi 26 mai 2004
Statut
Membre
Dernière intervention
19 août 2004

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 :)
Messages postés
59
Date d'inscription
mercredi 26 mai 2004
Statut
Membre
Dernière intervention
19 août 2004

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) ?
Messages postés
1356
Date d'inscription
samedi 8 décembre 2001
Statut
Membre
Dernière intervention
23 octobre 2006
8
labout
A quel niveau est l'erreur ?
Je ne connais pas mysql
à mon avis c'est là
MyDb = mysql_init(0)
Messages postés
59
Date d'inscription
mercredi 26 mai 2004
Statut
Membre
Dernière intervention
19 août 2004

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