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

Le
domivax
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
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Eric
Le #6356981
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

pbserv
Le #6356971
bonjour,

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

Philippe

On 28 mar, 19:13, 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 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 -



domivax
Le #6356301
Bonjour,

C'est le Ccur() qui fonctionne.

Merci beaucoup.
Bonne journée.
Xavier
Publicité
Poster une réponse
Anonyme