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

myako31 4 Messages postés lundi 23 juillet 2007Date d'inscription 23 juillet 2007 Dernière intervention - 23 juil. 2007 à 11:39 - Dernière réponse : myako31 4 Messages postés lundi 23 juillet 2007Date d'inscription 23 juillet 2007 Dernière intervention
- 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

Molenn 797 Messages postés mardi 7 juin 2005Date d'inscription 23 février 2011 Dernière intervention - 23 juil. 2007 à 11:55
+3
Utile
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
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de Molenn
jrivet 7401 Messages postés mercredi 23 avril 2003Date d'inscription 6 avril 2012 Dernière intervention - 23 juil. 2007 à 11:46
0
Utile
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
cs_DARKSIDIOUS 15838 Messages postés jeudi 8 août 2002Date d'inscription 4 mars 2013 Dernière intervention - 23 juil. 2007 à 11:52
0
Utile
Hum, t'es sûr que c'est du .net ??? Ca ressemble étrangement à du vb6 !
Commenter la réponse de cs_DARKSIDIOUS
myako31 4 Messages postés lundi 23 juillet 2007Date d'inscription 23 juillet 2007 Dernière intervention - 23 juil. 2007 à 11:54
0
Utile
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
Molenn 797 Messages postés mardi 7 juin 2005Date d'inscription 23 février 2011 Dernière intervention - 23 juil. 2007 à 11:57
0
Utile
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
myako31 4 Messages postés lundi 23 juillet 2007Date d'inscription 23 juillet 2007 Dernière intervention - 23 juil. 2007 à 12:04
0
Utile
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
Molenn 797 Messages postés mardi 7 juin 2005Date d'inscription 23 février 2011 Dernière intervention - 23 juil. 2007 à 12:18
0
Utile
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
myako31 4 Messages postés lundi 23 juillet 2007Date d'inscription 23 juillet 2007 Dernière intervention - 23 juil. 2007 à 14:18
0
Utile
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.