myako31
Messages postés4Date d'inscriptionlundi 23 juillet 2007StatutMembreDernière intervention23 juillet 2007
-
23 juil. 2007 à 11:39
myako31
Messages postés4Date d'inscriptionlundi 23 juillet 2007StatutMembreDernière intervention23 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
Molenn
Messages postés797Date d'inscriptionmardi 7 juin 2005StatutMembreDernière intervention23 février 20117 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
jrivet
Messages postés7393Date d'inscriptionmercredi 23 avril 2003StatutMembreDernière intervention 6 avril 201260 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.
Molenn
Messages postés797Date d'inscriptionmardi 7 juin 2005StatutMembreDernière intervention23 février 20117 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 '*' "