[VBS] sql récupérer le résultat d'une requete [Résolu]

remifalcon 63 Messages postés mercredi 22 février 2006Date d'inscription 20 novembre 2008 Dernière intervention - 5 août 2008 à 08:21 - Dernière réponse : Renfield 17307 Messages postés mercredi 2 janvier 2002Date d'inscription 18 janvier 2017 Dernière intervention
- 21 janv. 2009 à 07:28
Bonjour à tous!
Je cherche à récupérer le résultat d'une requête SQL en vbs mais il doit me manquer quelque chose 
error - "Fin d'instruction attendue"
Le insert fonctionne

Set mConnection = CreateObject("ADODB.Connection")
mConnection.Open "Provider=SQLOLEDB.1;Data Source=CINFPC22\SQLEXPRESS;Initial Catalog=BDCBTEST1;Integrated security=SSPI"

mConnection.Execute "INSERT...."

Set mRecordset = CreateObject("ADODB.Recordset")set mRecordset mConnection.Execute"Select * from Utilisateurs where ID_Connexion '12'"Comment puis je récupérer le résultat de la reque pour l'afficher?

Je tiens a préciser que j'ai déja chercher sur google avant de vous consulter.
Merci beaucoup!.
Afficher la suite 

10 réponses

Répondre au sujet
Renfield 17307 Messages postés mercredi 2 janvier 2002Date d'inscription 18 janvier 2017 Dernière intervention - 5 août 2008 à 08:51
+1
Utile
la méthode Execute de ta connection ne renvoie pas de donnée.
elle sert pour faire des INSERT INTO, des UPDATE, DELETE et autres requetes d'action.

Il te faut utiliser la méthode OpenRecordset

par la suite, il te suffit de manipuler ton recordset.

a noter que dans ta requete SQL, tu as mis ='12'
gaffe, si ce champ est déclaré en tant que numérique, il ne faut pas mettre de quotes (uniquement là pour baliser les chaines de caracteres).

tu fais, de plus un premier Set mRecordset = CreateObject(...)
puis, de suite un autre Set mRecordset =

ton recordset vide, que tu as créé en premier est détruit directement, cette etape est inutile.

en résumé:

Set mConnection = CreateObject("ADODB.Connection")
mConnection.Open "Provider=SQLOLEDB.1;Data Source=CINFPC22\SQLEXPRESS;Initial Catalog=BDCBTEST1;Integrated security=SSPI"

mConnection.Execute "INSERT...."

set mRecordset = mConnection.OpenRecordset("Select * from Utilisateurs where ID_Connexion=12")

MsgBox mRecordset.Fields("Nom")
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de Renfield
Renfield 17307 Messages postés mercredi 2 janvier 2002Date d'inscription 18 janvier 2017 Dernière intervention - 5 août 2008 à 09:13
+1
Utile
pour l'erreur, a voir si la requête est correcte (voir cette histoire de séparateur, pour la valeur 12)

Recordset, une sorte de tableau... oui, si l'on veux.

"Nom", c'est le nom du champ a recupérer, dans l'enregistrement (ligne) actuel

voir après les multes exemples, de manipulation ADO... (et y'en a plein, vraiment)

voir MoveNext, EOF, MoveFirst, RecordCount...
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de Renfield
remifalcon 63 Messages postés mercredi 22 février 2006Date d'inscription 20 novembre 2008 Dernière intervention - 5 août 2008 à 09:06
0
Utile
Yes merci pour ton aide je sens que ça avance bien la

Juste lors de l'exécution de la ligne

set mRecordset = mConnection.OpenRecordset("Select * from Utilisateurs")

 J'ai droit à une petite erreur  "Argument de type incorrect.."  source  ->ADODB

J'ai testé ma requête sur le serveur sql directement ça tourne.

Et sinon mRecordset ça devient une sorte de tableau du coup si la requête renvoi plusieurs champ?
MsgBox mRecordset.Fields("Nom")   -> "Nom" représente quoi?

Et tout cas merci encore tu m'avance bien là
Commenter la réponse de remifalcon
remifalcon 63 Messages postés mercredi 22 février 2006Date d'inscription 20 novembre 2008 Dernière intervention - 5 août 2008 à 09:18
0
Utile
Ok je vais regarder
Merci beaucoup pour ton temps en tout cas.
Commenter la réponse de remifalcon
remifalcon 63 Messages postés mercredi 22 février 2006Date d'inscription 20 novembre 2008 Dernière intervention - 5 août 2008 à 09:54
0
Utile
Re moi
Bon j'ai regardé pour mon erreur "Argument de type incorrect.."  source  ->ADODB
La syntaxe de ma requête sql est valide c'est sur

J'ai regarder sur google  j'ai trouvé qu'il fallait peut être inclure   ADOVBS.INC mais bon en vbs on peut pas inclure grand chose je pense.

Donc le code qui bloque c'est juste la 3eme ligne et le je ne vois vraiment plus pourquoi

Set mConnection = CreateObject("ADODB.Connection")
mConnection.Open "Provider=SQLOLEDB.1;Data Source=......."

set mRecordset = mConnection.OpenRecordset("SELECT LoginUser FROM Utilisateurs")    <-

Je cherche encore si quelqu'un à une idée.
Commenter la réponse de remifalcon
Renfield 17307 Messages postés mercredi 2 janvier 2002Date d'inscription 18 janvier 2017 Dernière intervention - 5 août 2008 à 09:56
Commenter la réponse de Renfield
Renfield 17307 Messages postés mercredi 2 janvier 2002Date d'inscription 18 janvier 2017 Dernière intervention - 5 août 2008 à 10:31
0
Utile
:/ ravi de voir que ca fonctionne, mais ca me laisse coi
Commenter la réponse de Renfield
cs_akaii 109 Messages postés mardi 10 janvier 2006Date d'inscription 14 février 2014 Dernière intervention - 20 janv. 2009 à 23:46
0
Utile
Est-ce que l'un de vous saurait comment faire pour mettre le contenu du rs dans le un fichier CSV ?
Commenter la réponse de cs_akaii
Renfield 17307 Messages postés mercredi 2 janvier 2002Date d'inscription 18 janvier 2017 Dernière intervention - 21 janv. 2009 à 07:28
0
Utile
qu'est-ce qu'un fichier CSV ?

un enregistrement par ligne ; des champs qui se suivent, séparés par des ";"

donc lorsque l'on sait récupérer un champ, et se déplacer dans les enregistrements...

Do Until oRs.EOF
Print #1, oRs.Fields("Nom") & ";" & _
oRs.Fields("Prénom") & ";" & _
oRs.Fields("Adresse1") & ";" & _
oRs.Fields("Adresse2") & ";" & _
oRs.Fields("Adresse3") & ";" & _
oRs.Fields("CP") & ";" & _
oRs.Fields("Ville") & ";" & _
oRs.Fields("CodeCivilité")
oRs.MoveNext
Loop
Commenter la réponse de Renfield
remifalcon 63 Messages postés mercredi 22 février 2006Date d'inscription 20 novembre 2008 Dernière intervention - 5 août 2008 à 10:27
-2
Utile
re  -No offense sir

J'ai trouvé la solution , il fallait faire un execute via un objet ADODB.Recordset

requete = "SELECT * FROM Utilisateurs"
 

set cn=CreateObject("ADODB.Connection")
set rs=CreateObject("ADODB.Recordset")

cn.Open "Provider=SQLOLEDB.1;Data Source=CINFPC22\SQLEXPRESS;Initial Catalog=BDCBTEST1;Integrated security=SSPI"

set rs = cn.Execute (requete)

Voilou
Commenter la réponse de remifalcon

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.