J'ai un champ calculé dans une requête. Lorsque je divise par zéro,
j'obtiens un résultat "erreur". Comment empêcher ce message d'apparaître
dans un état.
je crois qu'en insérant ton calcul dans la fonction NZ ça marche ... NZ(ton calcul)
"Michel Gagnon" a écrit dans le message de news:%
J'ai un champ calculé dans une requête. Lorsque je divise par zéro, j'obtiens un résultat "erreur". Comment empêcher ce message d'apparaître dans un état.
Merci
Michel Gagnon
je crois qu'en insérant ton calcul dans la fonction NZ ça marche ... NZ(ton
calcul)
"Michel Gagnon" <michel.gagnon@sympatico.ca> a écrit dans le message de
news:%23b6pfWtYEHA.3112@tk2msftngp13.phx.gbl...
J'ai un champ calculé dans une requête. Lorsque je divise par zéro,
j'obtiens un résultat "erreur". Comment empêcher ce message d'apparaître
dans un état.
je crois qu'en insérant ton calcul dans la fonction NZ ça marche ... NZ(ton calcul)
"Michel Gagnon" a écrit dans le message de news:%
J'ai un champ calculé dans une requête. Lorsque je divise par zéro, j'obtiens un résultat "erreur". Comment empêcher ce message d'apparaître dans un état.
Merci
Michel Gagnon
arlequin
Bonjour,
J'ai eu ce problème que j'ai résolu de cette façon; supposons que ton champ c=a/b Dans le detail j'ai ecris:
if isnull(me.b) or (me.b=0) then me.c.visibleúlse Else Me.c.visible=true End If
De cette façon le #erreur n'apparait plus
"hervé" a écrit dans le message de news:ccchon$fmh$
je crois qu'en insérant ton calcul dans la fonction NZ ça marche ... NZ(ton
calcul)
"Michel Gagnon" a écrit dans le message de news:%
J'ai un champ calculé dans une requête. Lorsque je divise par zéro, j'obtiens un résultat "erreur". Comment empêcher ce message d'apparaître dans un état.
Merci
Michel Gagnon
Bonjour,
J'ai eu ce problème que j'ai résolu de cette façon; supposons que ton champ
c=a/b
Dans le detail j'ai ecris:
if isnull(me.b) or (me.b=0) then
me.c.visibleúlse
Else
Me.c.visible=true
End If
De cette façon le #erreur n'apparait plus
"hervé" <h@wanadoo.fr> a écrit dans le message de
news:ccchon$fmh$1@aphrodite.grec.isp.9tel.net...
je crois qu'en insérant ton calcul dans la fonction NZ ça marche ...
NZ(ton
calcul)
"Michel Gagnon" <michel.gagnon@sympatico.ca> a écrit dans le message de
news:%23b6pfWtYEHA.3112@tk2msftngp13.phx.gbl...
J'ai un champ calculé dans une requête. Lorsque je divise par zéro,
j'obtiens un résultat "erreur". Comment empêcher ce message d'apparaître
dans un état.
J'ai eu ce problème que j'ai résolu de cette façon; supposons que ton champ c=a/b Dans le detail j'ai ecris:
if isnull(me.b) or (me.b=0) then me.c.visibleúlse Else Me.c.visible=true End If
De cette façon le #erreur n'apparait plus
"hervé" a écrit dans le message de news:ccchon$fmh$
je crois qu'en insérant ton calcul dans la fonction NZ ça marche ... NZ(ton
calcul)
"Michel Gagnon" a écrit dans le message de news:%
J'ai un champ calculé dans une requête. Lorsque je divise par zéro, j'obtiens un résultat "erreur". Comment empêcher ce message d'apparaître dans un état.
Merci
Michel Gagnon
Raymond [mvp]
Bonjour.
Il faut passer par un if pour ne pas passer par la division par zero. un IIf(b = 0, a, a / b) provoquera une erreur de division par 0 car quelle que soit la valeur de b, visual basic exécute toutes les fonctions de la ligne et tombera sur la division par zero si b = 0. If b = 0 Or IsNull(b) Then c = 1 Else c = a / b End If
-- @+ Raymond Access MVP http://access.seneque.free.fr/ http://access.vba.free.fr/ http://access2003.free.fr/ http://users.skynet.be/mpfa/ pour débuter sur le forum
"Michel Gagnon" a écrit dans le message de news:%
J'ai un champ calculé dans une requête. Lorsque je divise par zéro, j'obtiens un résultat "erreur". Comment empêcher ce message d'apparaître dans un état.
Merci
Michel Gagnon
Bonjour.
Il faut passer par un if pour ne pas passer par la division par zero. un
IIf(b = 0, a, a / b) provoquera une erreur de division par 0 car quelle que
soit la valeur de b, visual basic exécute toutes les fonctions de la ligne
et tombera sur la division par zero si b = 0.
If b = 0 Or IsNull(b) Then
c = 1
Else
c = a / b
End If
--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access.vba.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum
"Michel Gagnon" <michel.gagnon@sympatico.ca> a écrit dans le message de
news:%23b6pfWtYEHA.3112@tk2msftngp13.phx.gbl...
J'ai un champ calculé dans une requête. Lorsque je divise par zéro,
j'obtiens un résultat "erreur". Comment empêcher ce message d'apparaître
dans un état.
Il faut passer par un if pour ne pas passer par la division par zero. un IIf(b = 0, a, a / b) provoquera une erreur de division par 0 car quelle que soit la valeur de b, visual basic exécute toutes les fonctions de la ligne et tombera sur la division par zero si b = 0. If b = 0 Or IsNull(b) Then c = 1 Else c = a / b End If
-- @+ Raymond Access MVP http://access.seneque.free.fr/ http://access.vba.free.fr/ http://access2003.free.fr/ http://users.skynet.be/mpfa/ pour débuter sur le forum
"Michel Gagnon" a écrit dans le message de news:%
J'ai un champ calculé dans une requête. Lorsque je divise par zéro, j'obtiens un résultat "erreur". Comment empêcher ce message d'apparaître dans un état.
Merci
Michel Gagnon
Rv
Salut Raymond,
If b = 0 Or IsNull(b) Then c = 1
Pourquoi c=1 alors que le calcul a/b n'est pas défini dans ce cas?
A+
Rv
"Raymond [mvp]" a écrit dans le message de news:%23uh8s%
Bonjour.
Il faut passer par un if pour ne pas passer par la division par zero. un IIf(b = 0, a, a / b) provoquera une erreur de division par 0 car quelle que
soit la valeur de b, visual basic exécute toutes les fonctions de la ligne et tombera sur la division par zero si b = 0. If b = 0 Or IsNull(b) Then c = 1 Else c = a / b End If
-- @+ Raymond Access MVP http://access.seneque.free.fr/ http://access.vba.free.fr/ http://access2003.free.fr/ http://users.skynet.be/mpfa/ pour débuter sur le forum
Salut Raymond,
If b = 0 Or IsNull(b) Then
c = 1
Pourquoi c=1 alors que le calcul a/b n'est pas défini dans ce cas?
A+
Rv
"Raymond [mvp]" <XYZ.access.seneque@free.fr> a écrit dans le message de
news:%23uh8s%23yYEHA.3228@TK2MSFTNGP12.phx.gbl...
Bonjour.
Il faut passer par un if pour ne pas passer par la division par zero. un
IIf(b = 0, a, a / b) provoquera une erreur de division par 0 car quelle
que
soit la valeur de b, visual basic exécute toutes les fonctions de la ligne
et tombera sur la division par zero si b = 0.
If b = 0 Or IsNull(b) Then
c = 1
Else
c = a / b
End If
--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access.vba.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum
Pourquoi c=1 alors que le calcul a/b n'est pas défini dans ce cas?
A+
Rv
"Raymond [mvp]" a écrit dans le message de news:%23uh8s%
Bonjour.
Il faut passer par un if pour ne pas passer par la division par zero. un IIf(b = 0, a, a / b) provoquera une erreur de division par 0 car quelle que
soit la valeur de b, visual basic exécute toutes les fonctions de la ligne et tombera sur la division par zero si b = 0. If b = 0 Or IsNull(b) Then c = 1 Else c = a / b End If
-- @+ Raymond Access MVP http://access.seneque.free.fr/ http://access.vba.free.fr/ http://access2003.free.fr/ http://users.skynet.be/mpfa/ pour débuter sur le forum
Raymond [mvp]
C'est un exemple pour illustrer la div par 0. de toute façon, il faudra certainement mettre "" ou "N/A" dans le champ car c'est un contrôle d'état.
-- @+ Raymond Access MVP http://access.seneque.free.fr/ http://access.vba.free.fr/ http://access2003.free.fr/ http://users.skynet.be/mpfa/ pour débuter sur le forum
"Rv" a écrit dans le message de news:%23ix%
Salut Raymond,
If b = 0 Or IsNull(b) Then c = 1
Pourquoi c=1 alors que le calcul a/b n'est pas défini dans ce cas?
A+
Rv
C'est un exemple pour illustrer la div par 0.
de toute façon, il faudra certainement mettre "" ou "N/A" dans le champ car
c'est un contrôle d'état.
--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access.vba.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum
"Rv" <herve.pinardPASDESPAM@free.fr> a écrit dans le message de
news:%23ix%23sEzYEHA.4092@TK2MSFTNGP11.phx.gbl...
Salut Raymond,
If b = 0 Or IsNull(b) Then
c = 1
Pourquoi c=1 alors que le calcul a/b n'est pas défini dans ce cas?
C'est un exemple pour illustrer la div par 0. de toute façon, il faudra certainement mettre "" ou "N/A" dans le champ car c'est un contrôle d'état.
-- @+ Raymond Access MVP http://access.seneque.free.fr/ http://access.vba.free.fr/ http://access2003.free.fr/ http://users.skynet.be/mpfa/ pour débuter sur le forum
"Rv" a écrit dans le message de news:%23ix%
Salut Raymond,
If b = 0 Or IsNull(b) Then c = 1
Pourquoi c=1 alors que le calcul a/b n'est pas défini dans ce cas?
A+
Rv
Jessy Sempere [MVP]
Bonjour
Sûrement une petite erreur de sa part... ;-))
Je pense qu'il voulait dire :
c = a
@+ Jessy Sempere - Access MVP
------------------------------------ Site @ccess : http://access.jessy.free.fr/ Pour l'efficacité de tous : http://users.skynet.be/mpfa/ ------------------------------------ "Rv" a écrit dans le message news: #ix#
Salut Raymond,
If b = 0 Or IsNull(b) Then c = 1
Pourquoi c=1 alors que le calcul a/b n'est pas défini dans ce cas?
A+
Rv
"Raymond [mvp]" a écrit dans le message de news:%23uh8s%
Bonjour.
Il faut passer par un if pour ne pas passer par la division par zero. un IIf(b = 0, a, a / b) provoquera une erreur de division par 0 car quelle que
soit la valeur de b, visual basic exécute toutes les fonctions de la ligne et tombera sur la division par zero si b = 0. If b = 0 Or IsNull(b) Then c = 1 Else c = a / b End If
-- @+ Raymond Access MVP http://access.seneque.free.fr/ http://access.vba.free.fr/ http://access2003.free.fr/ http://users.skynet.be/mpfa/ pour débuter sur le forum
Bonjour
Sûrement une petite erreur de sa part... ;-))
Je pense qu'il voulait dire :
c = a
@+
Jessy Sempere - Access MVP
news@access.fr.vu
------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://users.skynet.be/mpfa/
------------------------------------
"Rv" <herve.pinardPASDESPAM@free.fr> a écrit dans le message news:
#ix#sEzYEHA.4092@TK2MSFTNGP11.phx.gbl...
Salut Raymond,
If b = 0 Or IsNull(b) Then
c = 1
Pourquoi c=1 alors que le calcul a/b n'est pas défini dans ce cas?
A+
Rv
"Raymond [mvp]" <XYZ.access.seneque@free.fr> a écrit dans le message de
news:%23uh8s%23yYEHA.3228@TK2MSFTNGP12.phx.gbl...
Bonjour.
Il faut passer par un if pour ne pas passer par la division par zero. un
IIf(b = 0, a, a / b) provoquera une erreur de division par 0 car quelle
que
soit la valeur de b, visual basic exécute toutes les fonctions de la ligne
et tombera sur la division par zero si b = 0.
If b = 0 Or IsNull(b) Then
c = 1
Else
c = a / b
End If
--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access.vba.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum
------------------------------------ Site @ccess : http://access.jessy.free.fr/ Pour l'efficacité de tous : http://users.skynet.be/mpfa/ ------------------------------------ "Rv" a écrit dans le message news: #ix#
Salut Raymond,
If b = 0 Or IsNull(b) Then c = 1
Pourquoi c=1 alors que le calcul a/b n'est pas défini dans ce cas?
A+
Rv
"Raymond [mvp]" a écrit dans le message de news:%23uh8s%
Bonjour.
Il faut passer par un if pour ne pas passer par la division par zero. un IIf(b = 0, a, a / b) provoquera une erreur de division par 0 car quelle que
soit la valeur de b, visual basic exécute toutes les fonctions de la ligne et tombera sur la division par zero si b = 0. If b = 0 Or IsNull(b) Then c = 1 Else c = a / b End If
-- @+ Raymond Access MVP http://access.seneque.free.fr/ http://access.vba.free.fr/ http://access2003.free.fr/ http://users.skynet.be/mpfa/ pour débuter sur le forum
Michel Gesnot
Bonjour à tous les participants de cette petite discussion.
Elle m'interpelle et m'intrigue : sous Access 2000 SP-3, j'utilise avec succès une floppée de fonctions iif pour gérer l'affichage éventuel de l'erreur.
Ceci, au niveau de contrôles d'états et de formulaires. Je viens de le tester au niveau d'une requête, puisque c'était le sujet du débat.
Cela fonctionne dans les deux alternatives suivantes : Iif(a<>0; b/a ; "na") structure que j'utilise Iif(a=0; "na" ; b/a) que je viens de tester dans une requête
En sus, j'ai testé dans la requête avec un champ monétaire avec une valeur mise à 0 et avec un champ monétaire vide, donc null si je ne m'abuse. J'obtiens à chaque fois l'affichage du message "na", sans erreur. Par scrupule, j'ai testé la même requête avec b/a et j'obtiens bien le message d'erreur quand a vaut 0.
Alors ? Particularité de ma version ? J'en frémis à l'idée de migrer comme prévu vers Access2003 (ou 2004) !
A vos neurones ! Que le meilleur gagne ... Et, de toute façon, merci.
Michel Gesnot
-----Message d'origine----- J'ai un champ calculé dans une requête. Lorsque je divise par zéro,
j'obtiens un résultat "erreur". Comment empêcher ce message d'apparaître
dans un état.
Merci
Michel Gagnon
.
Bonjour à tous les participants de cette petite discussion.
Elle m'interpelle et m'intrigue : sous Access 2000 SP-3,
j'utilise avec succès une floppée de fonctions iif pour
gérer l'affichage éventuel de l'erreur.
Ceci, au niveau de contrôles d'états et de formulaires.
Je viens de le tester au niveau d'une requête, puisque
c'était le sujet du débat.
Cela fonctionne dans les deux alternatives suivantes :
Iif(a<>0; b/a ; "na") structure que j'utilise
Iif(a=0; "na" ; b/a) que je viens de tester dans une
requête
En sus, j'ai testé dans la requête avec un champ monétaire
avec une valeur mise à 0 et avec un champ monétaire vide,
donc null si je ne m'abuse.
J'obtiens à chaque fois l'affichage du message "na", sans
erreur.
Par scrupule, j'ai testé la même requête avec b/a et
j'obtiens bien le message d'erreur quand a vaut 0.
Alors ?
Particularité de ma version ? J'en frémis à l'idée de
migrer comme prévu vers Access2003 (ou 2004) !
A vos neurones !
Que le meilleur gagne ...
Et, de toute façon, merci.
Michel Gesnot
-----Message d'origine-----
J'ai un champ calculé dans une requête. Lorsque je divise
par zéro,
j'obtiens un résultat "erreur". Comment empêcher ce
message d'apparaître
Bonjour à tous les participants de cette petite discussion.
Elle m'interpelle et m'intrigue : sous Access 2000 SP-3, j'utilise avec succès une floppée de fonctions iif pour gérer l'affichage éventuel de l'erreur.
Ceci, au niveau de contrôles d'états et de formulaires. Je viens de le tester au niveau d'une requête, puisque c'était le sujet du débat.
Cela fonctionne dans les deux alternatives suivantes : Iif(a<>0; b/a ; "na") structure que j'utilise Iif(a=0; "na" ; b/a) que je viens de tester dans une requête
En sus, j'ai testé dans la requête avec un champ monétaire avec une valeur mise à 0 et avec un champ monétaire vide, donc null si je ne m'abuse. J'obtiens à chaque fois l'affichage du message "na", sans erreur. Par scrupule, j'ai testé la même requête avec b/a et j'obtiens bien le message d'erreur quand a vaut 0.
Alors ? Particularité de ma version ? J'en frémis à l'idée de migrer comme prévu vers Access2003 (ou 2004) !
A vos neurones ! Que le meilleur gagne ... Et, de toute façon, merci.
Michel Gesnot
-----Message d'origine----- J'ai un champ calculé dans une requête. Lorsque je divise par zéro,
j'obtiens un résultat "erreur". Comment empêcher ce message d'apparaître
dans un état.
Merci
Michel Gagnon
.
Raymond [mvp]
Bonjour Michel.
sur mes 3 versions 2000,2002 et 2003 si je fais Dim a As Integer, b As Integer, c As Integer a = 10 b = 0 c = IIf(b = 0, a, a / b)
j'ai l'erreur division par 0 sur le IIf
-- @+ Raymond Access MVP http://access.seneque.free.fr/ http://access.vba.free.fr/ http://access2003.free.fr/ http://users.skynet.be/mpfa/ pour débuter sur le forum
"Michel Gesnot" a écrit dans le message de news:27cd101c4634d$861b3c60$ Bonjour à tous les participants de cette petite discussion.
Elle m'interpelle et m'intrigue : sous Access 2000 SP-3, j'utilise avec succès une floppée de fonctions iif pour gérer l'affichage éventuel de l'erreur.
Ceci, au niveau de contrôles d'états et de formulaires. Je viens de le tester au niveau d'une requête, puisque c'était le sujet du débat.
Cela fonctionne dans les deux alternatives suivantes : Iif(a<>0; b/a ; "na") structure que j'utilise Iif(a=0; "na" ; b/a) que je viens de tester dans une requête
En sus, j'ai testé dans la requête avec un champ monétaire avec une valeur mise à 0 et avec un champ monétaire vide, donc null si je ne m'abuse. J'obtiens à chaque fois l'affichage du message "na", sans erreur. Par scrupule, j'ai testé la même requête avec b/a et j'obtiens bien le message d'erreur quand a vaut 0.
Alors ? Particularité de ma version ? J'en frémis à l'idée de migrer comme prévu vers Access2003 (ou 2004) !
A vos neurones ! Que le meilleur gagne ... Et, de toute façon, merci.
Michel Gesnot
Bonjour Michel.
sur mes 3 versions 2000,2002 et 2003 si je fais
Dim a As Integer, b As Integer, c As Integer
a = 10
b = 0
c = IIf(b = 0, a, a / b)
j'ai l'erreur division par 0 sur le IIf
--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access.vba.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum
"Michel Gesnot" <anonymous@discussions.microsoft.com> a écrit dans le
message de news:27cd101c4634d$861b3c60$a301280a@phx.gbl...
Bonjour à tous les participants de cette petite discussion.
Elle m'interpelle et m'intrigue : sous Access 2000 SP-3,
j'utilise avec succès une floppée de fonctions iif pour
gérer l'affichage éventuel de l'erreur.
Ceci, au niveau de contrôles d'états et de formulaires.
Je viens de le tester au niveau d'une requête, puisque
c'était le sujet du débat.
Cela fonctionne dans les deux alternatives suivantes :
Iif(a<>0; b/a ; "na") structure que j'utilise
Iif(a=0; "na" ; b/a) que je viens de tester dans une
requête
En sus, j'ai testé dans la requête avec un champ monétaire
avec une valeur mise à 0 et avec un champ monétaire vide,
donc null si je ne m'abuse.
J'obtiens à chaque fois l'affichage du message "na", sans
erreur.
Par scrupule, j'ai testé la même requête avec b/a et
j'obtiens bien le message d'erreur quand a vaut 0.
Alors ?
Particularité de ma version ? J'en frémis à l'idée de
migrer comme prévu vers Access2003 (ou 2004) !
A vos neurones !
Que le meilleur gagne ...
Et, de toute façon, merci.
sur mes 3 versions 2000,2002 et 2003 si je fais Dim a As Integer, b As Integer, c As Integer a = 10 b = 0 c = IIf(b = 0, a, a / b)
j'ai l'erreur division par 0 sur le IIf
-- @+ Raymond Access MVP http://access.seneque.free.fr/ http://access.vba.free.fr/ http://access2003.free.fr/ http://users.skynet.be/mpfa/ pour débuter sur le forum
"Michel Gesnot" a écrit dans le message de news:27cd101c4634d$861b3c60$ Bonjour à tous les participants de cette petite discussion.
Elle m'interpelle et m'intrigue : sous Access 2000 SP-3, j'utilise avec succès une floppée de fonctions iif pour gérer l'affichage éventuel de l'erreur.
Ceci, au niveau de contrôles d'états et de formulaires. Je viens de le tester au niveau d'une requête, puisque c'était le sujet du débat.
Cela fonctionne dans les deux alternatives suivantes : Iif(a<>0; b/a ; "na") structure que j'utilise Iif(a=0; "na" ; b/a) que je viens de tester dans une requête
En sus, j'ai testé dans la requête avec un champ monétaire avec une valeur mise à 0 et avec un champ monétaire vide, donc null si je ne m'abuse. J'obtiens à chaque fois l'affichage du message "na", sans erreur. Par scrupule, j'ai testé la même requête avec b/a et j'obtiens bien le message d'erreur quand a vaut 0.
Alors ? Particularité de ma version ? J'en frémis à l'idée de migrer comme prévu vers Access2003 (ou 2004) !
A vos neurones ! Que le meilleur gagne ... Et, de toute façon, merci.
Michel Gesnot
Michel Gesnot
Bonjour Raymond
En fenêtre Exécution de vba, moi aussi j'ai l'erreur.
Mais, pas dans les requêtes, ni dans les contrôles de formes et d'états.
Well, il y a une version "student" 2003 sur le pc de ma fille, je vais le lui emprunter et y transférer une application existante pour test, ce soir ou demain. Je vous tiens au courant.
M. Gesnot
-----Message d'origine----- Bonjour Michel.
sur mes 3 versions 2000,2002 et 2003 si je fais Dim a As Integer, b As Integer, c As Integer a = 10 b = 0 c = IIf(b = 0, a, a / b)
j'ai l'erreur division par 0 sur le IIf
-- @+ Raymond Access MVP http://access.seneque.free.fr/ http://access.vba.free.fr/ http://access2003.free.fr/ http://users.skynet.be/mpfa/ pour débuter sur le forum
"Michel Gesnot" a écrit dans le
message de news:27cd101c4634d$861b3c60$ Bonjour à tous les participants de cette petite discussion.
Elle m'interpelle et m'intrigue : sous Access 2000 SP-3, j'utilise avec succès une floppée de fonctions iif pour gérer l'affichage éventuel de l'erreur.
Ceci, au niveau de contrôles d'états et de formulaires. Je viens de le tester au niveau d'une requête, puisque c'était le sujet du débat.
Cela fonctionne dans les deux alternatives suivantes : Iif(a<>0; b/a ; "na") structure que j'utilise Iif(a=0; "na" ; b/a) que je viens de tester dans une requête
En sus, j'ai testé dans la requête avec un champ monétaire avec une valeur mise à 0 et avec un champ monétaire vide, donc null si je ne m'abuse. J'obtiens à chaque fois l'affichage du message "na", sans erreur. Par scrupule, j'ai testé la même requête avec b/a et j'obtiens bien le message d'erreur quand a vaut 0.
Alors ? Particularité de ma version ? J'en frémis à l'idée de migrer comme prévu vers Access2003 (ou 2004) !
A vos neurones ! Que le meilleur gagne ... Et, de toute façon, merci.
Michel Gesnot
.
Bonjour Raymond
En fenêtre Exécution de vba, moi aussi j'ai l'erreur.
Mais, pas dans les requêtes, ni dans les contrôles de
formes et d'états.
Well, il y a une version "student" 2003 sur le pc de ma
fille, je vais le lui emprunter et y transférer une
application existante pour test, ce soir ou demain.
Je vous tiens au courant.
M. Gesnot
-----Message d'origine-----
Bonjour Michel.
sur mes 3 versions 2000,2002 et 2003 si je fais
Dim a As Integer, b As Integer, c As Integer
a = 10
b = 0
c = IIf(b = 0, a, a / b)
j'ai l'erreur division par 0 sur le IIf
--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access.vba.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum
"Michel Gesnot" <anonymous@discussions.microsoft.com> a
écrit dans le
message de news:27cd101c4634d$861b3c60$a301280a@phx.gbl...
Bonjour à tous les participants de cette petite
discussion.
Elle m'interpelle et m'intrigue : sous Access 2000 SP-3,
j'utilise avec succès une floppée de fonctions iif pour
gérer l'affichage éventuel de l'erreur.
Ceci, au niveau de contrôles d'états et de formulaires.
Je viens de le tester au niveau d'une requête, puisque
c'était le sujet du débat.
Cela fonctionne dans les deux alternatives suivantes :
Iif(a<>0; b/a ; "na") structure que j'utilise
Iif(a=0; "na" ; b/a) que je viens de tester dans une
requête
En sus, j'ai testé dans la requête avec un champ monétaire
avec une valeur mise à 0 et avec un champ monétaire vide,
donc null si je ne m'abuse.
J'obtiens à chaque fois l'affichage du message "na", sans
erreur.
Par scrupule, j'ai testé la même requête avec b/a et
j'obtiens bien le message d'erreur quand a vaut 0.
Alors ?
Particularité de ma version ? J'en frémis à l'idée de
migrer comme prévu vers Access2003 (ou 2004) !
A vos neurones !
Que le meilleur gagne ...
Et, de toute façon, merci.
En fenêtre Exécution de vba, moi aussi j'ai l'erreur.
Mais, pas dans les requêtes, ni dans les contrôles de formes et d'états.
Well, il y a une version "student" 2003 sur le pc de ma fille, je vais le lui emprunter et y transférer une application existante pour test, ce soir ou demain. Je vous tiens au courant.
M. Gesnot
-----Message d'origine----- Bonjour Michel.
sur mes 3 versions 2000,2002 et 2003 si je fais Dim a As Integer, b As Integer, c As Integer a = 10 b = 0 c = IIf(b = 0, a, a / b)
j'ai l'erreur division par 0 sur le IIf
-- @+ Raymond Access MVP http://access.seneque.free.fr/ http://access.vba.free.fr/ http://access2003.free.fr/ http://users.skynet.be/mpfa/ pour débuter sur le forum
"Michel Gesnot" a écrit dans le
message de news:27cd101c4634d$861b3c60$ Bonjour à tous les participants de cette petite discussion.
Elle m'interpelle et m'intrigue : sous Access 2000 SP-3, j'utilise avec succès une floppée de fonctions iif pour gérer l'affichage éventuel de l'erreur.
Ceci, au niveau de contrôles d'états et de formulaires. Je viens de le tester au niveau d'une requête, puisque c'était le sujet du débat.
Cela fonctionne dans les deux alternatives suivantes : Iif(a<>0; b/a ; "na") structure que j'utilise Iif(a=0; "na" ; b/a) que je viens de tester dans une requête
En sus, j'ai testé dans la requête avec un champ monétaire avec une valeur mise à 0 et avec un champ monétaire vide, donc null si je ne m'abuse. J'obtiens à chaque fois l'affichage du message "na", sans erreur. Par scrupule, j'ai testé la même requête avec b/a et j'obtiens bien le message d'erreur quand a vaut 0.
Alors ? Particularité de ma version ? J'en frémis à l'idée de migrer comme prévu vers Access2003 (ou 2004) !
A vos neurones ! Que le meilleur gagne ... Et, de toute façon, merci.
Michel Gesnot
.
Eric
Bonjour Raymond,
Coté Code VB : Ca me parait logique puisqu'il est stipulé que Iif evalue toujours les 2 arguments AVANT de retourner celui correspondant à la condition. Donc on doit avoir toujours le message d'erreur de VB .
Coté langage SQL : SELECT 10 AS chpa, 0 AS chpb, IIf([chpb]=0,"na",[chpb]/[chpa]) AS resultat; me retourne toujours na. Et là, ca me surprend !
Donc le iif n'est pas analysé de la même manière suivant l'endroit où il est utilisé ???
sur mes 3 versions 2000,2002 et 2003 si je fais Dim a As Integer, b As Integer, c As Integer a = 10 b = 0 c = IIf(b = 0, a, a / b)
j'ai l'erreur division par 0 sur le IIf
Bonjour Raymond,
Coté Code VB :
Ca me parait logique puisqu'il est stipulé que Iif evalue toujours les 2
arguments AVANT de retourner celui correspondant à la condition. Donc on
doit avoir toujours le message d'erreur de VB .
Coté langage SQL :
SELECT 10 AS chpa, 0 AS chpb, IIf([chpb]=0,"na",[chpb]/[chpa]) AS resultat;
me retourne toujours na. Et là, ca me surprend !
Donc le iif n'est pas analysé de la même manière suivant l'endroit où il
est utilisé ???
Coté Code VB : Ca me parait logique puisqu'il est stipulé que Iif evalue toujours les 2 arguments AVANT de retourner celui correspondant à la condition. Donc on doit avoir toujours le message d'erreur de VB .
Coté langage SQL : SELECT 10 AS chpa, 0 AS chpb, IIf([chpb]=0,"na",[chpb]/[chpa]) AS resultat; me retourne toujours na. Et là, ca me surprend !
Donc le iif n'est pas analysé de la même manière suivant l'endroit où il est utilisé ???