OVH Cloud OVH Cloud

Remplir controle

4 réponses
Avatar
dfcena
Bonjour

Je souhaire remplir un champs (type oui/non)si la somme=20
d'un champs =3D un autre champs.
Je pensais faire une requ=EAte mise =E0 jour =E0 la fermeture=20
de mon formulaire mais il reste le probl=E8me de la somme=20
pb d'agr=E9gation de la fonction somme).

Existe-t-il un moyen de pouvoir modifier (ou remplir ) un=20
champ avec la condition somme?
Sinon comment utiliser la fonction Dsum (je n'est pas=20
trouver l'aide =E0 ce sujet)

4 réponses

Avatar
alan
bonjour,
tu peux essayé un controle à la fermeture de ton form
if S1 = S2 then OUI/NON= true

-----Message d'origine-----
Bonjour

Je souhaire remplir un champs (type oui/non)si la somme
d'un champs = un autre champs.
Je pensais faire une requête mise à jour à la fermeture
de mon formulaire mais il reste le problème de la somme
pb d'agrégation de la fonction somme).

Existe-t-il un moyen de pouvoir modifier (ou remplir ) un
champ avec la condition somme?
Sinon comment utiliser la fonction Dsum (je n'est pas
trouver l'aide à ce sujet)
.



Avatar
dfcena
Bonjour
Ce n'est pas aussi simple, mon formulaire ne contient pas
la totalité des enregistrements c'est pour cela que je
passe par une requête mise à jour avec mon controle
(oui/non) et ma condition Somme([Champ1])=[champ2], le
problème c'et avec une somme en requête la mise à jour
devient impossible

-----Message d'origine-----
bonjour,
tu peux essayé un controle à la fermeture de ton form
if S1 = S2 then OUI/NON= true

-----Message d'origine-----
Bonjour

Je souhaire remplir un champs (type oui/non)si la somme
d'un champs = un autre champs.
Je pensais faire une requête mise à jour à la fermeture
de mon formulaire mais il reste le problème de la somme
pb d'agrégation de la fonction somme).

Existe-t-il un moyen de pouvoir modifier (ou remplir )
un


champ avec la condition somme?
Sinon comment utiliser la fonction Dsum (je n'est pas
trouver l'aide à ce sujet)
.

.





Avatar
Eric
"dfcena" écrivait
news:1c7d201c452f6$bbbe2650$:

Bonjour
Ce n'est pas aussi simple, mon formulaire ne contient pas
la totalité des enregistrements c'est pour cela que je
passe par une requête mise à jour avec mon controle
(oui/non) et ma condition Somme([Champ1])=[champ2], le
problème c'et avec une somme en requête la mise à jour
devient impossible

Bonjour dfcena,


un exemple simple théorique qui permet de vérifier si le cumulht d'1
client est bien égal à la somme de ses factures. Si c'est le cas, mise à
jour d'un Booléen nommé Test. Cet exemple te montre comment fonctionne
DSum()

La proc est appelée sur le clic d'un bouton.
Private Sub Commande0_Click()
Dim strSQL As String
strSQL = "Update tclient1 set Test=True where CumulHT=dsum
('Montantht','tfacture','NumClient=" & Me.NumClient & "') And
tclient1.NumClient = " & Me.NumClient & ";"
CurrentDb.Execute strSQL
End Sub

DSum ou SomDom : 3 arguments
DSum("NomDuChamp","Domaine","ClauseRestrictive")
SomDom("NomDuChamp";"Domaine";"ClauseRestrictive")

le domaine peut-être une table ou requête,
la clause restrictive correspond à une clause SQL where sans le where.
Elle est facultative.

Dans mon exemple: le champ à sommer est le MontantHT dans le domaine qui
est une table (tfacture) et la clause restrictive porte sur le numéro de
client.

Ainsi je mets à Vrai le champ test de la table tclient1 si le cumulht
(champs de la table tclient1) est égal au total des montants HT des
factures de ce client (dans la table des factures). La restriction qui
suit le 'and' a pour but de mettre à Vrai le champ Test *que* pour le
client en cours (vu dans le formulaire). Elle est obligatoire pour éviter
de mettre à jour le champs Test pour tous les clients qui auraient un
meme cumulHT, (en raison des mystères de l'arithmétique ;-) )

A adapter à tes besoins


A+
Eric

Avatar
dfcena
Alors là je dit bravo
tu me donne quasiment l'exemple à mon besoin
même si ce n'est pas un cumul sur le ht c'est à cumul sur
les quantités livrés par raport à une commande mais ton
exemple me va emplement sachant que j'aurais aussi besoin
du cumul pour les factures
Je te remercie de cet exemple et de ces explications
-----Message d'origine-----
"dfcena" écrivait
news:1c7d201c452f6$bbbe2650$:

Bonjour
Ce n'est pas aussi simple, mon formulaire ne contient
pas


la totalité des enregistrements c'est pour cela que je
passe par une requête mise à jour avec mon controle
(oui/non) et ma condition Somme([Champ1])=[champ2], le
problème c'et avec une somme en requête la mise à jour
devient impossible

Bonjour dfcena,


un exemple simple théorique qui permet de vérifier si le
cumulht d'1

client est bien égal à la somme de ses factures. Si
c'est le cas, mise à

jour d'un Booléen nommé Test. Cet exemple te montre
comment fonctionne

DSum()

La proc est appelée sur le clic d'un bouton.
Private Sub Commande0_Click()
Dim strSQL As String
strSQL = "Update tclient1 set Test=True where
CumulHT=dsum

('Montantht','tfacture','NumClient=" & Me.NumClient
& "') And

tclient1.NumClient = " & Me.NumClient & ";"
CurrentDb.Execute strSQL
End Sub

DSum ou SomDom : 3 arguments
DSum("NomDuChamp","Domaine","ClauseRestrictive")
SomDom("NomDuChamp";"Domaine";"ClauseRestrictive")

le domaine peut-être une table ou requête,
la clause restrictive correspond à une clause SQL where
sans le where.

Elle est facultative.

Dans mon exemple: le champ à sommer est le MontantHT
dans le domaine qui

est une table (tfacture) et la clause restrictive porte
sur le numéro de

client.

Ainsi je mets à Vrai le champ test de la table tclient1
si le cumulht

(champs de la table tclient1) est égal au total des
montants HT des

factures de ce client (dans la table des factures). La
restriction qui

suit le 'and' a pour but de mettre à Vrai le champ Test
*que* pour le

client en cours (vu dans le formulaire). Elle est
obligatoire pour éviter

de mettre à jour le champs Test pour tous les clients
qui auraient un

meme cumulHT, (en raison des mystères de
l'arithmétique ;-) )


A adapter à tes besoins


A+
Eric
.