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

Juliaz -  
f894009 Messages postés 17417 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,

3 réponses

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

    Merci yg_be, çà marche très bien.

    Merci encore
    0
  3. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
     
    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