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 :

imbrication de requete pour somme


Sujet :

VBA Access

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de @rkane
    Homme Profil pro
    developpeur amateur dans mon cadre professionnel
    Inscrit en
    Juin 2006
    Messages
    521
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 66
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : developpeur amateur dans mon cadre professionnel
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2006
    Messages : 521
    Par défaut imbrication de requete pour somme
    bonjour à tous,

    j'ai un souci d'imbrication de 2 requêtes en vba pour obtenir une somme.

    Dans un premier temps je filtre les enregistrements dans une tables selon 3 critères,
    en 2eme temps, j'ai besoin d'obtenir la somme d'une colonne des enregistrements restants. (la colonne "Duree" qui correspond à un nbre de minutes)

    J'arrive à bien faire fonctionner avec des requêtes enregistrées via le KBE mais dans le code ça coince.
    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
    Dim SQL As String, CumulHeures As Integer
     
    RecordSource = "SELECT * FROM Vacations WHERE Vacation <= Date() And Year(Vacation) = Forms!FormHoraires!ChoixAnnee And Nom = Forms!FormHoraires!Nom ORDER BY Vacation DESC;"
     
    SQL = "SELECT * FROM Vacations WHERE Vacation <= Date() And Year(Vacation) = Forms!FormHoraires!ChoixAnnee And Nom = Forms!FormHoraires!Nom ORDER BY Vacation DESC;"
     
    SQL = "SELECT Sum(Duree) AS SommeDeDuree FROM SQL;"
     
    DoCmd.RunSQL SQL
     
    CumulHeures = SQL
     
    NbHeures = Fix(CumulHeures / 60)
    NbMinutes = CumulHeures - (NbHeures * 60)
    Informations = NbHeures & " heures et " & NbMinutes & " minutes comptabilisées en " & ChoixAnnee & " pour M. " & Forms!FormHoraires!Nom
    Merci d'avance pour votre aide

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour

    En dehors de la validité de tes requêtes, trois conseils :

    1 - Il faut éviter de prendre la même variable (SQL), fais en deux (SQL1 et SQL2)

    2 - Dans ta deuxième requête, il cherche une table SQL , il faut écrire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SQL = "SELECT Sum(Duree) AS SommeDeDuree FROM (" & "SQL" & ");"
    3 - Quand tu bascules des requêtes en VBA, il faut extraire les données qui viennent d'un formulaire et les rajouter par concaténation (un peu comme ci-dessus).

    Philippe
    Dernière modification par Invité ; 19/03/2011 à 18h54.

  3. #3
    Membre éclairé Avatar de @rkane
    Homme Profil pro
    developpeur amateur dans mon cadre professionnel
    Inscrit en
    Juin 2006
    Messages
    521
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 66
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : developpeur amateur dans mon cadre professionnel
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2006
    Messages : 521
    Par défaut
    Merci pour l'info et merci de l'intérêt porté à ma question, mais à force de chercher, j'ai trouvé !

    voici le code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    CumulTemps As Long
    RecordSource = "SELECT * FROM Vacations WHERE Vacation <= Date() And Year(Vacation) = Forms!FormHoraires!ChoixAnnee And Nom = Forms!FormHoraires!Nom ORDER BY Vacation DESC;"
    CumulTemps = DSum("[Duree]", "[Vacations]", "Vacation <= Date() And Year(Vacation) = Forms!FormHoraires!ChoixAnnee And Nom = Forms!FormHoraires!Nom ")
    NbHeures = Fix(CumulTemps / 60)
    NbMinutes = CumulTemps - (NbHeures * 60)
    Informations = NbHeures & " heures et " & NbMinutes & " minutes comptabilisées en " & ChoixAnnee & " pour M. " & Forms!FormHoraires!Nom

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

Discussions similaires

  1. [AC-2000] Comment faire la somme des heures en requete pour un état ?
    Par angelevil dans le forum Requêtes et SQL.
    Réponses: 8
    Dernier message: 08/09/2009, 02h19
  2. Requete pour trier un état sur une somme partielle ?
    Par thierry.drouet dans le forum Access
    Réponses: 5
    Dernier message: 26/10/2006, 16h45
  3. Réponses: 21
    Dernier message: 01/08/2006, 20h44
  4. Comment modifie une requete pour avoir des sommes?
    Par F@ce27 dans le forum Langage SQL
    Réponses: 8
    Dernier message: 16/06/2006, 13h47
  5. [Requete] Calcul Somme entre deux temps pour chaque jour
    Par nico33307 dans le forum Requêtes et SQL.
    Réponses: 5
    Dernier message: 21/03/2006, 00h58

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