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

Fonction addition ne marche pas (alors que les autres fonctions oui)

3 réponses
Avatar
domivax
Bonjour =E0 tous,

Si je mets ceci :

Msg =3D (FormatNumber(DSum("[MonChamp1]", "MaRequete"), 2)) *
(FormatNumber(DSum("[MonChamp2]", "MaRequete"), 2))
Style =3D vbOKOnly + vbExclamation
Title =3D "R=E9sultat"
Response =3D MsgBox(Msg, Style, Title)

Mes deux donn=E9es sont multipli=E9es



Si je mets ceci :

Msg =3D (FormatNumber(DSum("[MonChamp1]", "MaRequete"), 2)) /
(FormatNumber(DSum("[MonChamp2]", "MaRequete"), 2))
Style =3D vbOKOnly + vbExclamation
Title =3D "R=E9sultat"
Response =3D MsgBox(Msg, Style, Title)

Mes deux donn=E9es sont divis=E9es



Si je mets ceci :

Msg =3D (FormatNumber(DSum("[MonChamp1]", "MaRequete"), 2)) -
(FormatNumber(DSum("[MonChamp2]", "MaRequete"), 2))
Style =3D vbOKOnly + vbExclamation
Title =3D "R=E9sultat"
Response =3D MsgBox(Msg, Style, Title)


Mes deux donn=E9es sont soustraites



Et si je mets ceci :

Msg =3D (FormatNumber(DSum("[MonChamp1]", "MaRequete"), 2)) +
(FormatNumber(DSum("[MonChamp2]", "MaRequete"), 2))
Style =3D vbOKOnly + vbExclamation
Title =3D "R=E9sultat"
Response =3D MsgBox(Msg, Style, Title)


Mes deux donn=E9es sont concat=E9n=E9es... !

Je trouve =E7a vraiment bizarre.
Savez-vous pourquoi avec la derni=E8re variante 1 + 1 =3D 11

Merci pour votre aide.
A bient=F4t
Xavier

3 réponses

Avatar
Eric
Bonsoir,

La fonction FormatNumber() doit retourner une chaine de caractères
formatée en nombre.
Le signe + est parfois utilisé pour faire une concaténation ( à mon avis
ce n'est pas une bonne chose puisqu'on dispose de l'opérateur & )
Si bien que les 2 associés, cela te donne une concaténation des valeurs.
Je te propose de remplacer la fonction FormatNumber() par la fonction
CCur().

A tester

Bonjour à tous,

Si je mets ceci :

Msg = (FormatNumber(DSum("[MonChamp1]", "MaRequete"), 2)) *
(FormatNumber(DSum("[MonChamp2]", "MaRequete"), 2))
Style = vbOKOnly + vbExclamation
Title = "Résultat"
Response = MsgBox(Msg, Style, Title)

Mes deux données sont multipliées



Si je mets ceci :

Msg = (FormatNumber(DSum("[MonChamp1]", "MaRequete"), 2)) /
(FormatNumber(DSum("[MonChamp2]", "MaRequete"), 2))
Style = vbOKOnly + vbExclamation
Title = "Résultat"
Response = MsgBox(Msg, Style, Title)

Mes deux données sont divisées



Si je mets ceci :

Msg = (FormatNumber(DSum("[MonChamp1]", "MaRequete"), 2)) -
(FormatNumber(DSum("[MonChamp2]", "MaRequete"), 2))
Style = vbOKOnly + vbExclamation
Title = "Résultat"
Response = MsgBox(Msg, Style, Title)


Mes deux données sont soustraites



Et si je mets ceci :

Msg = (FormatNumber(DSum("[MonChamp1]", "MaRequete"), 2)) +
(FormatNumber(DSum("[MonChamp2]", "MaRequete"), 2))
Style = vbOKOnly + vbExclamation
Title = "Résultat"
Response = MsgBox(Msg, Style, Title)


Mes deux données sont concaténées... !

Je trouve ça vraiment bizarre.
Savez-vous pourquoi avec la dernière variante 1 + 1 = 11

Merci pour votre aide.
A bientôt
Xavier



--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr

Avatar
pbserv
bonjour,

une alternative :
Msg = FormatNumber(Nz(DSum("[MonChamp1]", "MaRequete"), 0) +
Nz(DSum("[MonChamp2]", "MaRequete"), 0), 2)

Philippe

On 28 mar, 19:13, Eric wrote:
Bonsoir,

La fonction FormatNumber() doit retourner une chaine de caractères
formatée en nombre.
Le signe + est parfois utilisé pour faire une concaténation ( à mon avis
ce n'est pas une bonne chose puisqu'on dispose de l'opérateur & )
Si bien que les 2 associés, cela te donne une concaténation des valeur s.
Je te propose de remplacer la fonction FormatNumber() par la fonction
CCur().

A tester






Bonjour à tous,

Si je mets ceci :

Msg = (FormatNumber(DSum("[MonChamp1]", "MaRequete"), 2)) *
(FormatNumber(DSum("[MonChamp2]", "MaRequete"), 2))
    Style = vbOKOnly + vbExclamation
    Title = "Résultat"
    Response = MsgBox(Msg, Style, Title)

Mes deux données sont multipliées

Si je mets ceci :

Msg = (FormatNumber(DSum("[MonChamp1]", "MaRequete"), 2)) /
(FormatNumber(DSum("[MonChamp2]", "MaRequete"), 2))
    Style = vbOKOnly + vbExclamation
    Title = "Résultat"
    Response = MsgBox(Msg, Style, Title)

Mes deux données sont divisées

Si je mets ceci :

Msg = (FormatNumber(DSum("[MonChamp1]", "MaRequete"), 2)) -
(FormatNumber(DSum("[MonChamp2]", "MaRequete"), 2))
    Style = vbOKOnly + vbExclamation
    Title = "Résultat"
    Response = MsgBox(Msg, Style, Title)

Mes deux données sont soustraites

Et si je mets ceci :

Msg = (FormatNumber(DSum("[MonChamp1]", "MaRequete"), 2)) +
(FormatNumber(DSum("[MonChamp2]", "MaRequete"), 2))
    Style = vbOKOnly + vbExclamation
    Title = "Résultat"
    Response = MsgBox(Msg, Style, Title)

Mes deux données sont concaténées... !

Je trouve ça vraiment bizarre.
Savez-vous pourquoi avec la dernière variante 1 + 1 = 11

Merci pour votre aide.
A bientôt
Xavier


--
A+
Erichttp://www.mpfa.info/
Archives :http://groups.google.fr/group/microsoft.public.fr.access?hl=fr - Masquer le texte des messages précédents -

- Afficher le texte des messages précédents -



Avatar
domivax
Bonjour,

C'est le Ccur() qui fonctionne.

Merci beaucoup.
Bonne journée.
Xavier