Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > VBA Access
VBA Access Le forum pour les questions relatives au code VBA sous Access, et à son environnement de développement VBE.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 19/03/2011, 13h09   #1
Membre éclairé
 
Avatar de @rkane
 
Homme Patrick
developpeur amateur dans mon cadre professionnel
Inscription : juin 2006
Messages : 499
Détails du profil
Informations personnelles :
Nom : Homme Patrick
Âge : 52
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 : 499
Points : 360
Points : 360
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 :
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
__________________

@rkane est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 19/03/2011, 18h26   #2
Rédacteur/Modérateur
 
Avatar de Philippe JOCHMANS
 
Homme Philippe JOCHMANS
Développeur informatique
Inscription : mai 2005
Messages : 17 613
Détails du profil
Informations personnelles :
Nom : Homme Philippe JOCHMANS
Âge : 44
Localisation : France, Loir et Cher (Centre)

Informations professionnelles :
Activité : Développeur informatique
Secteur : Communication - Médias

Informations forums :
Inscription : mai 2005
Messages : 17 613
Points : 30 968
Points : 30 968
Envoyer un message via MSN à Philippe JOCHMANS Envoyer un message via Skype™ à Philippe JOCHMANS
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 :
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
__________________
Détaillez vos questions, sinon vous aurez des réponses erronées et vous irez tout droit dans le et lisez les règles sinon
Si vous pensez commencer sans un livre, oublier : livres pour débuter
Vous pouvez consulter mes articles sur Access et PowerPoint
Le blog Office.

Inutile de m'envoyer un MP pour des questions techniques ou de me relancer , je n'y répondrais pas.
Philippe JOCHMANS est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/03/2011, 18h57   #3
Membre éclairé
 
Avatar de @rkane
 
Homme Patrick
developpeur amateur dans mon cadre professionnel
Inscription : juin 2006
Messages : 499
Détails du profil
Informations personnelles :
Nom : Homme Patrick
Âge : 52
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 : 499
Points : 360
Points : 360
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 :
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
__________________

@rkane est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 22h43.


 
 
 
 
Partenaires

Hébergement Web