recupérer un select count dans un vbs
Le
---DGI972---

Bonjour,
J'essaye de récupérer le résultat d'un select count (*) dans une
variable pour l'afficher (dans un premier temps) mais j'ai droit a un
beau :
Nombre d'arguments ou affectation de propriété incorrects.
Je suis sur de ma requête et de mon OdbcDSN car elle fonctionne a part.
Par contre c'est la première fois que je n'attends pas de retour du
résultat d'une table mais de la valeur du compteur count.
Voici le bout de vbs:
OdbcDSN = "DSN=DNC;UID=sa;PWD="
Set connect = CreateObject("ADODB.Connection")
Set fso = CreateObject("Scripting.FileSystemObject")
connect.Open OdbcDSN
sql="select count (*) from chq where val7 ='"&BQ&"' and val8 ='"&T&"'"
Set resultSet = connect.Execute(sql)
WScript.Echo resultSet()
VIGN= resultSet()
resultSet.Close
connect.Close
WScript.Echo "Fin du Traitement STATS : Il y a eu "&VIGN&" de vignettes
archivée(s)pour la "&BQ&" , à la date de Traitement du :"&T&" !"
Set connect = Nothing
Set VIGN = Nothing
WScript.Quit(0)
Merci d'avance.
J'essaye de récupérer le résultat d'un select count (*) dans une
variable pour l'afficher (dans un premier temps) mais j'ai droit a un
beau :
Nombre d'arguments ou affectation de propriété incorrects.
Je suis sur de ma requête et de mon OdbcDSN car elle fonctionne a part.
Par contre c'est la première fois que je n'attends pas de retour du
résultat d'une table mais de la valeur du compteur count.
Voici le bout de vbs:
OdbcDSN = "DSN=DNC;UID=sa;PWD="
Set connect = CreateObject("ADODB.Connection")
Set fso = CreateObject("Scripting.FileSystemObject")
connect.Open OdbcDSN
sql="select count (*) from chq where val7 ='"&BQ&"' and val8 ='"&T&"'"
Set resultSet = connect.Execute(sql)
WScript.Echo resultSet()
VIGN= resultSet()
resultSet.Close
connect.Close
WScript.Echo "Fin du Traitement STATS : Il y a eu "&VIGN&" de vignettes
archivée(s)pour la "&BQ&" , à la date de Traitement du :"&T&" !"
Set connect = Nothing
Set VIGN = Nothing
WScript.Quit(0)
Merci d'avance.
---DGI972--- a écrit :
Essaye plutot comme cela si c'est du SQL SERVER :
' OdbcDSN = "DSN=DNC;UID=sa;PWD="
Odbc = "driver={SQL Server};SERVER7.0.0.1;" & _
"UID=sa;PWD=;DATABASE=LeNomDeLaBase"
' Remplace l'adresse IP par l'adresse IP de ton SQL SERVER ainsi que le
nom de la base
Set connect = CreateObject("ADODB.Connection")
Set fso = CreateObject("Scripting.FileSystemObject")
connect.Open Odbc
sql="SELECT count (*) FROM chq " & _
"WHERE val7 ='" & BQ & "' and val8 ='" & T & "';"
Set resultSet = connect.Execute(sql)
' WScript.Echo resultSet()
WScript.Echo resultSet.Fields(0)
VIGN=resultSet.Fields(0)
resultSet.Close
connect.Close
WScript.Echo "Fin du Traitement STATS : Il y a eu " & VIGN & _
" de vignettes archivée(s)pour la " & BQ & _
" , à la date de Traitement du :" & T & " !"
Set resultSet = Nothing
Set connect = Nothing
Set fso = Nothing
WScript.Quit(0)
Votre script fonctionne correctement avec Odbc au lieu de mon OdbcDSN.
Je suis dégouté car mon bout de vbs fonctionne dans une autre
aplication et je n'ai fait que le reprendre et au lieu d'avoir:
sql="select* from chq where val4 ='000910182115' and val5
Set resultSet = connect.Execute(sql)
resultSet.MoveFirst
Do While Not resultSet.eof
WScript.Echo resultSet.fields("val6").Value
resultSet.MoveNext
Loop
je voulais transformer le résulat de la requête SQL sql="SELECT count
(*) FROM chq " & "WHERE val7 ='" & BQ & "' and val8 ='" & T & "';"
et je savais pas comment récupérer le résultat sans la 'val6'
resultSet.fields("val6").Value du count.
Dommage, je fais donc refaire tous le vbs avec un connexion en obdc
pour récupérer le resultSet.Fields(0).
Merci
---DGI972--- a écrit :
Pour utiliser l'autre syntaxe que tu avais déja utilisé il vaut mieux
nommer ton champ calculé :
sql="SELECT count(*) AS Comptage FROM chq WHERE val7 ='" & BQ & "' and
val8 ='" & T & "';"
[....]
WScript.Echo resultSet.Fields("Comptage").Value
Ca marche pas.
J'ai un message d'erreur ADODB.Recordset:
Impossible de trouver l'objet dans la collection correspondant au nom
ou à la référence ordinal demandé.
Voiçi le code utilisé:
connect.Open OdbcDSN
sql="select count (*) from chq where val7 ='"&BQ&"' and val8 ='"&T&"'"
Set resultSet = connect.Execute(sql)
WScript.Echo resultSet.Fields("Comptage").Value
VIGN=resultSet.Fields("Comptage").Value
resultSet.Close
connect.Close
WScript.Echo "Fin du Traitement STATS : Il y a eu "&VIGN&" de vignettes
archivée(s)pour la "&BQ&" , à la date de Traitement du :"&T&" !"
OUPS Désolé
Cela fonctionne correctement.
j'avais raté le SELECT count(*) AS Comptage
Merci merci merci.