Résultat d'une requete SQL dans une variable

Résolu
myako31 Messages postés 4 Date d'inscription lundi 23 juillet 2007 Statut Membre Dernière intervention 23 juillet 2007 - 23 juil. 2007 à 11:39
myako31 Messages postés 4 Date d'inscription lundi 23 juillet 2007 Statut Membre Dernière intervention 23 juillet 2007 - 23 juil. 2007 à 14:18
Bonjour, 

Je souhaiterai mettre le résultat de ma requete SQL dans une variable, mais n'ayant pas vraiment de connaissance en VB, je n'arrive pas à le faire marcher.

Mon code est le suivant:

    Dim  strSQL, resu As String
                
    On Error Resume Next    strSQL "SELECT codeFamille FROM Family WHERE codeFamille '*' "
    resu = CurrentDb.openrecordset(strSQL, dbopensnapshot).Fields("codeFamille").Value
    On Error GoTo 0

Merci par avance pour les réponses que vous me donnerez

8 réponses

Molenn Messages postés 797 Date d'inscription mardi 7 juin 2005 Statut Membre Dernière intervention 23 février 2011 7
23 juil. 2007 à 11:55
On peut faire ça ?
resu = CurrentDb.openrecordset(strSQL, dbopensnapshot).Fields("codeFamille").Value
C'est une syntaxte que je ne connais pas en tous cas et qui m'étonne, puisqu'une requete SQL peut remonter n enregistrements, on ne peut pas affetcer comme ça la propriété .value à une variable

Pour moi, resu doit déjà être déclaré de type Recordset.
Ensuite, on lui affecte la requête avec un Set
Set resu = CurrentDb.openrecordset(strSQL, dbopensnapshot)
Puis on navigue dans le recordset pour trouver notre enregistrement, au moins le premier :
resu.movefirst

Et là seulement, on peut mettre dans une variable du type voulu le résultat :
Dim Toto as String
Toto = resu.fields("CodeFamille").value

Au passage, je ne m'abuse, c'est du DAO. Puisque tu débutes, autant commencer directement par l'ADO, autant prendre de bonnes habitudes, le DAO sera de moins en moins fiables avec le temps, puisque non maintenu

Molenn
3
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
23 juil. 2007 à 11:46
SAlut,
Si tu enlèves les On Error Resume NExt tu pourras voir si il y a une erreur et si oui laquelle (ca aide pour développer).
De plus On Error Resume NExt Ignore toutes les erreurs alors ce n'est aps non plus très propre.

@+: Ju£i?n
Pensez: Réponse acceptée
0
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
23 juil. 2007 à 11:52
Hum, t'es sûr que c'est du .net ??? Ca ressemble étrangement à du vb6 !
0
myako31 Messages postés 4 Date d'inscription lundi 23 juillet 2007 Statut Membre Dernière intervention 23 juillet 2007
23 juil. 2007 à 11:54
Si j'enlève On Error Resume Next, il y a bien une erreur qui est

"argument non valide"

Mais ça ne m'aide pas vu que je ne comprends rien à VB !
0

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

Posez votre question
Molenn Messages postés 797 Date d'inscription mardi 7 juin 2005 Statut Membre Dernière intervention 23 février 2011 7
23 juil. 2007 à 11:57
Et pour DARKSIDIOUS, je dirais même plus, l'emploi de CurrentDb me fait penser qu'il s'agit de VBA ACCESS

Molenn
0
myako31 Messages postés 4 Date d'inscription lundi 23 juillet 2007 Statut Membre Dernière intervention 23 juillet 2007
23 juil. 2007 à 12:04
Même avec ce que tu m'as dit Molenn, ça ne marche toujours pas.
J'ai toujours la même erreur "argument non valide"

Je ne comprends pas d'ou elle vient.
0
Molenn Messages postés 797 Date d'inscription mardi 7 juin 2005 Statut Membre Dernière intervention 23 février 2011 7
23 juil. 2007 à 12:18
Heu, je viens de voir autre chose :strSQL "SELECT codeFamille FROM Family WHERE codeFamille '*' "

Quand on veut utiliser l'astérisque dans une requête SQL, c'est pour remplacer une chaîne de caractère. Faire un égal ne fonctionnera donc pas.
Argument non valide ne signifie pas une erreur dans le programme (quoique); mais une erreur dans la requête : essaye plutôt
strSQL = "SELECT codeFamille FROM Family WHERE codeFamille LIKE '*' "

Molenn
0
myako31 Messages postés 4 Date d'inscription lundi 23 juillet 2007 Statut Membre Dernière intervention 23 juillet 2007
23 juil. 2007 à 14:18
Non mais l'erreur n'est pas du au = à la place du like, parce que je l'avais déjà corrigée celle là.

Il doit  y avoir un autre problème avec mes arguments dans

Set resu = CurrentDb.openrecordset(strSQL, dbopensnapshot)

parce que c'est au nuveau de cette ligne que j'ai le message argument invalide
0
Rejoignez-nous