Résultat d'une requete SQL dans une variable [Résolu]

Messages postés
4
Date d'inscription
lundi 23 juillet 2007
Dernière intervention
23 juillet 2007
- - Dernière réponse : myako31
Messages postés
4
Date d'inscription
lundi 23 juillet 2007
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
Afficher la suite 

Votre réponse

8 réponses

Meilleure réponse
Messages postés
797
Date d'inscription
mardi 7 juin 2005
Dernière intervention
23 février 2011
3
Merci
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

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 101 internautes ce mois-ci

Commenter la réponse de Molenn
Messages postés
7401
Date d'inscription
mercredi 23 avril 2003
Dernière intervention
6 avril 2012
0
Merci
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
Commenter la réponse de jrivet
Messages postés
15838
Date d'inscription
jeudi 8 août 2002
Dernière intervention
4 mars 2013
0
Merci
Hum, t'es sûr que c'est du .net ??? Ca ressemble étrangement à du vb6 !
Commenter la réponse de cs_DARKSIDIOUS
Messages postés
4
Date d'inscription
lundi 23 juillet 2007
Dernière intervention
23 juillet 2007
0
Merci
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 !
Commenter la réponse de myako31
Messages postés
797
Date d'inscription
mardi 7 juin 2005
Dernière intervention
23 février 2011
0
Merci
Et pour DARKSIDIOUS, je dirais même plus, l'emploi de CurrentDb me fait penser qu'il s'agit de VBA ACCESS

Molenn
Commenter la réponse de Molenn
Messages postés
4
Date d'inscription
lundi 23 juillet 2007
Dernière intervention
23 juillet 2007
0
Merci
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.
Commenter la réponse de myako31
Messages postés
797
Date d'inscription
mardi 7 juin 2005
Dernière intervention
23 février 2011
0
Merci
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
Commenter la réponse de Molenn
Messages postés
4
Date d'inscription
lundi 23 juillet 2007
Dernière intervention
23 juillet 2007
0
Merci
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
Commenter la réponse de myako31

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.