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

Fermé
Juliaz - 6 juin 2017 à 15:34
f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 - 7 juin 2017 à 16:19
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,

3 réponses

yg_be Messages postés 22693 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 17 avril 2024 1 471
7 juin 2017 à 00:12
bonsoir, par exemple:
'traitement
 Do Until rst.EOF
         v = rst![np]
         MsgBox v
         rst.MoveNext
Loop
1
Bonjour,

Merci yg_be, çà marche très bien.

Merci encore
0
f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 701
Modifié le 7 juin 2017 à 16:20
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