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 06/06/2011, 16h30   #1
Membre du Club
 
Homme Jérémy B-ACD-AD- IJ
Étudiant
Inscription : avril 2011
Messages : 106
Détails du profil
Informations personnelles :
Nom : Homme Jérémy B-ACD-AD- IJ
Âge : 21
Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : avril 2011
Messages : 106
Points : 52
Points : 52
Par défaut Totaux d'une liste

Bonjour,

je developpe un formulaire qui est en faite un gros filtre pour des tables.
Le résultat s'affiche dans une liste.

J'aimerais pouvoir compter:

le nombre de ligne de cette liste (le nombre de résultat)
la somme des champs longueur
la somme des champs longueur où le champ composant = POSE
la somme des champs longueur où le champ composant = DEPOSE

Ma requette ressemble à ça
Code :
1
2
3
SELECT MAJ_AEP.ID_MAJ, MAJ_AEP.DATE_FIN_TRAV, MAJ_AEP.COMMUNE, MAJ_AEP.RUE, MAJ_AEP.DIAMETRE, MAJ_AEP.LONGUEUR, MAJ_AEP.MATERIAU, MAJ_AEP.COMPOSANT  
FROM MAJ_AEP 
WHERE MAJ_AEP.DATE_FIN_TRAV > 20090101 AND MAJ_AEP.DATE_FIN_TRAV < 20101231 AND MAJ_AEP.ID_MAJ Like "SESSION-1" ORDER BY ID_MAJ ;
Merci de m'aider !
pikameuh est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/06/2011, 20h59   #2
Modérateur
 
Homme René MAROT
Inscription : octobre 2005
Messages : 5 470
Détails du profil
Informations personnelles :
Nom : Homme René MAROT
Localisation : Canada

Informations forums :
Inscription : octobre 2005
Messages : 5 470
Points : 7 549
Points : 7 549
Tu affiches tes résulats dans un formulaire ou directement la requête ?

Si c'est un formulaire ce qui suppose que la structure de tes résultats est constante tu peux regarder les fonction DCount() et DSum() et les inclure dans le pied de ton formulaire.

Si tu affiches dans une requête, tu peux peut-être arriver à intégrer ces résultats en utilisant 2 requêtes de sélection (une pour les résultats et une pour les totaux) et une requête UNION pour afficher le tout. Là aussi il faudrait que ta structure soit constante.

Si tu as besoins de détails, demande.

A+
__________________
Vous voulez une réponse rapide et efficace à vos questions téchniques ? Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
marot_r est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 07/06/2011, 08h35   #3
Membre du Club
 
Homme Jérémy B-ACD-AD- IJ
Étudiant
Inscription : avril 2011
Messages : 106
Détails du profil
Informations personnelles :
Nom : Homme Jérémy B-ACD-AD- IJ
Âge : 21
Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : avril 2011
Messages : 106
Points : 52
Points : 52
Bonjour, merci de m'aider !

Alors le résultat de ma reqette est une liste (pas un formulaire)

Je pense que l'on peut compter le nombre de ligne d'une liste car la liste contient la méthode addItem.

Mais je ne vois pas comment lui dire :
S1 = somme la colonne 5 quand la colonne 6 = "E-TRONCO".
S2 = somme la colonne 5 quand la colonne 6 = "E-TRODEP".

Pour pouvori faire ensuite :
pikameuh est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/06/2011, 09h36   #4
Membre du Club
 
Homme Jérémy B-ACD-AD- IJ
Étudiant
Inscription : avril 2011
Messages : 106
Détails du profil
Informations personnelles :
Nom : Homme Jérémy B-ACD-AD- IJ
Âge : 21
Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : avril 2011
Messages : 106
Points : 52
Points : 52
j'ai essayé ceci :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
Private Sub TotauMaj()
    Dim totLigne, totPose, totDepose, temp As Double
    Dim i As Long
 
    ' Afficher le nombre total de ligne
    totLigne = Me.ListeResultat.ListCount
    Me.LblTotLigneValue.Caption = totLigne
 
 
     MsgBox (Me.ListeResultat.Column(7, i) & " - " & Me.ListeResultat.Column(5, i))
 
    ' Compter les longueurs pose et depose
    For i = 0 To totLigne - 1
        If (Me.ListeResultat.Column(7, i) = "E-TRONCO") Or (Me.ListeResultat.Column(7, i) = "A-COLLEC") Then
            temp = CDbl(Me.ListeResultat.Column(5, i))
            totPose = totPose + temp
        ElseIf (Me.ListeResultat.Column(7, i) = "E-TRODEP") Or (Me.ListeResultat.Column(7, i) = "A-TRODEP") Then
            temp = CDbl(Me.ListeResultat.Column(5, i))
            totDepose = totDepose + temp
        End If
    Next
 
    ' Afficher les resultat
    LblTotPoseValue.Caption = totPose
    LblTotDeposeValue.Caption = totDepose
 
End Sub
Mais j'ai des problème de type entre les string Me.ListeResultat.Column(5, i) et leurs convertion en double...
pikameuh est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/06/2011, 17h50   #5
Modérateur
 
Homme René MAROT
Inscription : octobre 2005
Messages : 5 470
Détails du profil
Informations personnelles :
Nom : Homme René MAROT
Localisation : Canada

Informations forums :
Inscription : octobre 2005
Messages : 5 470
Points : 7 549
Points : 7 549
Essaye en utilisant une requête de regroupement ou les fonctions DCount() et DSum() basée sur la même source de données que ta liste.

Cela devrait te permettre de faire les calculs à partir de données brutes plutôt que celles affichées.

A+
__________________
Vous voulez une réponse rapide et efficace à vos questions téchniques ? Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
marot_r 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 19h05.


 
 
 
 
Partenaires

Hébergement Web