OVH Cloud OVH Cloud

DSUM, et nature du second parametre

2 réponses
Avatar
Bernard M.Y.R
Bonjour,

Grace a notre ami 3Stone, j'ai pu realiser une action elementaire avec D
Sum(champ, table, critere)
Ici, la nature du second parametre est une table. Desormais, je desire a
voir comme origine du domaine, les enregistrements d'un formulaire.

Ce formulaire a, dans son evenement load, la construction d'une string s
ql, a partir d'une table, avec un champ numerique, et un champ logique v
rai/faux, une clause where, avec ce champ logique = faux. (+ d'autres ch
amps et conditions).
Le formulaire possede dans son pied, une textbox.
Donc le formulaire affiche une serie d'enregistrements, avec chacun une
valeur numerique et une case a cocher.
Je desire avoir dans la textbox du pied, la somme des champs numerique a
yant la coase cochee dans le formulaire (et non tout ceux de la table).
Donc;

Comment signifier a DSum() SomDom(), que le domaine est le recordsource,
et non une table ?

Merci d'avance.

ps La propriete recordsource n'est pas fixee par l'interface de construc
tion du formulaire, mais par du code.
-------------------------------------------------------------------
Private Sub Form_Load()

Dim sSQL, txtCompte As String

../...
' Quel est l'argument d'appel du form ?
txtCompte = Me.OpenArgs

sSQL = "SELECT ALL T02_NPRET, T02_MONTANT_OP_D, T02_MONTANT_OP_C, T02_CL
E_OP, T02_LETTRAGE" & _
" FROM T02_MID_EN_LETTRAGE" & _
" WHERE T02_LETTRAGE = False AND T02_COMPTE LIKE '" & _
txtCompte & _
"';"

Me.RecordSource = sSQL

=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
Article poste via Voila News - http://www.news.voila.fr
Le : Tue Oct 14 15:33:50 2003 depuis l'IP : athena2.credit-agricole.fr [VIP 5108027]

2 réponses

Avatar
Charles ERNST
DSUM nécessite le nom d'une table ou d'une requêete enregistrée.....


"Bernard M.Y.R" a écrit dans le message
de news:bmgtvu$mqc$
Bonjour,

Grace a notre ami 3Stone, j'ai pu realiser une action elementaire avec D
Sum(champ, table, critere)
Ici, la nature du second parametre est une table. Desormais, je desire a
voir comme origine du domaine, les enregistrements d'un formulaire.

Ce formulaire a, dans son evenement load, la construction d'une string s
ql, a partir d'une table, avec un champ numerique, et un champ logique v
rai/faux, une clause where, avec ce champ logique = faux. (+ d'autres ch
amps et conditions).
Le formulaire possede dans son pied, une textbox.
Donc le formulaire affiche une serie d'enregistrements, avec chacun une
valeur numerique et une case a cocher.
Je desire avoir dans la textbox du pied, la somme des champs numerique a
yant la coase cochee dans le formulaire (et non tout ceux de la table).
Donc;

Comment signifier a DSum() SomDom(), que le domaine est le recordsource,
et non une table ?

Merci d'avance.

ps La propriete recordsource n'est pas fixee par l'interface de construc
tion du formulaire, mais par du code.
-------------------------------------------------------------------
Private Sub Form_Load()

Dim sSQL, txtCompte As String

../...
' Quel est l'argument d'appel du form ?
txtCompte = Me.OpenArgs

sSQL = "SELECT ALL T02_NPRET, T02_MONTANT_OP_D, T02_MONTANT_OP_C, T02_CL
E_OP, T02_LETTRAGE" & _
" FROM T02_MID_EN_LETTRAGE" & _
" WHERE T02_LETTRAGE = False AND T02_COMPTE LIKE '" & _
txtCompte & _
"';"

Me.RecordSource = sSQL

=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
Article poste via Voila News - http://www.news.voila.fr
Le : Tue Oct 14 15:33:50 2003 depuis l'IP : athena2.credit-agricole.fr
[VIP 5108027]


Avatar
3stone
Salut,

"Bernard M.Y.R" a écrit:
| Je desire avoir dans la textbox du pied, la somme des champs numerique a
| yant la coase cochee dans le formulaire (et non tout ceux de la table).
| Donc;
|
| Comment signifier a DSum() SomDom(), que le domaine est le recordsource,
| et non une table ?
|
| sSQL = "SELECT ALL T02_NPRET, T02_MONTANT_OP_D, T02_MONTANT_OP_C, T02_CL
| E_OP, T02_LETTRAGE" & _
| " FROM T02_MID_EN_LETTRAGE" & _
| " WHERE T02_LETTRAGE = False AND T02_COMPTE LIKE '" & _
| txtCompte & _
| "';"


Comme le dit Charles, les fonctions de domaine sont réservée aux "domaines",
tables ou requêtes enregistrées. Ces fonctions de domaines sont utilisées
pour accéder justement à des données qui ne sont *pas* dans le formulaire.


Mais, tu peux modifier ta chaîne SQL, en ajoutant un champ calculé:

sSQL = "Select IIf([Case à cocher] = True, [Champ numérique], 0 ) AS ValeurCochée, TO2_NPret, ... "

Ensuite, dans ton formulaire, tu mets comme source de ta zone de texte:

= Sum([ValeurCochée])

qui te calculera la somme du champ numérique dont... la case est cochée!

Ok ?


PS: Inutile d'écrire "Select All ...
Le "All" étant le prédicat par défaut.


--
A+
Pierre (3stone) Access MVP
-------------------------------------------------------
Bien démarrer ? c'est ici http://users.skynet.be/mpfa/
( Je ne réponds pas aux emails qui concernent Access )
-------------------------------------------------------