{Access} affecter resultat requete à variable

Fermé
joseNEM Messages postés 45 Date d'inscription lundi 31 août 2009 Statut Membre Dernière intervention 4 novembre 2009 - 27 oct. 2009 à 19:18
 pebkac - 5 nov. 2009 à 19:37
Bonjour,

je veux affecter le résultat d'une fonction comme max(), min(), count() dans une instruction sql a une variable en VB pour la manipuler par la suite(afficher,............)

merci d'avance

4 réponses

Bonjour

Affiche ta requête en mode SQL : tu verras qu'à chaque résultat utilisant une fonction Max(), Min() etc, Access associe un alias, c'est à dire un nom introduit pas le mot 'AS'. Tu peux utiliser cet alias pour récupérer la valeur.
Je viens de faire un exemple utilisant la fonction max, et acces a généré :
SELECT Max(matable.id) AS MaxDeid FROM matable;

J'utiliserai donc Rs("MaxDeid") pour récupérer le résultat.

Si tu écris tes requêtes directement en SQL, c'est à toi de rajouter les "AS nomdalias" là où tu en as besoin
1
blux Messages postés 25991 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 22 avril 2024 3 289
5 nov. 2009 à 11:20
Salut,

on peut faire ça de cette manière :

rst.movefirst
while not rst.eof
msgbox rst!nom_de_champ 'si on le connait
msgbox rst!fields(0) 'si on l'ignore
rst.movenext
wend
1
joseNEM Messages postés 45 Date d'inscription lundi 31 août 2009 Statut Membre Dernière intervention 4 novembre 2009
4 nov. 2009 à 18:48
salut,
j'utilise une variable DAO pour récupérer le résultat d'une requete comportant une fonction comme min(), max(), .... mon pb c'est je ne sais pas comment manipuler ce résultat.
exp:

Dim rst As DAO.Recordset
Set rst = CurrentDb.OpenRecordset("SELECT max(date) FROM absence", dbOpenDynaset)

quelle est la syntaxe pour manipuler rst?

par exemple l'afficher, la traiter...........
-1
Le père a donné la bonne réponse dans le post 1 !!!
SELECT max(machin) AS resultat FROM xxx

donc
Dim rst As DAO.Recordset
Set rst = CurrentDb.OpenRecordset("SELECT max(date) as datemax FROM absence", dbOpenDynaset)
rst.movefirst
while not rst.eof
  msgbox rst!datemax ' on le connait !
rst.movenext
wend
-1