division par 0

Le
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
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
Raymond [mvp]
Le #6285761
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" 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
|
|
sinpa
Le #6285621
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]" 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" 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
|
|




Raymond [mvp]
Le #6285581
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" 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
Publicité
Poster une réponse
Anonyme