Récupérer le résultat d'une requête sql sous vba

Juliaz -  
f894009 Messages postés 17277 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour ,
Je tourne en rond depuis une bonne heure.
Je souhaite récupérer le résultat d'une requête Access et le mettre dans une variable qui me servira plus tard.

J'ai utilisé le code suivant:

Function recherche()
Dim rst As DAO.Recordset
Dim sSQL As String ' Ouverture de la base de données
Dim v As Variant
 
sSQL = "Select * From table2 where [np]='vo jacques'"
 
'open
Set rst = CurrentDb.OpenRecordset(sSQL, dbOpenForwardOnly, dbReadOnly)
 
'traitement
v = rst![np]
MsgBox v
 
'close
rst.Close
End Function


Ce code marche bien mais je ne récupère que le premier élément de la requête.
Comment pourrais-je faire pour récupérer tous les résultats de la requête?

Merci d'avance,
A voir également:

3 réponses

yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 584
 
bonsoir, par exemple:
'traitement
 Do Until rst.EOF
         v = rst![np]
         MsgBox v
         rst.MoveNext
Loop
1
Juliaz
 
Bonjour,

Merci yg_be, çà marche très bien.

Merci encore
0
f894009 Messages postés 17277 Date d'inscription   Statut Membre Dernière intervention   1 715
 
Bonjour,
Trouve ici:
https://www.generation-nt.com/reponses/transferer-un-recordset-dans-un-tableau-en-vba-entraide-418091.html

MichDenis
Le 09/03/2005 à 16:54 #2053631
Bonjour Thierry,

Dim Tblo as variant

Tblo = Rst.getrows

Et pour limiter le nombre de lignes copieées dans le tableau

Copie seulement les 25 premiers enregistrements
tblo = rst.getrows(25)


Salutations!

A vous d'adapter votre code
Par contre si vous ne changez rien a votre fonction, votre tableau ne vous servira pas "plus tard"
0