Somme d'un champs d'une table

Le
Eric
Bonjour

J'aimerais additionner le total des champs (De tout les enregistrement )
d'une table dans une variable.

Sois par requête ou par code

Merci

--
Eric Fontaine
Normarh Canada
normarh@videotron.ca
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Jean-marc
Le #18140821
Eric wrote:
Bonjour

J'aimerais additionner le total des champs (De tout les
enregistrement ) d'une table dans une variable.

Sois par requête ou par code



Hello,

voici, par requete et par code.
Dans cet exemple, ma base de données s'appelle bd2.mdb, la
table que j'utilise est Table1 et le champ qui contient les
données dont je veux la somme s'appelle "Quantite".

J'accede à la base via DAO, le principe est identique avec ADO
ou RDO ou autre.

PAr requête, on laisse la base faire le boulot avec SUM.
C'est la métode recommandée.

Par Code, on récupère un recordset sur le champ à sommer, puis
par code on parcourt les records et on somme à la main.

Bref, voici le code pour les 2 méthodes :

' Par requete
Private Sub Command1_Click()
Dim db As Database
Dim rs As Recordset
Dim sql As String
Dim somme As Double

sql = "SELECT SUM(Quantite) FROM Table1"

Set db = OpenDatabase("c:bd2.mdb")
Set rs = db.OpenRecordset(sql)
somme = rs.Fields(0)
rs.Close
db.Close
Set rs = Nothing
Set db = Nothing

MsgBox "Somme des valeurs du champ Quantite" & somme

End Sub

' Par Code
Private Sub Command2_Click()
Dim db As Database
Dim rs As Recordset
Dim sql As String
Dim somme As Double

sql = "SELECT Quantite FROM Table1"

Set db = OpenDatabase("c:bd2.mdb")
Set rs = db.OpenRecordset(sql)
If rs.EOF And rs.BOF Then
Else
rs.MoveFirst
somme = 0
While Not rs.EOF
somme = somme + rs.Fields(0)
rs.MoveNext
Wend
End If
rs.Close
db.Close
Set rs = Nothing
Set db = Nothing

MsgBox "Somme des valeurs du champ Quantite" & somme

End Sub


Bonne suite!

Cordialement;

--
Jean-marc Noury (jean_marc_n2)
Microsoft MVP - Visual Basic
FAQ VB: http://faq.vb.free.fr/
mailto: remove '_no_spam_' ;
Publicité
Poster une réponse
Anonyme