Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Somme d'un champ dans DAO

3 réponses
Avatar
Julien
bonjour à tous,

J'ai une question concernant DAO sous Access 2000. Est-ce qu'il est possible
d'effectuer la somme d'un champ d'un recordset DAO sans utiliser une boucle
qui passe sur tous les enregistrements du recordset. Par exemple :

Dim rst As DAO.Recordset
Dim strSql As String
Dim db As DAO.Database
Dim monTotal as Currency

Set db = CurrentDb
strSql = "SELECT * FROM MATABLE"

Set rst = db.OpenRecordset(strSql, dbOpenDynaset)

'Est-ce qu'il existe un moyen pour obtenir la somme du champ 1
(contenant des quantités) de mon recordset rst
monTotal = ???

Je vous remercie d'avance de votre aide et vous souhaite une bonne journée
Julien

3 réponses

Avatar
Eric
Bonjour,

Le plus simple serait d'utiliser la fonction DSum()[complément dans
l'aide] sans avoir à créer un recordset.

Dim TotalQte as Long
TotalQte=DSum("MonChampQte","MaTable")

A+
Eric

bonjour à tous,

J'ai une question concernant DAO sous Access 2000. Est-ce qu'il est possible
d'effectuer la somme d'un champ d'un recordset DAO sans utiliser une boucle
qui passe sur tous les enregistrements du recordset. Par exemple :

Dim rst As DAO.Recordset
Dim strSql As String
Dim db As DAO.Database
Dim monTotal as Currency

Set db = CurrentDb
strSql = "SELECT * FROM MATABLE"

Set rst = db.OpenRecordset(strSql, dbOpenDynaset)

'Est-ce qu'il existe un moyen pour obtenir la somme du champ 1
(contenant des quantités) de mon recordset rst
monTotal = ???

Je vous remercie d'avance de votre aide et vous souhaite une bonne journée
Julien




Avatar
Julien
Merci Eric de ta réponse.

C'est vrai que dans ce cas, la fonction Dsum est plus appropriée, mais je
cherchais juste à illustrer simplement ma question. En fait, le recordset
obtenu varie en fonction des critères choisis dans un formulaire de
recherche (le recordset ne provient pas d'une table).

Donc, si quelqu'un a un tuyau... pour effectuer un dsum directement sur un
recordset DAO.

Merci et bonne soirée
Julien

"Eric" a écrit dans le message de
news:
Bonjour,

Le plus simple serait d'utiliser la fonction DSum()[complément dans
l'aide] sans avoir à créer un recordset.

Dim TotalQte as Long
TotalQte=DSum("MonChampQte","MaTable")

A+
Eric

bonjour à tous,

J'ai une question concernant DAO sous Access 2000. Est-ce qu'il est
possible


d'effectuer la somme d'un champ d'un recordset DAO sans utiliser une
boucle


qui passe sur tous les enregistrements du recordset. Par exemple :

Dim rst As DAO.Recordset
Dim strSql As String
Dim db As DAO.Database
Dim monTotal as Currency

Set db = CurrentDb
strSql = "SELECT * FROM MATABLE"

Set rst = db.OpenRecordset(strSql, dbOpenDynaset)

'Est-ce qu'il existe un moyen pour obtenir la somme du champ 1
(contenant des quantités) de mon recordset rst
monTotal = ???

Je vous remercie d'avance de votre aide et vous souhaite une bonne
journée


Julien






Avatar
3stone
Salut,

"Julien"
| C'est vrai que dans ce cas, la fonction Dsum est plus appropriée, mais je
| cherchais juste à illustrer simplement ma question. En fait, le recordset
| obtenu varie en fonction des critères choisis dans un formulaire de
| recherche (le recordset ne provient pas d'une table).
|
| Donc, si quelqu'un a un tuyau... pour effectuer un dsum directement sur un
| recordset DAO.



SELECT Sum(Champ) AS SommeDuChamp FROM LaTable;

Mais pour un champ, autant utiliser la fonction de domaine DSum()
cela évite les Dim, Set, Close et re-Set...

Si l'on ouvre un recorset, c'est bien pour traiter chacun / ou partie
des enregistrements...



--
A+
Pierre (3stone) Access MVP
Perso: http://users.skynet.be/accesshome/
Conseils MPFA: http://users.skynet.be/mpfa/
Email : http://www.cerbermail.com/?Xfg61Z3IQw