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

somme ds un formulaire

5 réponses
Avatar
Patrice
Bonjour

Je me permets de reposer mon probl=E8me car la solution=20
qu'on m'a sugg=E9r=E9e d'=E9crire en fran=E7ais ds le code du fait=20
que je suis entre "" ne fonctionne pas.

J'ai un formulaire en mode continu avec plusieurs champs
num=E9riques : G1 G2 G3 montant

Ds le pied de formulaire j'ai des champs ind=E9pendants :

T1 T2 T3 Tot

sur chargement de mon formulaire, je d=E9fini le code=20
suivant :

If Month(Date) > 7 Then
Me!T1.ControlSource =3D "=3DSum(iif([annee]=3DCNum(year(Date
())),[montant],0))"
Else
Me!T1.ControlSource =3D "=3DSum(iif([annee]=3DCNum(year(Date
()))-1,[montant],0))"
End If

resultat #erreur ds le champ T1

si je neutralise ce code et =E9crit directement ds source
contr=F4le ceci :

=3DSomme(VraiFaux([annee]=3DCNum(Ann=E9e(Date()));[montant];0))

Ce qui n'est que la traduction du code !!
C'est OK !

merci de votre aide

5 réponses

Avatar
Rv
Salut,

Donc après avoir écrit directement ds sourcecontrôle ceci :

=Somme(VraiFaux([annee]=CNum(Année(Date()));[montant];0))

On doit pouvoir en mode débogage, au chargement du formulaire par exemple,
afficher le contenu du controlSource et voir ce qui cloche!
Ce que j'ai pu voir c'est que le "cnum" doit être traduit en "val" :
Me!T1.ControlSource = "=Sum(iif([annee]=val(year(Date())),[montant],0))"


A+

Rv

"Patrice" a écrit dans le message de
news:08ea01c39928$687add90$
Bonjour

Je me permets de reposer mon problème car la solution
qu'on m'a suggérée d'écrire en français ds le code du fait
que je suis entre "" ne fonctionne pas.

J'ai un formulaire en mode continu avec plusieurs champs
numériques : G1 G2 G3 montant

Ds le pied de formulaire j'ai des champs indépendants :

T1 T2 T3 Tot

sur chargement de mon formulaire, je défini le code
suivant :

If Month(Date) > 7 Then
Me!T1.ControlSource = "=Sum(iif([annee]=CNum(year(Date
())),[montant],0))"
Else
Me!T1.ControlSource = "=Sum(iif([annee]=CNum(year(Date
()))-1,[montant],0))"
End If

resultat #erreur ds le champ T1

si je neutralise ce code et écrit directement ds source
contrôle ceci :

=Somme(VraiFaux([annee]=CNum(Année(Date()));[montant];0))

Ce qui n'est que la traduction du code !!
C'est OK !

merci de votre aide
Avatar
Pierre CFI
bonjour
oui, je sais pas pourquoi je t'ai donné un truc en français (certains vont dire l'age)
j'ai essayé en anglais et çà marche ici, donc il doit y avoir autre chose
met un bouton et met ton code dans le clic pour voir
[annee] est un champ de table ou calculé dans la req source ?

--
Pierre CFI
MVP Microsoft Access
Mail : http://cerbermail.com/?z0SN8cN53B

Site pour bien commencer
http://users.skynet.be/mpfa/
Site perso
http://access.cfi.free.fr
"Patrice" a écrit dans le message de news: 08ea01c39928$687add90$
Bonjour

Je me permets de reposer mon problème car la solution
qu'on m'a suggérée d'écrire en français ds le code du fait
que je suis entre "" ne fonctionne pas.

J'ai un formulaire en mode continu avec plusieurs champs
numériques : G1 G2 G3 montant

Ds le pied de formulaire j'ai des champs indépendants :

T1 T2 T3 Tot

sur chargement de mon formulaire, je défini le code
suivant :

If Month(Date) > 7 Then
Me!T1.ControlSource = "=Sum(iif([annee]=CNum(year(Date
())),[montant],0))"
Else
Me!T1.ControlSource = "=Sum(iif([annee]=CNum(year(Date
()))-1,[montant],0))"
End If

resultat #erreur ds le champ T1

si je neutralise ce code et écrit directement ds source
contrôle ceci :

=Somme(VraiFaux([annee]=CNum(Année(Date()));[montant];0))

Ce qui n'est que la traduction du code !!
C'est OK !

merci de votre aide
Avatar
Pierre CFI
et oui rv, il faut Val au lieu de Cnum, une image pieuse de gagnée

