#Erreur
Le
zzzz

Bonjour,
voici ma requete, basée sur 2 requêtes Baf11 et PourcPubl10 :
SELECT Baf11.CodeDEP, Baf11.EffTotal, PourcPubl10.Pourc
FROM Baf11 LEFT JOIN PourcPubl10 ON Baf11.CodeDEP =
PourcPubl10.CodeDEP;
Lorsque CodeDEP est présent dans les 2 requêtes, j'obtiens des donnée=
s
dans les 2 colonnes EffTotal et Pourc.
Mais lorsque CodeDEP n'est pas présent dans PourcPubl10, au lieu qu'il
n'y ait rien dans la colonne Pourc, j'ai un #Erreur .
Pour expliquer ça différemment, lorsque je fais :
SELECT Baf11.CodeDEP, Baf11.EffTotal, PourcPubl10.Pourc
FROM Baf11 LEFT JOIN PourcPubl10 ON Baf11.CodeDEP =
PourcPubl10.CodeDEP
WHERE (((PourcPubl10.CodeDEP) Is Null));
j'obtiens "#Erreur" dans toute la colonne Pourc
J'ai recréé la même requête dans une base de donnée vide en impor=
tant
2 tables Baf11 et PourcPubl10 et là, pas de soucis , lorsque le
CodeDEP n'existe pas dans la table PourcPubl10 , je n'ai rien dans la
colonne pour, c'est normal
J'ai beau cherché, je n'ai pas compris l'origine de ce "#Erreur" et
j'ai testé avec une autre requête qui ressemble un peu à PourcPubl10,
et là, pas de problème
à s'arracher les cheveux
voici ma requete, basée sur 2 requêtes Baf11 et PourcPubl10 :
SELECT Baf11.CodeDEP, Baf11.EffTotal, PourcPubl10.Pourc
FROM Baf11 LEFT JOIN PourcPubl10 ON Baf11.CodeDEP =
PourcPubl10.CodeDEP;
Lorsque CodeDEP est présent dans les 2 requêtes, j'obtiens des donnée=
s
dans les 2 colonnes EffTotal et Pourc.
Mais lorsque CodeDEP n'est pas présent dans PourcPubl10, au lieu qu'il
n'y ait rien dans la colonne Pourc, j'ai un #Erreur .
Pour expliquer ça différemment, lorsque je fais :
SELECT Baf11.CodeDEP, Baf11.EffTotal, PourcPubl10.Pourc
FROM Baf11 LEFT JOIN PourcPubl10 ON Baf11.CodeDEP =
PourcPubl10.CodeDEP
WHERE (((PourcPubl10.CodeDEP) Is Null));
j'obtiens "#Erreur" dans toute la colonne Pourc
J'ai recréé la même requête dans une base de donnée vide en impor=
tant
2 tables Baf11 et PourcPubl10 et là, pas de soucis , lorsque le
CodeDEP n'existe pas dans la table PourcPubl10 , je n'ai rien dans la
colonne pour, c'est normal
J'ai beau cherché, je n'ai pas compris l'origine de ce "#Erreur" et
j'ai testé avec une autre requête qui ressemble un peu à PourcPubl10,
et là, pas de problème
à s'arracher les cheveux
je ne vois pas du tout d'explication logique à mon problème vu que
lorsque je transforme la sous requete PourcPubl10 en table (par
importation de la table PourcPubl101), le problème disparaît :
SELECT Baf11.CodeDEP, Baf11.EffTotal, PourcPubl101.Pourc
FROM Baf11 LEFT JOIN PourcPubl101 ON Baf11.CodeDEP =
PourcPubl101.CodeDEP;
Il faut peut-être regarder dans les propriétés des colonnes de la
requête PourcPubl10. Peut-être qu'en la supprimant et en la recréant, le
problème disparaitrait...
db
j'avais essayé ça sans succès...
Par contre le problème est résolu en faisant :
SELECT Baf11.CodeDEP, IIf([Public] Is Null And [Tous]>0,0,[Public]/
[Tous]) AS Expr1
FROM Baf11 LEFT JOIN PourcPubl10 ON Baf11.CodeDEP =
PourcPubl10.CodeDEP;
Tous: Nz([Privé])+Nz([Public])
Pourc: Nz([Public])/(Nz([Privé])+Nz([Public]))
ça m'a tellement pris la tête que j'ai pas envie de chercher à
comprendre...
Ah effectivement, la division par zéro, ça ne pardonne pas :-D
a prioiri (et théoriquement) il ne s'agit pas directement d'un
problème de division par 0 puisque ce problème est réglé dans la so us
requete PourcPubl10
Une valeur nulle dans un champ ?
Si c'est solutionné par Nz ...