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

division par 0

3 réponses
Avatar
sinpa
Bonjour
Ma requete divise une colonne par une autre. Lorsque la colonne diviseur est
= 0, j'obtiens : #Erreur.
Comment faire pour remplacer "#Erreur" par un message ou ne rien mettre du
tout dans le résultat de ma requete?
Merci d'avance
Eric

3 réponses

Avatar
Raymond [mvp]
Bonsoir.

il faut utiliser la fonction Nz pour tester en même temp la valeur 0 et la
valeur Nul.
le problème étant de savoir ce qu'on veut faire:
1 - on divise par 1 pour retrouver le dividende
2 - on ignore tout et le résultat est 0
3 - on ignore tout et le résultat est Null, ou texte ou autre chose
..........

ce qui donne les 3 cas suivants:

x = Nz(Dividende, 0) / Nz(diviseur, 1)
ou
x = IIf(Nz(diviseur, 0) = 0, Dividende, Nz(Dividende, 0) / diviseur)

x = IIf(Nz(diviseur, 0) = 0, 0, Nz(Dividende, 0) / diviseur)

x = IIf(Nz(diviseur, 0) = 0, "NS", Nz(Dividende, 0) / diviseur)

x étant une donnée de type Variant pour pouvoir encaisser les valeurs Null,
dans le code vba.
--
@+
Raymond Access MVP http://OfficeSystem.Access.free.fr/
http://officesystem.access.over-blog.com/
Pour débuter sur le forum: http://www.mpfa.info/

Venez découvrir Open XML, le nouveau format de fichier de la suite Office !
http://www.comscamp.com/Tracker/Redirect.ashx?linkidÿ71c7f3-78e8-4371-abaf-b73c259e58db


"sinpa" a écrit dans le message de news:
4676bf8d$0$21146$
| Bonjour
| Ma requete divise une colonne par une autre. Lorsque la colonne diviseur
est
| = 0, j'obtiens : #Erreur.
| Comment faire pour remplacer "#Erreur" par un message ou ne rien mettre du
| tout dans le résultat de ma requete?
| Merci d'avance
| Eric
|
|
Avatar
sinpa
Merci, ça marche avec : Expr2:
VraiFaux(Nz([Table1]![diviseur];0)=0;"ns";Nz([Table1]![dividende];1)/Nz([Table1]![diviseur];0))

NB : Access a remplacé IIf (???) par VraiFaux
Je n'ai pas utilisé de code vba; j'ai utlisé le générateur d'expression dans
ma requete en mode création

"Raymond [mvp]" a écrit dans le message
de news:
Bonsoir.

il faut utiliser la fonction Nz pour tester en même temp la valeur 0 et la
valeur Nul.
le problème étant de savoir ce qu'on veut faire:
1 - on divise par 1 pour retrouver le dividende
2 - on ignore tout et le résultat est 0
3 - on ignore tout et le résultat est Null, ou texte ou autre chose
..........

ce qui donne les 3 cas suivants:

x = Nz(Dividende, 0) / Nz(diviseur, 1)
ou
x = IIf(Nz(diviseur, 0) = 0, Dividende, Nz(Dividende, 0) / diviseur)

x = IIf(Nz(diviseur, 0) = 0, 0, Nz(Dividende, 0) / diviseur)

x = IIf(Nz(diviseur, 0) = 0, "NS", Nz(Dividende, 0) / diviseur)

x étant une donnée de type Variant pour pouvoir encaisser les valeurs
Null,
dans le code vba.
--
@+
Raymond Access MVP http://OfficeSystem.Access.free.fr/
http://officesystem.access.over-blog.com/
Pour débuter sur le forum: http://www.mpfa.info/

Venez découvrir Open XML, le nouveau format de fichier de la suite Office
!
http://www.comscamp.com/Tracker/Redirect.ashx?linkidÿ71c7f3-78e8-4371-abaf-b73c259e58db


"sinpa" a écrit dans le message de news:
4676bf8d$0$21146$
| Bonjour
| Ma requete divise une colonne par une autre. Lorsque la colonne diviseur
est
| = 0, j'obtiens : #Erreur.
| Comment faire pour remplacer "#Erreur" par un message ou ne rien mettre
du
| tout dans le résultat de ma requete?
| Merci d'avance
| Eric
|
|




Avatar
Raymond [mvp]
Bonjour.
VraiFaux est la traduction française de IIF en anglais, si tu affiches le
SQL tu auras IIF.

--
@+
Raymond Access MVP http://OfficeSystem.Access.free.fr/
http://officesystem.access.over-blog.com/
Pour débuter sur le forum: http://www.mpfa.info/

Venez découvrir Open XML, le nouveau format de fichier de la suite Office !
http://www.comscamp.com/Tracker/Redirect.ashx?linkidÿ71c7f3-78e8-4371-abaf-b73c259e58db


"sinpa" a écrit dans le message de news:
4676f1d3$0$21147$
| Merci, ça marche avec : Expr2:
|
VraiFaux(Nz([Table1]![diviseur];0)=0;"ns";Nz([Table1]![dividende];1)/Nz([Table1]![diviseur];0))
|
| NB : Access a remplacé IIf (???) par VraiFaux
| Je n'ai pas utilisé de code vba; j'ai utlisé le générateur d'expression
dans
| ma requete en mode création