--
Pierre CFI
MVP Microsoft Access
Mail : http://cerbermail.com/?z0SN8cN53B

Site pour bien commencer
http://users.skynet.be/mpfa/
Site perso
http://access.cfi.free.fr
"Pierre CFI" a écrit dans le message de news: #
bonjour
oui, je sais pas pourquoi je t'ai donné un truc en français (certains vont dire l'age)
j'ai essayé en anglais et çà marche ici, donc il doit y avoir autre chose
met un bouton et met ton code dans le clic pour voir
[annee] est un champ de table ou calculé dans la req source ?

--
Pierre CFI
MVP Microsoft Access
Mail : http://cerbermail.com/?z0SN8cN53B

Site pour bien commencer
http://users.skynet.be/mpfa/
Site perso
http://access.cfi.free.fr
"Patrice" a écrit dans le message de news: 08ea01c39928$687add90$
Bonjour

Je me permets de reposer mon problème car la solution
qu'on m'a suggérée d'écrire en français ds le code du fait
que je suis entre "" ne fonctionne pas.

J'ai un formulaire en mode continu avec plusieurs champs
numériques : G1 G2 G3 montant

Ds le pied de formulaire j'ai des champs indépendants :

T1 T2 T3 Tot

sur chargement de mon formulaire, je défini le code
suivant :

If Month(Date) > 7 Then
Me!T1.ControlSource = "=Sum(iif([annee]=CNum(year(Date
())),[montant],0))"
Else
Me!T1.ControlSource = "=Sum(iif([annee]=CNum(year(Date
()))-1,[montant],0))"
End If

resultat #erreur ds le champ T1

si je neutralise ce code et écrit directement ds source
contrôle ceci :

=Somme(VraiFaux([annee]=CNum(Année(Date()));[montant];0))

Ce qui n'est que la traduction du code !!
C'est OK !

merci de votre aide





Avatar
Patrice
Merci à Hervé et Pierre

En remplaçant Cnum par val ça marche, j'avais bien mis Val
au départ mais la syntaxe n'était pas encore juste, puis
par copier coller ....

Désolé de vous avoir pris du temps mais ce n'était pas
inutile

Bonne journée

-----Message d'origine-----
Salut,

Donc après avoir écrit directement ds sourcecontrôle
ceci :


=Somme(VraiFaux([annee]=CNum(Année(Date()));[montant];0))

On doit pouvoir en mode débogage, au chargement du
formulaire par exemple,

afficher le contenu du controlSource et voir ce qui
cloche!

Ce que j'ai pu voir c'est que le "cnum" doit être traduit
en "val" :

Me!T1.ControlSource = "=Sum(iif([annee]=val(year(Date())),
[montant],0))"



A+

Rv

"Patrice" a écrit
dans le message de

news:08ea01c39928$687add90$
Bonjour

Je me permets de reposer mon problème car la solution
qu'on m'a suggérée d'écrire en français ds le code du fait
que je suis entre "" ne fonctionne pas.

J'ai un formulaire en mode continu avec plusieurs champs
numériques : G1 G2 G3 montant

Ds le pied de formulaire j'ai des champs indépendants :

T1 T2 T3 Tot

sur chargement de mon formulaire, je défini le code
suivant :

If Month(Date) > 7 Then
Me!T1.ControlSource = "=Sum(iif([annee]=CNum(year(Date
())),[montant],0))"
Else
Me!T1.ControlSource = "=Sum(iif([annee]=CNum(year(Date
()))-1,[montant],0))"
End If

resultat #erreur ds le champ T1

si je neutralise ce code et écrit directement ds source
contrôle ceci :

=Somme(VraiFaux([annee]=CNum(Année(Date()));[montant];0))

Ce qui n'est que la traduction du code !!
C'est OK !

merci de votre aide



.



Avatar
Rv
Une image pieuse, une image pieuse, ... Bof, je la garderai peut-être pour
mes vieux jours. On ne sait jamais ce qu'un age avancé peut provoquer!
Pierre?
Le seul merci de Patrice suffit amplement.

A+
Rv

"Pierre CFI" a écrit dans le message de
news:
et oui rv, il faut Val au lieu de Cnum, une image pieuse de gagnée

--
Pierre CFI
MVP Microsoft Access
Mail : http://cerbermail.com/?z0SN8cN53B

Site pour bien commencer
http://users.skynet.be/mpfa/
Site perso
http://access.cfi.free.fr
"Pierre CFI" a écrit dans le message de news:
#