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

addition avec =Nz([nombre];0)

6 réponses
Avatar
Marina
Bonjour,
Je ne sais pas si vous pouvez me rensigner, mais selon les=20
indication dans l'aide microsoft, j'ai mis Nz(nombre);0)=20
dans un =E9tat pour =E9viter le #Erreur, lorsque l'addition=20
est null et =E9vectivement j'ai =E9t=E9 tr=E8s contente de voir =E0=20
l'ouverture de cet =E9tat que je n'avais plus le d=E9sagr=E9able=20
signal d'erreur.
Mais aujourd'hui je m'apper=E7ois que lorsque la somme est=20
sup=E9rieur =E0 "0", le r=E9sultat est toujours "1".
Alors voil=E0 ma question comment faire pour ne pas avoir=20
#Erreur lorsque l'addition est null et avoir le nombre=20
juste lorsque l'addition est plus que "1".
Merci de m'aider, car dans l'aide Access de Microsoft je=20
ne trouve rien ou bien je ne comprnds pas ce qu'il faut=20
faire.
Marina

6 réponses

Avatar
Lamjed
il faut faire : iif(Nz(nombre)=0;0;nombre)

"Marina" a écrit dans le message de
news: e8d401c3f145$e9d05d50$
Bonjour,
Je ne sais pas si vous pouvez me rensigner, mais selon les
indication dans l'aide microsoft, j'ai mis Nz(nombre);0)
dans un état pour éviter le #Erreur, lorsque l'addition
est null et évectivement j'ai été très contente de voir à
l'ouverture de cet état que je n'avais plus le désagréable
signal d'erreur.
Mais aujourd'hui je m'apperçois que lorsque la somme est
supérieur à "0", le résultat est toujours "1".
Alors voilà ma question comment faire pour ne pas avoir
#Erreur lorsque l'addition est null et avoir le nombre
juste lorsque l'addition est plus que "1".
Merci de m'aider, car dans l'aide Access de Microsoft je
ne trouve rien ou bien je ne comprnds pas ce qu'il faut
faire.
Marina
Avatar
Xavier HUE
Bonjour Marina et Lamjed,

il faut faire : iif(Nz(nombre)=0;0;nombre)
Pour ce type d'expression, on peut faire directement Nz

(Nombre;ValeurSiNull)

Ceci étant, pour le prob de Marina,

indication dans l'aide microsoft, j'ai mis Nz(nombre);0)
dans un état pour éviter le #Erreur, lorsque l'addition
est null
Tu veux plutôt dire que si tes champs à additionner

contiennent une valeur Null (au lieu de l'addition est
null)?

En résumé, lorsque des champs risquent de contenir une
valeur Null, il est impératif de mettre dans la propriété
contrôle source: Nz(LeChamp;0).

Dans ce cas, un controle indépendant pour totaliser
(défini comme Somme(LeChamp)) fonctionnera.

Je pense que ton problème n'est pas lié à Nz.
A suivre...

Cordialement.

Avatar
Marina
Bonjour,
Vous êtes super!!!!
Tout d'abord c'est vrai que je veux plutôt dire que les
champs à additionner contiennent une valeur Null (au lieu
de l'addition est null). Très justement remarqué.

J'ai essayé la solution Lamjed, mais je n'arrive pas à
ouvrir l'état car le message suivant apparait: Il y a un )
de trop, je ne sais pas pourquoi, si chez toi ça marche.

Ensuite la solution de Xavier HUE et là si je mets dans le
code source Nz(nombre;0).
J'ai le message suivant: Entrez la valeur du paramètre Nz
(nombre;0).
Je l'ai mis directement dans la requêtte, ce qui donne :
SELECT CONTACTS.NCONTACT, CONTACTS.NCLIENT, CLIENTS.
[RAISON SOCIALE], CONTACTS.DATE, CONTACTS.HEURE,
CONTACTS.CONTACT, CONTACTS.RESULTAT, CONTACTS.RAPPELER,
CONTACTS.[RENDEZ-VOUS], CONTACTS.COMMANDES,
CONTACTS.datemodif, CONTACTS.COMMERCIAL, CONTACTS.nombre,
CONTACTS.[CODE AGENCE], CONTACTS.HEURERdV
FROM CONTACTS INNER JOIN CLIENTS ON CONTACTS.NCLIENT =
CLIENTS.NCLIENT
WHERE (((CONTACTS.nombre)=Nz([Contacts].[nombre],0)))
ORDER BY CONTACTS.DATE DESC;

Et là j'ai toujours le message #Erreur dans le résultat de
l'addition lorsque les champs à additionner sont vides.

S'il vous plaît, aidez-moi je suis perdue.
Marina
-----Message d'origine-----
Bonjour Marina et Lamjed,

il faut faire : iif(Nz(nombre)=0;0;nombre)
Pour ce type d'expression, on peut faire directement Nz

(Nombre;ValeurSiNull)

Ceci étant, pour le prob de Marina,

indication dans l'aide microsoft, j'ai mis Nz(nombre);0)
dans un état pour éviter le #Erreur, lorsque l'addition
est null
Tu veux plutôt dire que si tes champs à additionner

contiennent une valeur Null (au lieu de l'addition est
null)?

En résumé, lorsque des champs risquent de contenir une
valeur Null, il est impératif de mettre dans la propriété
contrôle source: Nz(LeChamp;0).

Dans ce cas, un controle indépendant pour totaliser
(défini comme Somme(LeChamp)) fonctionnera.

Je pense que ton problème n'est pas lié à Nz.
A suivre...

Cordialement.
.




Avatar
Xavier HUE
Re,

WHERE (((CONTACTS.nombre)=Nz([Contacts].[nombre],0)))
Me fait penser que tu voudrais sélectionner les contacts

dont le champ "nombre" n'est pas défini.

Dans ce cas
WHERE ((CONTACTS.nombre) IS NOT NULL)

Du coup, tu n'aura plus d'enregistrement dont le champ
nombre est Null dans ton état, et du coup, plus d'erreur!

Ou alors,

...CONTACTS.datemodif, CONTACTS.COMMERCIAL, Nz
(CONTACTS.nombre;0), ...

Dans ce cas, le champ "nombre" contiendra toujours une
valeur numérique. Tu auras tout tes enregistrements
contatcs.

Ok?

Sinon, la suite demain...
Cordialement.

Avatar
Marina
Bonjour,
Tu as raison, je veux avoir tous les champs nombre, mais
si je formule comme tu me le dis c'est à
dire ...CONTACTS.datemodif, CONTACTS.COMMERCIAL, Nz
(CONTACTS.nombre;0), ...
dans la requêtte je n'arrive même pas à l'enregistrer car
un message d'erreur apparaît:

Erreur de syntaxe (opérateur absent) dans
l'expression 'CONTACTS.Nznombre;0',

Comment faire?
Aide-moi.
Marina
-----Message d'origine-----
Re,

WHERE (((CONTACTS.nombre)=Nz([Contacts].[nombre],0)))
Me fait penser que tu voudrais sélectionner les contacts

dont le champ "nombre" n'est pas défini.

Dans ce cas
WHERE ((CONTACTS.nombre) IS NOT NULL)

Du coup, tu n'aura plus d'enregistrement dont le champ
nombre est Null dans ton état, et du coup, plus d'erreur!

Ou alors,

...CONTACTS.datemodif, CONTACTS.COMMERCIAL, Nz
(CONTACTS.nombre;0), ...

Dans ce cas, le champ "nombre" contiendra toujours une
valeur numérique. Tu auras tout tes enregistrements
contatcs.

Ok?

Sinon, la suite demain...
Cordialement.
.




Avatar
Xavier HUE
Bonjour Marina,

Le week-end est toujours porteur de bon conseil...
Je viens de lire ton post, et ooops!

Il faudrait plutôt écrire:
...CONTACTS.datemodif, CONTACTS.COMMERCIAL, Nz
(CONTACTS.nombre,0), ...

Une virgule et non point virgule vant le 0. Je pense que
ça devrait mieux fonctionner ainsi ;-)

Cordialement.