IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VBA Access Discussion :

[VBA] Récupérer plusieurs résultats dans un recordset


Sujet :

VBA Access

  1. #1
    Membre habitué
    Inscrit en
    Octobre 2006
    Messages
    467
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 467
    Points : 144
    Points
    144
    Par défaut [VBA] Récupérer plusieurs résultats dans un recordset
    Bonjours,
    je sais comment récupérer le résultat d'une requete suivant un numéros (pour un enregistrement unique ) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    'Requête SQL
    sql = "SELECT heure, date_incident, evaluation_degat from incident where num_incident = " & Me!incident.Value & ""
     
    ' Exécution de la requète
    Set rs = db.OpenRecordset(sql)
     
    ' On se place au premier enregistrement concerné
    rs.MoveFirst
     
     
    ' Récupération du résultat
    Me!heure_incident.Value = rs.Fields(0).Value
    Mais comment je fais pour récupérer plusieurs résultats d'une requete (plusieurs enregistrement) comme par exemple pour :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Select count(*), type_incident from incident, type_incident where incident.type_incident=type_incident.num_incident;
    Merci de votre aide.

  2. #2
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    Novembre 2006
    Messages
    20 594
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 79
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de loisirs (ayant trouvé tous les jours !)
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 594
    Points : 281 907
    Points
    281 907
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Do until Rs.eof    ' pour arrêter la boucle après épuisement des cas
                              'sélectionnés
    ' ici ce que tu dois faire : me.xxx= ......
    Rs.MoveNext   ' pour passer au suivant
    loop  ' continuer avec le suivant

  3. #3
    Expert confirmé
    Avatar de pc75
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    3 662
    Détails du profil
    Informations personnelles :
    Âge : 69
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2004
    Messages : 3 662
    Points : 4 047
    Points
    4 047
    Par défaut
    Bonjour,

    Si j'ai bien compris ta question, je dirai qu'il faut boucler sur ton recordset :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     
    'Requête SQL
    sql = "SELECT heure, date_incident, evaluation_degat from incident where num_incident = " & Me!incident.Value & ""
     
    ' Exécution de la requète
    Set rs = db.OpenRecordset(sql)
     
    if not rs.eof then
       ' On se place au premier enregistrement concerné
       rs.MoveFirst
       do while not rs.eof
          msgbox rs.Fields(0).Value
          rs.movenext
       loop
    end if
     
    ' Récupération du résultat
    Me!heure_incident.Value = rs.Fields(0).Value

  4. #4
    Membre habitué
    Inscrit en
    Octobre 2006
    Messages
    467
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 467
    Points : 144
    Points
    144
    Par défaut
    j'ai une erreur sur ma requete :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sql = "Select count(*) as nb_total, sous_type_incident.libelle_incident from incident, sous_type_incident WHERE ((incident.date_incident) Between #" & Month(nom_date.Value) & "/" & Day(nom_date.Value) & "/" & Year(nom_date.Value) & "# And #" & Month(var_date.Value) & "/" & Day(var_date.Value) & "/" & Year(var_date.Value) & "#) And ((incident.nature_incident)=(sous_type_incident.libelle_incident))"
    voici le message :
    "Erreur d'execution '3122' :
    Vous avez essayé d'executer une requete ne comprenant pas l'expression spécifié 'libelle_incident' comme une partie de la fonction d'agrégat."

  5. #5
    Expert éminent sénior

    Avatar de Tofalu
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Octobre 2004
    Messages
    9 501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Octobre 2004
    Messages : 9 501
    Points : 32 311
    Points
    32 311
    Par défaut
    En effet la requête est fausse.

    Tous les champs du select qui ne sont pas utilisés dans une fonction d'aggragat( count, max, sum, min, avg) doivent figurer dans le group by

  6. #6
    Membre habitué
    Inscrit en
    Octobre 2006
    Messages
    467
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 467
    Points : 144
    Points
    144
    Par défaut
    Ok merci. je vais testé.

  7. #7
    Membre habitué
    Inscrit en
    Octobre 2006
    Messages
    467
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 467
    Points : 144
    Points
    144
    Par défaut
    Ok merci ça marche.

    ==> Encore désolé pour le mauvais choix du titre, merci à toi de l'avoir rectifier.

    "Et un résolu .. et un "
    @+

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [VBA Excel] Une même macro pour plusieurs CheckBox
    Par Choupett' dans le forum Macros et VBA Excel
    Réponses: 11
    Dernier message: 16/06/2006, 13h54
  2. [VBA-E] Conserver une variable pour plusieurs modules
    Par pilote301152 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 13/05/2006, 13h14
  3. [VBA-E]Fermer classeur EXCEL parmi plusieurs
    Par flyfrog dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 30/04/2006, 11h54
  4. [VBA-E]une macro unique pour plusieurs fichiers excel
    Par fanchic29 dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 21/04/2006, 16h20
  5. [VBA-E] Impression page paire sur plusieurs onglets
    Par liop49 dans le forum Macros et VBA Excel
    Réponses: 23
    Dernier message: 17/02/2005, 15h19

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo