Bonjour,
Je pense que j'avais mal compris la demande, je ne suis pas tellement
familiarisé avec les termes techniques.
La formule SQL :
SELECT TbNomsF.[Nom-Prénom], TbNomsF.Club, RqCourse01F.Points,
RqCourse02F.Points, RqCourse03F.Points, RqCourse04F.Points,
RqCourse05F.Points,
Nz([RqCourse01F.Points],0)+Nz([RqCourse02F.Points],0)+Nz([RqCourse03F.Points],0)+Nz([RqCourse04F.Points],0)+Nz([RqCourse05F.Points],0)
AS Total, IIf([RqCourse01F.Points]>0,1,0)+IIf([RqCourse05F.Points]>0,1,0)
AS
FR, IIf([RqCourse02F.Points]>0,1,0)+IIf([RqCourse04F.Points]>0,1,0) AS DE,
IIf([RqCourse03F.Points]>0,1,0) AS LU,
IIf([RqCourse01F.Points]>0,1,0)+IIf([RqCourse02F.Points]>0,1,0)+IIf([RqCourse03F.Points]>0,1,0)+IIf([RqCourse04F.Points]>0,1,0)+IIf([RqCourse05F.Points]>0,1,0)
AS NrCourses,
+IIf(Nz([RqCourse01F.Points],0)+Nz([RqCourse05F.Points],0)>0,1,0)+IIf(Nz([RqCourse02F.Points],0)+Nz([RqCourse04F.Points],0)>0,1,0)+IIf([RqCourse03F.Points]>0,1,0)
AS Clé,
IIf([RqCourse01F.Points]>=[RqCourse02F.Points],[RqCourse02F.Points],IIf([RqCourse02F.Points]>=[RqCourse03F.Points],[RqCourse03F.Points],IIf([RqCourse03F.Points]>=[RqCourse04F.Points],[RqCourse04F.Points],IIf([RqCourse04F.Points]>=[RqCourse05F.Points],[RqCourse05F.Points]))))
AS MinPointsF, IIf([NrCourses]=5,[Total]-[MinPointsF],[Total]) AS Final
FROM ((((TbNomsF LEFT JOIN RqCourse01F ON (TbNomsF.Club =
RqCourse01F.Club)
AND (TbNomsF.[Nom-Prénom] = RqCourse01F.[Nom-Prénom])) LEFT JOIN
RqCourse02F
ON (TbNomsF.[Nom-Prénom] = RqCourse02F.[Nom-Prénom]) AND (TbNomsF.Club > RqCourse02F.Club)) LEFT JOIN RqCourse03F ON (TbNomsF.[Nom-Prénom] > RqCourse03F.[Nom-Prénom]) AND (TbNomsF.Club = RqCourse03F.Club)) LEFT JOIN
RqCourse04F ON (TbNomsF.Club = RqCourse04F.Club) AND (TbNomsF.[Nom-Prénom]RqCourse04F.[Nom-Prénom])) LEFT JOIN RqCourse05F ON (TbNomsF.Club > RqCourse05F.Club) AND (TbNomsF.[Nom-Prénom] = RqCourse05F.[Nom-Prénom])
GROUP BY TbNomsF.[Nom-Prénom], TbNomsF.Club, RqCourse01F.Points,
RqCourse02F.Points, RqCourse03F.Points, RqCourse04F.Points,
RqCourse05F.Points,
Nz([RqCourse01F.Points],0)+Nz([RqCourse02F.Points],0)+Nz([RqCourse03F.Points],0)+Nz([RqCourse04F.Points],0)+Nz([RqCourse05F.Points],0),
IIf([RqCourse01F.Points]>0,1,0)+IIf([RqCourse05F.Points]>0,1,0),
IIf([RqCourse02F.Points]>0,1,0)+IIf([RqCourse04F.Points]>0,1,0),
IIf([RqCourse03F.Points]>0,1,0),
IIf([RqCourse01F.Points]>0,1,0)+IIf([RqCourse02F.Points]>0,1,0)+IIf([RqCourse03F.Points]>0,1,0)+IIf([RqCourse04F.Points]>0,1,0)+IIf([RqCourse05F.Points]>0,1,0),
+IIf(Nz([RqCourse01F.Points],0)+Nz([RqCourse05F.Points],0)>0,1,0)+IIf(Nz([RqCourse02F.Points],0)+Nz([RqCourse04F.Points],0)>0,1,0)+IIf([RqCourse03F.Points]>0,1,0),
IIf([RqCourse01F.Points]>=[RqCourse02F.Points],[RqCourse02F.Points],IIf([RqCourse02F.Points]>=[RqCourse03F.Points],[RqCourse03F.Points],IIf([RqCourse03F.Points]>=[RqCourse04F.Points],[RqCourse04F.Points],IIf([RqCourse04F.Points]>=[RqCourse05F.Points],[RqCourse05F.Points])))),
IIf([NrCourses]=5,[Total]-[MinPointsF],[Total])
ORDER BY
Nz([RqCourse01F.Points],0)+Nz([RqCourse02F.Points],0)+Nz([RqCourse03F.Points],0)+Nz([RqCourse04F.Points],0)+Nz([RqCourse05F.Points],0)
DESC;
D'avance merci.
--
AndreBonjour
Comme demandé avant, peux-tu nous donner le SQL de ta requête ?
--
@+
Jessy Sempere - Access MVP
------------------------------------
Site @ccess : http://access.fr.free.fr/
Pour l'efficacité de tous :
http://www.mpfa.info/
------------------------------------
"DENNLER Andre" a écrit dans le
message de news:Bonjour,
Ci-dessous la formule qui me pose problème :
Final: VraiFaux([NrCourses]=5;[Total]-[MinPointsF];[Total])
Les champs [NrCourses], [Total] et [MinPointsF] sont déjà des champs
calculés, même si je simplifie la formule j'ai toujours le même
problème,
si
je valide le message "Paramètre" à blanc la requête s'ouvre et les
résultats
des calculs sont justes, je pense que celà exclue une erreur de syntaxe
en
amont.
--
AndreRe,Merci pour la réponse, cependant j'ai toujours mon problème de
message
"Entrez les valeurs du paramètre " quand j'utilise le résultat dans
une
autre
colonne calculée.
Je doit préciser que c'est une requête très compliquée qui regroupe
1
table
et 5 requêtes en amont avec plusieurs colonnes calculées (de
nombreux
Vraifaux).
J'ai essayé de démultiplier cette requête mais dès que je me
retrouve
dans
la colonne de calcul final j'ai le message.
La colonne calculée qui est responsable du message utilise
simplement
la
formule : Colonne X - ColonneY.
Merci pour la réponse.
Ta formule doit être [Colonne X] - [Colonne Y]
Peux-tu nous donner le SQL de la requête finale pour y voir un peu
plus
clair ?
--
@+
Jessy Sempere - Access MVP
------------------------------------
Site @ccess : http://access.fr.free.fr/
Pour l'efficacité de tous :
http://www.mpfa.info/
------------------------------------Bonjour
Ok donc je t'ai fait un code pour retourner la valeur minimale
entre
plusieurs champ, tu le trouveras ici :
http://access.fr.free.fr/articles.php?lng=fr&pg9
Comme je le disais, il te suffit de faire une requête de ce type
Select Champ1, VariableMin([Val1],[Val2],[Val3],...) As
Resultat
From TaTable;
Voilà
--
@+
Jessy Sempere - Access MVP
------------------------------------
Site @ccess : http://access.fr.free.fr/
Pour l'efficacité de tous :
http://www.mpfa.info/
------------------------------------
"DENNLER Andre" a écrit
dans
le
message de news:Bonjour,
C'est avec un peut de retard que je continue car je n'est pas
travaillé
pendant plusieurs jours sur ma base.
- Pour compter le problème est résolue.
- pour la valeur Minimum je n'est pas réussi à mettre en place la
solution
préconisée (je ne connais pas trop VBA, je ne fais que copier),
par
contre
j'ai réussi à le faire avec une succession de colonnes calculées
en
VraiFaux.
Cependant comme j'utilise c'est colonnes calculées à la suite les
unes
des
autres j'ai le message "Entrer la valeur du paramètre" pour
chaque
colonne
calculée lorsque que j'ouvre la requête, en validant à blanc pour
chacune
d'elle le requête s'ouvre et les calculs sont justes.
Ma nouvelle question : comment éviter le message "Entrer la
valeur
du
paramètre" ?
D'avance merci.
--
AndreRe,
Pour la valeur minimale entre plusieurs champ, tu peux
t'inspirer
de
ce
lien, il faudra juste adapter un peu le code :
http://access.fr.free.fr/articles.php?lng=fr&pgT
Et il te suffira d'appeler le code dans une requête de la
manière
suivante :
Select Champ1,
VariableMax(nz([Val1],0),nz([Val2],0),nz([Val3],0),...)
As
Resultat
From TaTable;
Par contre tu dis que tu veux compter, si tu veux savoir combien
de
colonne
par ligne ont une valeur, tu peux essayer de faire un champ
calculé
du
genre
:
Vraifaux(nz([[TonChamp1];0)=0;0;1)+Vraifaux(nz([[TonChamp2];0)=0;0;1)+Vraifaux(nz([[TonChamp3];0)=0;0;1)+...
Voilà
@+
Jessy Sempere - Access MVP
------------------------------------
Site @ccess : http://access.fr.free.fr/
Pour l'efficacité de tous :
http://www.mpfa.info/
------------------------------------
"DENNLER Andre" a écrit
dans
le
message de news:Je veux faire le DCount et le DMin par ligne et non pas par
colonne
en
excluant les enregistrements Nuls.
--
AndreBonjour
Je ne comprends pas très bien ta question...
Par contre pour éviter les problèmes de calcul à cause des
valeurs
nulles,
tu peux regarder l'aide sur la fonction Nz().
@+
Jessy Sempere - Access MVP
------------------------------------
Site @ccess : http://access.fr.free.fr/
Pour l'efficacité de tous :
http://www.mpfa.info/
------------------------------------
"DENNLER Andre" a
écrit
dans
le
message de news:Bonjour,
Dans une requête j'ai plusieurs colonnes avec des chiffres
et/ou
des
valeurs
nulles par ligne.
Question 1 : comment faire 1 Dcount par ligne pour sur les
valeurs0 ?
Question 2 : Comment faire 1 DMin par ligne pour sur les
valeurs0
?
D'avance merci.
--
Andre
Bonjour,
Je pense que j'avais mal compris la demande, je ne suis pas tellement
familiarisé avec les termes techniques.
La formule SQL :
SELECT TbNomsF.[Nom-Prénom], TbNomsF.Club, RqCourse01F.Points,
RqCourse02F.Points, RqCourse03F.Points, RqCourse04F.Points,
RqCourse05F.Points,
Nz([RqCourse01F.Points],0)+Nz([RqCourse02F.Points],0)+Nz([RqCourse03F.Points],0)+Nz([RqCourse04F.Points],0)+Nz([RqCourse05F.Points],0)
AS Total, IIf([RqCourse01F.Points]>0,1,0)+IIf([RqCourse05F.Points]>0,1,0)
AS
FR, IIf([RqCourse02F.Points]>0,1,0)+IIf([RqCourse04F.Points]>0,1,0) AS DE,
IIf([RqCourse03F.Points]>0,1,0) AS LU,
IIf([RqCourse01F.Points]>0,1,0)+IIf([RqCourse02F.Points]>0,1,0)+IIf([RqCourse03F.Points]>0,1,0)+IIf([RqCourse04F.Points]>0,1,0)+IIf([RqCourse05F.Points]>0,1,0)
AS NrCourses,
+IIf(Nz([RqCourse01F.Points],0)+Nz([RqCourse05F.Points],0)>0,1,0)+IIf(Nz([RqCourse02F.Points],0)+Nz([RqCourse04F.Points],0)>0,1,0)+IIf([RqCourse03F.Points]>0,1,0)
AS Clé,
IIf([RqCourse01F.Points]>=[RqCourse02F.Points],[RqCourse02F.Points],IIf([RqCourse02F.Points]>=[RqCourse03F.Points],[RqCourse03F.Points],IIf([RqCourse03F.Points]>=[RqCourse04F.Points],[RqCourse04F.Points],IIf([RqCourse04F.Points]>=[RqCourse05F.Points],[RqCourse05F.Points]))))
AS MinPointsF, IIf([NrCourses]=5,[Total]-[MinPointsF],[Total]) AS Final
FROM ((((TbNomsF LEFT JOIN RqCourse01F ON (TbNomsF.Club =
RqCourse01F.Club)
AND (TbNomsF.[Nom-Prénom] = RqCourse01F.[Nom-Prénom])) LEFT JOIN
RqCourse02F
ON (TbNomsF.[Nom-Prénom] = RqCourse02F.[Nom-Prénom]) AND (TbNomsF.Club > RqCourse02F.Club)) LEFT JOIN RqCourse03F ON (TbNomsF.[Nom-Prénom] > RqCourse03F.[Nom-Prénom]) AND (TbNomsF.Club = RqCourse03F.Club)) LEFT JOIN
RqCourse04F ON (TbNomsF.Club = RqCourse04F.Club) AND (TbNomsF.[Nom-Prénom]
RqCourse04F.[Nom-Prénom])) LEFT JOIN RqCourse05F ON (TbNomsF.Club > RqCourse05F.Club) AND (TbNomsF.[Nom-Prénom] = RqCourse05F.[Nom-Prénom])
GROUP BY TbNomsF.[Nom-Prénom], TbNomsF.Club, RqCourse01F.Points,
RqCourse02F.Points, RqCourse03F.Points, RqCourse04F.Points,
RqCourse05F.Points,
Nz([RqCourse01F.Points],0)+Nz([RqCourse02F.Points],0)+Nz([RqCourse03F.Points],0)+Nz([RqCourse04F.Points],0)+Nz([RqCourse05F.Points],0),
IIf([RqCourse01F.Points]>0,1,0)+IIf([RqCourse05F.Points]>0,1,0),
IIf([RqCourse02F.Points]>0,1,0)+IIf([RqCourse04F.Points]>0,1,0),
IIf([RqCourse03F.Points]>0,1,0),
IIf([RqCourse01F.Points]>0,1,0)+IIf([RqCourse02F.Points]>0,1,0)+IIf([RqCourse03F.Points]>0,1,0)+IIf([RqCourse04F.Points]>0,1,0)+IIf([RqCourse05F.Points]>0,1,0),
+IIf(Nz([RqCourse01F.Points],0)+Nz([RqCourse05F.Points],0)>0,1,0)+IIf(Nz([RqCourse02F.Points],0)+Nz([RqCourse04F.Points],0)>0,1,0)+IIf([RqCourse03F.Points]>0,1,0),
IIf([RqCourse01F.Points]>=[RqCourse02F.Points],[RqCourse02F.Points],IIf([RqCourse02F.Points]>=[RqCourse03F.Points],[RqCourse03F.Points],IIf([RqCourse03F.Points]>=[RqCourse04F.Points],[RqCourse04F.Points],IIf([RqCourse04F.Points]>=[RqCourse05F.Points],[RqCourse05F.Points])))),
IIf([NrCourses]=5,[Total]-[MinPointsF],[Total])
ORDER BY
Nz([RqCourse01F.Points],0)+Nz([RqCourse02F.Points],0)+Nz([RqCourse03F.Points],0)+Nz([RqCourse04F.Points],0)+Nz([RqCourse05F.Points],0)
DESC;
D'avance merci.
--
Andre
Bonjour
Comme demandé avant, peux-tu nous donner le SQL de ta requête ?
--
@+
Jessy Sempere - Access MVP
news@access.fr.vu
------------------------------------
Site @ccess : http://access.fr.free.fr/
Pour l'efficacité de tous :
http://www.mpfa.info/
------------------------------------
"DENNLER Andre" <DENNLERAndre@discussions.microsoft.com> a écrit dans le
message de news: 56F9FED4-67ED-4B34-A922-8E6B99A4F766@microsoft.com...
Bonjour,
Ci-dessous la formule qui me pose problème :
Final: VraiFaux([NrCourses]=5;[Total]-[MinPointsF];[Total])
Les champs [NrCourses], [Total] et [MinPointsF] sont déjà des champs
calculés, même si je simplifie la formule j'ai toujours le même
problème,
si
je valide le message "Paramètre" à blanc la requête s'ouvre et les
résultats
des calculs sont justes, je pense que celà exclue une erreur de syntaxe
en
amont.
--
Andre
Re,
Merci pour la réponse, cependant j'ai toujours mon problème de
message
"Entrez les valeurs du paramètre " quand j'utilise le résultat dans
une
autre
colonne calculée.
Je doit préciser que c'est une requête très compliquée qui regroupe
1
table
et 5 requêtes en amont avec plusieurs colonnes calculées (de
nombreux
Vraifaux).
J'ai essayé de démultiplier cette requête mais dès que je me
retrouve
dans
la colonne de calcul final j'ai le message.
La colonne calculée qui est responsable du message utilise
simplement
la
formule : Colonne X - ColonneY.
Merci pour la réponse.
Ta formule doit être [Colonne X] - [Colonne Y]
Peux-tu nous donner le SQL de la requête finale pour y voir un peu
plus
clair ?
--
@+
Jessy Sempere - Access MVP
news@access.fr.vu
------------------------------------
Site @ccess : http://access.fr.free.fr/
Pour l'efficacité de tous :
http://www.mpfa.info/
------------------------------------
Bonjour
Ok donc je t'ai fait un code pour retourner la valeur minimale
entre
plusieurs champ, tu le trouveras ici :
http://access.fr.free.fr/articles.php?lng=fr&pg9
Comme je le disais, il te suffit de faire une requête de ce type
Select Champ1, VariableMin([Val1],[Val2],[Val3],...) As
Resultat
From TaTable;
Voilà
--
@+
Jessy Sempere - Access MVP
news@access.fr.vu
------------------------------------
Site @ccess : http://access.fr.free.fr/
Pour l'efficacité de tous :
http://www.mpfa.info/
------------------------------------
"DENNLER Andre" <DENNLERAndre@discussions.microsoft.com> a écrit
dans
le
message de news:
48B94DEA-4F40-478E-B4FF-4DA999087611@microsoft.com...
Bonjour,
C'est avec un peut de retard que je continue car je n'est pas
travaillé
pendant plusieurs jours sur ma base.
- Pour compter le problème est résolue.
- pour la valeur Minimum je n'est pas réussi à mettre en place la
solution
préconisée (je ne connais pas trop VBA, je ne fais que copier),
par
contre
j'ai réussi à le faire avec une succession de colonnes calculées
en
VraiFaux.
Cependant comme j'utilise c'est colonnes calculées à la suite les
unes
des
autres j'ai le message "Entrer la valeur du paramètre" pour
chaque
colonne
calculée lorsque que j'ouvre la requête, en validant à blanc pour
chacune
d'elle le requête s'ouvre et les calculs sont justes.
Ma nouvelle question : comment éviter le message "Entrer la
valeur
du
paramètre" ?
D'avance merci.
--
Andre
Re,
Pour la valeur minimale entre plusieurs champ, tu peux
t'inspirer
de
ce
lien, il faudra juste adapter un peu le code :
http://access.fr.free.fr/articles.php?lng=fr&pgT
Et il te suffira d'appeler le code dans une requête de la
manière
suivante :
Select Champ1,
VariableMax(nz([Val1],0),nz([Val2],0),nz([Val3],0),...)
As
Resultat
From TaTable;
Par contre tu dis que tu veux compter, si tu veux savoir combien
de
colonne
par ligne ont une valeur, tu peux essayer de faire un champ
calculé
du
genre
:
Vraifaux(nz([[TonChamp1];0)=0;0;1)+Vraifaux(nz([[TonChamp2];0)=0;0;1)+Vraifaux(nz([[TonChamp3];0)=0;0;1)+...
Voilà
@+
Jessy Sempere - Access MVP
news@access.fr.vu
------------------------------------
Site @ccess : http://access.fr.free.fr/
Pour l'efficacité de tous :
http://www.mpfa.info/
------------------------------------
"DENNLER Andre" <DENNLERAndre@discussions.microsoft.com> a écrit
dans
le
message de news:
73622BCA-2EA3-4240-AB1B-A11B53C496BD@microsoft.com...
Je veux faire le DCount et le DMin par ligne et non pas par
colonne
en
excluant les enregistrements Nuls.
--
Andre
Bonjour
Je ne comprends pas très bien ta question...
Par contre pour éviter les problèmes de calcul à cause des
valeurs
nulles,
tu peux regarder l'aide sur la fonction Nz().
@+
Jessy Sempere - Access MVP
news@access.fr.vu
------------------------------------
Site @ccess : http://access.fr.free.fr/
Pour l'efficacité de tous :
http://www.mpfa.info/
------------------------------------
"DENNLER Andre" <DENNLERAndre@discussions.microsoft.com> a
écrit
dans
le
message de news:
27B7C566-904B-4E76-BABC-880F0EB7E409@microsoft.com...
Bonjour,
Dans une requête j'ai plusieurs colonnes avec des chiffres
et/ou
des
valeurs
nulles par ligne.
Question 1 : comment faire 1 Dcount par ligne pour sur les
valeurs
0 ?
Question 2 : Comment faire 1 DMin par ligne pour sur les
valeurs
0
?
D'avance merci.
--
Andre
Bonjour,
Je pense que j'avais mal compris la demande, je ne suis pas tellement
familiarisé avec les termes techniques.
La formule SQL :
SELECT TbNomsF.[Nom-Prénom], TbNomsF.Club, RqCourse01F.Points,
RqCourse02F.Points, RqCourse03F.Points, RqCourse04F.Points,
RqCourse05F.Points,
Nz([RqCourse01F.Points],0)+Nz([RqCourse02F.Points],0)+Nz([RqCourse03F.Points],0)+Nz([RqCourse04F.Points],0)+Nz([RqCourse05F.Points],0)
AS Total, IIf([RqCourse01F.Points]>0,1,0)+IIf([RqCourse05F.Points]>0,1,0)
AS
FR, IIf([RqCourse02F.Points]>0,1,0)+IIf([RqCourse04F.Points]>0,1,0) AS DE,
IIf([RqCourse03F.Points]>0,1,0) AS LU,
IIf([RqCourse01F.Points]>0,1,0)+IIf([RqCourse02F.Points]>0,1,0)+IIf([RqCourse03F.Points]>0,1,0)+IIf([RqCourse04F.Points]>0,1,0)+IIf([RqCourse05F.Points]>0,1,0)
AS NrCourses,
+IIf(Nz([RqCourse01F.Points],0)+Nz([RqCourse05F.Points],0)>0,1,0)+IIf(Nz([RqCourse02F.Points],0)+Nz([RqCourse04F.Points],0)>0,1,0)+IIf([RqCourse03F.Points]>0,1,0)
AS Clé,
IIf([RqCourse01F.Points]>=[RqCourse02F.Points],[RqCourse02F.Points],IIf([RqCourse02F.Points]>=[RqCourse03F.Points],[RqCourse03F.Points],IIf([RqCourse03F.Points]>=[RqCourse04F.Points],[RqCourse04F.Points],IIf([RqCourse04F.Points]>=[RqCourse05F.Points],[RqCourse05F.Points]))))
AS MinPointsF, IIf([NrCourses]=5,[Total]-[MinPointsF],[Total]) AS Final
FROM ((((TbNomsF LEFT JOIN RqCourse01F ON (TbNomsF.Club =
RqCourse01F.Club)
AND (TbNomsF.[Nom-Prénom] = RqCourse01F.[Nom-Prénom])) LEFT JOIN
RqCourse02F
ON (TbNomsF.[Nom-Prénom] = RqCourse02F.[Nom-Prénom]) AND (TbNomsF.Club > RqCourse02F.Club)) LEFT JOIN RqCourse03F ON (TbNomsF.[Nom-Prénom] > RqCourse03F.[Nom-Prénom]) AND (TbNomsF.Club = RqCourse03F.Club)) LEFT JOIN
RqCourse04F ON (TbNomsF.Club = RqCourse04F.Club) AND (TbNomsF.[Nom-Prénom]RqCourse04F.[Nom-Prénom])) LEFT JOIN RqCourse05F ON (TbNomsF.Club > RqCourse05F.Club) AND (TbNomsF.[Nom-Prénom] = RqCourse05F.[Nom-Prénom])
GROUP BY TbNomsF.[Nom-Prénom], TbNomsF.Club, RqCourse01F.Points,
RqCourse02F.Points, RqCourse03F.Points, RqCourse04F.Points,
RqCourse05F.Points,
Nz([RqCourse01F.Points],0)+Nz([RqCourse02F.Points],0)+Nz([RqCourse03F.Points],0)+Nz([RqCourse04F.Points],0)+Nz([RqCourse05F.Points],0),
IIf([RqCourse01F.Points]>0,1,0)+IIf([RqCourse05F.Points]>0,1,0),
IIf([RqCourse02F.Points]>0,1,0)+IIf([RqCourse04F.Points]>0,1,0),
IIf([RqCourse03F.Points]>0,1,0),
IIf([RqCourse01F.Points]>0,1,0)+IIf([RqCourse02F.Points]>0,1,0)+IIf([RqCourse03F.Points]>0,1,0)+IIf([RqCourse04F.Points]>0,1,0)+IIf([RqCourse05F.Points]>0,1,0),
+IIf(Nz([RqCourse01F.Points],0)+Nz([RqCourse05F.Points],0)>0,1,0)+IIf(Nz([RqCourse02F.Points],0)+Nz([RqCourse04F.Points],0)>0,1,0)+IIf([RqCourse03F.Points]>0,1,0),
IIf([RqCourse01F.Points]>=[RqCourse02F.Points],[RqCourse02F.Points],IIf([RqCourse02F.Points]>=[RqCourse03F.Points],[RqCourse03F.Points],IIf([RqCourse03F.Points]>=[RqCourse04F.Points],[RqCourse04F.Points],IIf([RqCourse04F.Points]>=[RqCourse05F.Points],[RqCourse05F.Points])))),
IIf([NrCourses]=5,[Total]-[MinPointsF],[Total])
ORDER BY
Nz([RqCourse01F.Points],0)+Nz([RqCourse02F.Points],0)+Nz([RqCourse03F.Points],0)+Nz([RqCourse04F.Points],0)+Nz([RqCourse05F.Points],0)
DESC;
D'avance merci.
--
AndreBonjour
Comme demandé avant, peux-tu nous donner le SQL de ta requête ?
--
@+
Jessy Sempere - Access MVP
------------------------------------
Site @ccess : http://access.fr.free.fr/
Pour l'efficacité de tous :
http://www.mpfa.info/
------------------------------------
"DENNLER Andre" a écrit dans le
message de news:Bonjour,
Ci-dessous la formule qui me pose problème :
Final: VraiFaux([NrCourses]=5;[Total]-[MinPointsF];[Total])
Les champs [NrCourses], [Total] et [MinPointsF] sont déjà des champs
calculés, même si je simplifie la formule j'ai toujours le même
problème,
si
je valide le message "Paramètre" à blanc la requête s'ouvre et les
résultats
des calculs sont justes, je pense que celà exclue une erreur de syntaxe
en
amont.
--
AndreRe,Merci pour la réponse, cependant j'ai toujours mon problème de
message
"Entrez les valeurs du paramètre " quand j'utilise le résultat dans
une
autre
colonne calculée.
Je doit préciser que c'est une requête très compliquée qui regroupe
1
table
et 5 requêtes en amont avec plusieurs colonnes calculées (de
nombreux
Vraifaux).
J'ai essayé de démultiplier cette requête mais dès que je me
retrouve
dans
la colonne de calcul final j'ai le message.
La colonne calculée qui est responsable du message utilise
simplement
la
formule : Colonne X - ColonneY.
Merci pour la réponse.
Ta formule doit être [Colonne X] - [Colonne Y]
Peux-tu nous donner le SQL de la requête finale pour y voir un peu
plus
clair ?
--
@+
Jessy Sempere - Access MVP
------------------------------------
Site @ccess : http://access.fr.free.fr/
Pour l'efficacité de tous :
http://www.mpfa.info/
------------------------------------Bonjour
Ok donc je t'ai fait un code pour retourner la valeur minimale
entre
plusieurs champ, tu le trouveras ici :
http://access.fr.free.fr/articles.php?lng=fr&pg9
Comme je le disais, il te suffit de faire une requête de ce type
Select Champ1, VariableMin([Val1],[Val2],[Val3],...) As
Resultat
From TaTable;
Voilà
--
@+
Jessy Sempere - Access MVP
------------------------------------
Site @ccess : http://access.fr.free.fr/
Pour l'efficacité de tous :
http://www.mpfa.info/
------------------------------------
"DENNLER Andre" a écrit
dans
le
message de news:Bonjour,
C'est avec un peut de retard que je continue car je n'est pas
travaillé
pendant plusieurs jours sur ma base.
- Pour compter le problème est résolue.
- pour la valeur Minimum je n'est pas réussi à mettre en place la
solution
préconisée (je ne connais pas trop VBA, je ne fais que copier),
par
contre
j'ai réussi à le faire avec une succession de colonnes calculées
en
VraiFaux.
Cependant comme j'utilise c'est colonnes calculées à la suite les
unes
des
autres j'ai le message "Entrer la valeur du paramètre" pour
chaque
colonne
calculée lorsque que j'ouvre la requête, en validant à blanc pour
chacune
d'elle le requête s'ouvre et les calculs sont justes.
Ma nouvelle question : comment éviter le message "Entrer la
valeur
du
paramètre" ?
D'avance merci.
--
AndreRe,
Pour la valeur minimale entre plusieurs champ, tu peux
t'inspirer
de
ce
lien, il faudra juste adapter un peu le code :
http://access.fr.free.fr/articles.php?lng=fr&pgT
Et il te suffira d'appeler le code dans une requête de la
manière
suivante :
Select Champ1,
VariableMax(nz([Val1],0),nz([Val2],0),nz([Val3],0),...)
As
Resultat
From TaTable;
Par contre tu dis que tu veux compter, si tu veux savoir combien
de
colonne
par ligne ont une valeur, tu peux essayer de faire un champ
calculé
du
genre
:
Vraifaux(nz([[TonChamp1];0)=0;0;1)+Vraifaux(nz([[TonChamp2];0)=0;0;1)+Vraifaux(nz([[TonChamp3];0)=0;0;1)+...
Voilà
@+
Jessy Sempere - Access MVP
------------------------------------
Site @ccess : http://access.fr.free.fr/
Pour l'efficacité de tous :
http://www.mpfa.info/
------------------------------------
"DENNLER Andre" a écrit
dans
le
message de news:Je veux faire le DCount et le DMin par ligne et non pas par
colonne
en
excluant les enregistrements Nuls.
--
AndreBonjour
Je ne comprends pas très bien ta question...
Par contre pour éviter les problèmes de calcul à cause des
valeurs
nulles,
tu peux regarder l'aide sur la fonction Nz().
@+
Jessy Sempere - Access MVP
------------------------------------
Site @ccess : http://access.fr.free.fr/
Pour l'efficacité de tous :
http://www.mpfa.info/
------------------------------------
"DENNLER Andre" a
écrit
dans
le
message de news:Bonjour,
Dans une requête j'ai plusieurs colonnes avec des chiffres
et/ou
des
valeurs
nulles par ligne.
Question 1 : comment faire 1 Dcount par ligne pour sur les
valeurs0 ?
Question 2 : Comment faire 1 DMin par ligne pour sur les
valeurs0
?
D'avance merci.
--
Andre
Bonjour,
J'ai fait la correction mais j'ai toujours le même résultat, pour écrire
mes
formules j'avais utilisé le "générateur d'expression" qui a mis les
synthaxes.
--
AndreBonjour
Je ne suis pas rentré dans les détails, mais je vois une synthaxe dans
tes
Iif qui me paraît erronnée, tu mets :
IIf([RqCourse02F.Points]>0,1,0)
hors il faudrait je pense :
IIf([RqCourse02F].[Points]>0,1,0)
En fait, tu luis dis que tu as un champ qui se nomme "RqCourse02F.Points"
hors le nom de ton champs c'est "Points" et il appartient à la requête
"RqCourse02F".
Modifie donc dans ta requête toutes ces synthaxes et là je pense que ça
marchera mieux...
Tiens nous au courant
--
@+
Jessy Sempere - Access MVP
------------------------------------
Site @ccess : http://access.fr.free.fr/
Pour l'efficacité de tous :
http://www.mpfa.info/
------------------------------------
"DENNLER Andre" a écrit dans le
message de news:Bonjour,
Je pense que j'avais mal compris la demande, je ne suis pas tellement
familiarisé avec les termes techniques.
La formule SQL :
SELECT TbNomsF.[Nom-Prénom], TbNomsF.Club, RqCourse01F.Points,
RqCourse02F.Points, RqCourse03F.Points, RqCourse04F.Points,
RqCourse05F.Points,
Nz([RqCourse01F.Points],0)+Nz([RqCourse02F.Points],0)+Nz([RqCourse03F.Points],0)+Nz([RqCourse04F.Points],0)+Nz([RqCourse05F.Points],0)
AS Total,
IIf([RqCourse01F.Points]>0,1,0)+IIf([RqCourse05F.Points]>0,1,0)
AS
FR, IIf([RqCourse02F.Points]>0,1,0)+IIf([RqCourse04F.Points]>0,1,0) AS
DE,
IIf([RqCourse03F.Points]>0,1,0) AS LU,
IIf([RqCourse01F.Points]>0,1,0)+IIf([RqCourse02F.Points]>0,1,0)+IIf([RqCourse03F.Points]>0,1,0)+IIf([RqCourse04F.Points]>0,1,0)+IIf([RqCourse05F.Points]>0,1,0)
AS NrCourses,
+IIf(Nz([RqCourse01F.Points],0)+Nz([RqCourse05F.Points],0)>0,1,0)+IIf(Nz([RqCourse02F.Points],0)+Nz([RqCourse04F.Points],0)>0,1,0)+IIf([RqCourse03F.Points]>0,1,0)
AS Clé,
IIf([RqCourse01F.Points]>=[RqCourse02F.Points],[RqCourse02F.Points],IIf([RqCourse02F.Points]>=[RqCourse03F.Points],[RqCourse03F.Points],IIf([RqCourse03F.Points]>=[RqCourse04F.Points],[RqCourse04F.Points],IIf([RqCourse04F.Points]>=[RqCourse05F.Points],[RqCourse05F.Points]))))
AS MinPointsF, IIf([NrCourses]=5,[Total]-[MinPointsF],[Total]) AS Final
FROM ((((TbNomsF LEFT JOIN RqCourse01F ON (TbNomsF.Club >> > RqCourse01F.Club)
AND (TbNomsF.[Nom-Prénom] = RqCourse01F.[Nom-Prénom])) LEFT JOIN
RqCourse02F
ON (TbNomsF.[Nom-Prénom] = RqCourse02F.[Nom-Prénom]) AND (TbNomsF.ClubRqCourse02F.Club)) LEFT JOIN RqCourse03F ON (TbNomsF.[Nom-Prénom] >> > RqCourse03F.[Nom-Prénom]) AND (TbNomsF.Club = RqCourse03F.Club)) LEFT
JOIN
RqCourse04F ON (TbNomsF.Club = RqCourse04F.Club) AND
(TbNomsF.[Nom-Prénom]RqCourse04F.[Nom-Prénom])) LEFT JOIN RqCourse05F ON (TbNomsF.Club >> > RqCourse05F.Club) AND (TbNomsF.[Nom-Prénom] = RqCourse05F.[Nom-Prénom])
GROUP BY TbNomsF.[Nom-Prénom], TbNomsF.Club, RqCourse01F.Points,
RqCourse02F.Points, RqCourse03F.Points, RqCourse04F.Points,
RqCourse05F.Points,
Nz([RqCourse01F.Points],0)+Nz([RqCourse02F.Points],0)+Nz([RqCourse03F.Points],0)+Nz([RqCourse04F.Points],0)+Nz([RqCourse05F.Points],0),
IIf([RqCourse01F.Points]>0,1,0)+IIf([RqCourse05F.Points]>0,1,0),
IIf([RqCourse02F.Points]>0,1,0)+IIf([RqCourse04F.Points]>0,1,0),
IIf([RqCourse03F.Points]>0,1,0),
IIf([RqCourse01F.Points]>0,1,0)+IIf([RqCourse02F.Points]>0,1,0)+IIf([RqCourse03F.Points]>0,1,0)+IIf([RqCourse04F.Points]>0,1,0)+IIf([RqCourse05F.Points]>0,1,0),
+IIf(Nz([RqCourse01F.Points],0)+Nz([RqCourse05F.Points],0)>0,1,0)+IIf(Nz([RqCourse02F.Points],0)+Nz([RqCourse04F.Points],0)>0,1,0)+IIf([RqCourse03F.Points]>0,1,0),
IIf([RqCourse01F.Points]>=[RqCourse02F.Points],[RqCourse02F.Points],IIf([RqCourse02F.Points]>=[RqCourse03F.Points],[RqCourse03F.Points],IIf([RqCourse03F.Points]>=[RqCourse04F.Points],[RqCourse04F.Points],IIf([RqCourse04F.Points]>=[RqCourse05F.Points],[RqCourse05F.Points])))),
IIf([NrCourses]=5,[Total]-[MinPointsF],[Total])
ORDER BY
Nz([RqCourse01F.Points],0)+Nz([RqCourse02F.Points],0)+Nz([RqCourse03F.Points],0)+Nz([RqCourse04F.Points],0)+Nz([RqCourse05F.Points],0)
DESC;
D'avance merci.
--
AndreBonjour
Comme demandé avant, peux-tu nous donner le SQL de ta requête ?
--
@+
Jessy Sempere - Access MVP
------------------------------------
Site @ccess : http://access.fr.free.fr/
Pour l'efficacité de tous :
http://www.mpfa.info/
------------------------------------
"DENNLER Andre" a écrit dans
le
message de news:Bonjour,
Ci-dessous la formule qui me pose problème :
Final: VraiFaux([NrCourses]=5;[Total]-[MinPointsF];[Total])
Les champs [NrCourses], [Total] et [MinPointsF] sont déjà des champs
calculés, même si je simplifie la formule j'ai toujours le même
problème,
si
je valide le message "Paramètre" à blanc la requête s'ouvre et les
résultats
des calculs sont justes, je pense que celà exclue une erreur de
syntaxe
en
amont.
--
AndreRe,Merci pour la réponse, cependant j'ai toujours mon problème de
message
"Entrez les valeurs du paramètre " quand j'utilise le résultat
dans
une
autre
colonne calculée.
Je doit préciser que c'est une requête très compliquée qui
regroupe
1
table
et 5 requêtes en amont avec plusieurs colonnes calculées (de
nombreux
Vraifaux).
J'ai essayé de démultiplier cette requête mais dès que je me
retrouve
dans
la colonne de calcul final j'ai le message.
La colonne calculée qui est responsable du message utilise
simplement
la
formule : Colonne X - ColonneY.
Merci pour la réponse.
Ta formule doit être [Colonne X] - [Colonne Y]
Peux-tu nous donner le SQL de la requête finale pour y voir un peu
plus
clair ?
--
@+
Jessy Sempere - Access MVP
------------------------------------
Site @ccess : http://access.fr.free.fr/
Pour l'efficacité de tous :
http://www.mpfa.info/
------------------------------------Bonjour
Ok donc je t'ai fait un code pour retourner la valeur minimale
entre
plusieurs champ, tu le trouveras ici :
http://access.fr.free.fr/articles.php?lng=fr&pg9
Comme je le disais, il te suffit de faire une requête de ce type
Select Champ1, VariableMin([Val1],[Val2],[Val3],...) As
Resultat
From TaTable;
Voilà
--
@+
Jessy Sempere - Access MVP
------------------------------------
Site @ccess : http://access.fr.free.fr/
Pour l'efficacité de tous :
http://www.mpfa.info/
------------------------------------
"DENNLER Andre" a écrit
dans
le
message de news:Bonjour,
C'est avec un peut de retard que je continue car je n'est pas
travaillé
pendant plusieurs jours sur ma base.
- Pour compter le problème est résolue.
- pour la valeur Minimum je n'est pas réussi à mettre en place
la
solution
préconisée (je ne connais pas trop VBA, je ne fais que
copier),
par
contre
j'ai réussi à le faire avec une succession de colonnes
calculées
en
VraiFaux.
Cependant comme j'utilise c'est colonnes calculées à la suite
les
unes
des
autres j'ai le message "Entrer la valeur du paramètre" pour
chaque
colonne
calculée lorsque que j'ouvre la requête, en validant à blanc
pour
chacune
d'elle le requête s'ouvre et les calculs sont justes.
Ma nouvelle question : comment éviter le message "Entrer la
valeur
du
paramètre" ?
D'avance merci.
--
AndreRe,
Pour la valeur minimale entre plusieurs champ, tu peux
t'inspirer
de
ce
lien, il faudra juste adapter un peu le code :
http://access.fr.free.fr/articles.php?lng=fr&pgT
Et il te suffira d'appeler le code dans une requête de la
manière
suivante :
Select Champ1,
VariableMax(nz([Val1],0),nz([Val2],0),nz([Val3],0),...)
As
Resultat
From TaTable;
Par contre tu dis que tu veux compter, si tu veux savoir
combien
de
colonne
par ligne ont une valeur, tu peux essayer de faire un champ
calculé
du
genre
:
Vraifaux(nz([[TonChamp1];0)=0;0;1)+Vraifaux(nz([[TonChamp2];0)=0;0;1)+Vraifaux(nz([[TonChamp3];0)=0;0;1)+...
Voilà
@+
Jessy Sempere - Access MVP
------------------------------------
Site @ccess : http://access.fr.free.fr/
Pour l'efficacité de tous :
http://www.mpfa.info/
------------------------------------
"DENNLER Andre" a
écrit
dans
le
message de news:Je veux faire le DCount et le DMin par ligne et non pas par
colonne
en
excluant les enregistrements Nuls.
--
AndreBonjour
Je ne comprends pas très bien ta question...
Par contre pour éviter les problèmes de calcul à cause des
valeurs
nulles,
tu peux regarder l'aide sur la fonction Nz().
@+
Jessy Sempere - Access MVP
------------------------------------
Site @ccess : http://access.fr.free.fr/
Pour l'efficacité de tous :
http://www.mpfa.info/
------------------------------------
"DENNLER Andre" a
écrit
dans
le
message de news:Bonjour,
Dans une requête j'ai plusieurs colonnes avec des
chiffres
et/ou
des
Bonjour,
J'ai fait la correction mais j'ai toujours le même résultat, pour écrire
mes
formules j'avais utilisé le "générateur d'expression" qui a mis les
synthaxes.
--
Andre
Bonjour
Je ne suis pas rentré dans les détails, mais je vois une synthaxe dans
tes
Iif qui me paraît erronnée, tu mets :
IIf([RqCourse02F.Points]>0,1,0)
hors il faudrait je pense :
IIf([RqCourse02F].[Points]>0,1,0)
En fait, tu luis dis que tu as un champ qui se nomme "RqCourse02F.Points"
hors le nom de ton champs c'est "Points" et il appartient à la requête
"RqCourse02F".
Modifie donc dans ta requête toutes ces synthaxes et là je pense que ça
marchera mieux...
Tiens nous au courant
--
@+
Jessy Sempere - Access MVP
news@access.fr.vu
------------------------------------
Site @ccess : http://access.fr.free.fr/
Pour l'efficacité de tous :
http://www.mpfa.info/
------------------------------------
"DENNLER Andre" <DENNLERAndre@discussions.microsoft.com> a écrit dans le
message de news: 59848E9A-B745-4874-8192-DCDE2753004D@microsoft.com...
Bonjour,
Je pense que j'avais mal compris la demande, je ne suis pas tellement
familiarisé avec les termes techniques.
La formule SQL :
SELECT TbNomsF.[Nom-Prénom], TbNomsF.Club, RqCourse01F.Points,
RqCourse02F.Points, RqCourse03F.Points, RqCourse04F.Points,
RqCourse05F.Points,
Nz([RqCourse01F.Points],0)+Nz([RqCourse02F.Points],0)+Nz([RqCourse03F.Points],0)+Nz([RqCourse04F.Points],0)+Nz([RqCourse05F.Points],0)
AS Total,
IIf([RqCourse01F.Points]>0,1,0)+IIf([RqCourse05F.Points]>0,1,0)
AS
FR, IIf([RqCourse02F.Points]>0,1,0)+IIf([RqCourse04F.Points]>0,1,0) AS
DE,
IIf([RqCourse03F.Points]>0,1,0) AS LU,
IIf([RqCourse01F.Points]>0,1,0)+IIf([RqCourse02F.Points]>0,1,0)+IIf([RqCourse03F.Points]>0,1,0)+IIf([RqCourse04F.Points]>0,1,0)+IIf([RqCourse05F.Points]>0,1,0)
AS NrCourses,
+IIf(Nz([RqCourse01F.Points],0)+Nz([RqCourse05F.Points],0)>0,1,0)+IIf(Nz([RqCourse02F.Points],0)+Nz([RqCourse04F.Points],0)>0,1,0)+IIf([RqCourse03F.Points]>0,1,0)
AS Clé,
IIf([RqCourse01F.Points]>=[RqCourse02F.Points],[RqCourse02F.Points],IIf([RqCourse02F.Points]>=[RqCourse03F.Points],[RqCourse03F.Points],IIf([RqCourse03F.Points]>=[RqCourse04F.Points],[RqCourse04F.Points],IIf([RqCourse04F.Points]>=[RqCourse05F.Points],[RqCourse05F.Points]))))
AS MinPointsF, IIf([NrCourses]=5,[Total]-[MinPointsF],[Total]) AS Final
FROM ((((TbNomsF LEFT JOIN RqCourse01F ON (TbNomsF.Club >> > RqCourse01F.Club)
AND (TbNomsF.[Nom-Prénom] = RqCourse01F.[Nom-Prénom])) LEFT JOIN
RqCourse02F
ON (TbNomsF.[Nom-Prénom] = RqCourse02F.[Nom-Prénom]) AND (TbNomsF.Club
RqCourse02F.Club)) LEFT JOIN RqCourse03F ON (TbNomsF.[Nom-Prénom] >> > RqCourse03F.[Nom-Prénom]) AND (TbNomsF.Club = RqCourse03F.Club)) LEFT
JOIN
RqCourse04F ON (TbNomsF.Club = RqCourse04F.Club) AND
(TbNomsF.[Nom-Prénom]
RqCourse04F.[Nom-Prénom])) LEFT JOIN RqCourse05F ON (TbNomsF.Club >> > RqCourse05F.Club) AND (TbNomsF.[Nom-Prénom] = RqCourse05F.[Nom-Prénom])
GROUP BY TbNomsF.[Nom-Prénom], TbNomsF.Club, RqCourse01F.Points,
RqCourse02F.Points, RqCourse03F.Points, RqCourse04F.Points,
RqCourse05F.Points,
Nz([RqCourse01F.Points],0)+Nz([RqCourse02F.Points],0)+Nz([RqCourse03F.Points],0)+Nz([RqCourse04F.Points],0)+Nz([RqCourse05F.Points],0),
IIf([RqCourse01F.Points]>0,1,0)+IIf([RqCourse05F.Points]>0,1,0),
IIf([RqCourse02F.Points]>0,1,0)+IIf([RqCourse04F.Points]>0,1,0),
IIf([RqCourse03F.Points]>0,1,0),
IIf([RqCourse01F.Points]>0,1,0)+IIf([RqCourse02F.Points]>0,1,0)+IIf([RqCourse03F.Points]>0,1,0)+IIf([RqCourse04F.Points]>0,1,0)+IIf([RqCourse05F.Points]>0,1,0),
+IIf(Nz([RqCourse01F.Points],0)+Nz([RqCourse05F.Points],0)>0,1,0)+IIf(Nz([RqCourse02F.Points],0)+Nz([RqCourse04F.Points],0)>0,1,0)+IIf([RqCourse03F.Points]>0,1,0),
IIf([RqCourse01F.Points]>=[RqCourse02F.Points],[RqCourse02F.Points],IIf([RqCourse02F.Points]>=[RqCourse03F.Points],[RqCourse03F.Points],IIf([RqCourse03F.Points]>=[RqCourse04F.Points],[RqCourse04F.Points],IIf([RqCourse04F.Points]>=[RqCourse05F.Points],[RqCourse05F.Points])))),
IIf([NrCourses]=5,[Total]-[MinPointsF],[Total])
ORDER BY
Nz([RqCourse01F.Points],0)+Nz([RqCourse02F.Points],0)+Nz([RqCourse03F.Points],0)+Nz([RqCourse04F.Points],0)+Nz([RqCourse05F.Points],0)
DESC;
D'avance merci.
--
Andre
Bonjour
Comme demandé avant, peux-tu nous donner le SQL de ta requête ?
--
@+
Jessy Sempere - Access MVP
news@access.fr.vu
------------------------------------
Site @ccess : http://access.fr.free.fr/
Pour l'efficacité de tous :
http://www.mpfa.info/
------------------------------------
"DENNLER Andre" <DENNLERAndre@discussions.microsoft.com> a écrit dans
le
message de news: 56F9FED4-67ED-4B34-A922-8E6B99A4F766@microsoft.com...
Bonjour,
Ci-dessous la formule qui me pose problème :
Final: VraiFaux([NrCourses]=5;[Total]-[MinPointsF];[Total])
Les champs [NrCourses], [Total] et [MinPointsF] sont déjà des champs
calculés, même si je simplifie la formule j'ai toujours le même
problème,
si
je valide le message "Paramètre" à blanc la requête s'ouvre et les
résultats
des calculs sont justes, je pense que celà exclue une erreur de
syntaxe
en
amont.
--
Andre
Re,
Merci pour la réponse, cependant j'ai toujours mon problème de
message
"Entrez les valeurs du paramètre " quand j'utilise le résultat
dans
une
autre
colonne calculée.
Je doit préciser que c'est une requête très compliquée qui
regroupe
1
table
et 5 requêtes en amont avec plusieurs colonnes calculées (de
nombreux
Vraifaux).
J'ai essayé de démultiplier cette requête mais dès que je me
retrouve
dans
la colonne de calcul final j'ai le message.
La colonne calculée qui est responsable du message utilise
simplement
la
formule : Colonne X - ColonneY.
Merci pour la réponse.
Ta formule doit être [Colonne X] - [Colonne Y]
Peux-tu nous donner le SQL de la requête finale pour y voir un peu
plus
clair ?
--
@+
Jessy Sempere - Access MVP
news@access.fr.vu
------------------------------------
Site @ccess : http://access.fr.free.fr/
Pour l'efficacité de tous :
http://www.mpfa.info/
------------------------------------
Bonjour
Ok donc je t'ai fait un code pour retourner la valeur minimale
entre
plusieurs champ, tu le trouveras ici :
http://access.fr.free.fr/articles.php?lng=fr&pg9
Comme je le disais, il te suffit de faire une requête de ce type
Select Champ1, VariableMin([Val1],[Val2],[Val3],...) As
Resultat
From TaTable;
Voilà
--
@+
Jessy Sempere - Access MVP
news@access.fr.vu
------------------------------------
Site @ccess : http://access.fr.free.fr/
Pour l'efficacité de tous :
http://www.mpfa.info/
------------------------------------
"DENNLER Andre" <DENNLERAndre@discussions.microsoft.com> a écrit
dans
le
message de news:
48B94DEA-4F40-478E-B4FF-4DA999087611@microsoft.com...
Bonjour,
C'est avec un peut de retard que je continue car je n'est pas
travaillé
pendant plusieurs jours sur ma base.
- Pour compter le problème est résolue.
- pour la valeur Minimum je n'est pas réussi à mettre en place
la
solution
préconisée (je ne connais pas trop VBA, je ne fais que
copier),
par
contre
j'ai réussi à le faire avec une succession de colonnes
calculées
en
VraiFaux.
Cependant comme j'utilise c'est colonnes calculées à la suite
les
unes
des
autres j'ai le message "Entrer la valeur du paramètre" pour
chaque
colonne
calculée lorsque que j'ouvre la requête, en validant à blanc
pour
chacune
d'elle le requête s'ouvre et les calculs sont justes.
Ma nouvelle question : comment éviter le message "Entrer la
valeur
du
paramètre" ?
D'avance merci.
--
Andre
Re,
Pour la valeur minimale entre plusieurs champ, tu peux
t'inspirer
de
ce
lien, il faudra juste adapter un peu le code :
http://access.fr.free.fr/articles.php?lng=fr&pgT
Et il te suffira d'appeler le code dans une requête de la
manière
suivante :
Select Champ1,
VariableMax(nz([Val1],0),nz([Val2],0),nz([Val3],0),...)
As
Resultat
From TaTable;
Par contre tu dis que tu veux compter, si tu veux savoir
combien
de
colonne
par ligne ont une valeur, tu peux essayer de faire un champ
calculé
du
genre
:
Vraifaux(nz([[TonChamp1];0)=0;0;1)+Vraifaux(nz([[TonChamp2];0)=0;0;1)+Vraifaux(nz([[TonChamp3];0)=0;0;1)+...
Voilà
@+
Jessy Sempere - Access MVP
news@access.fr.vu
------------------------------------
Site @ccess : http://access.fr.free.fr/
Pour l'efficacité de tous :
http://www.mpfa.info/
------------------------------------
"DENNLER Andre" <DENNLERAndre@discussions.microsoft.com> a
écrit
dans
le
message de news:
73622BCA-2EA3-4240-AB1B-A11B53C496BD@microsoft.com...
Je veux faire le DCount et le DMin par ligne et non pas par
colonne
en
excluant les enregistrements Nuls.
--
Andre
Bonjour
Je ne comprends pas très bien ta question...
Par contre pour éviter les problèmes de calcul à cause des
valeurs
nulles,
tu peux regarder l'aide sur la fonction Nz().
@+
Jessy Sempere - Access MVP
news@access.fr.vu
------------------------------------
Site @ccess : http://access.fr.free.fr/
Pour l'efficacité de tous :
http://www.mpfa.info/
------------------------------------
"DENNLER Andre" <DENNLERAndre@discussions.microsoft.com> a
écrit
dans
le
message de news:
27B7C566-904B-4E76-BABC-880F0EB7E409@microsoft.com...
Bonjour,
Dans une requête j'ai plusieurs colonnes avec des
chiffres
et/ou
des
Bonjour,
J'ai fait la correction mais j'ai toujours le même résultat, pour écrire
mes
formules j'avais utilisé le "générateur d'expression" qui a mis les
synthaxes.
--
AndreBonjour
Je ne suis pas rentré dans les détails, mais je vois une synthaxe dans
tes
Iif qui me paraît erronnée, tu mets :
IIf([RqCourse02F.Points]>0,1,0)
hors il faudrait je pense :
IIf([RqCourse02F].[Points]>0,1,0)
En fait, tu luis dis que tu as un champ qui se nomme "RqCourse02F.Points"
hors le nom de ton champs c'est "Points" et il appartient à la requête
"RqCourse02F".
Modifie donc dans ta requête toutes ces synthaxes et là je pense que ça
marchera mieux...
Tiens nous au courant
--
@+
Jessy Sempere - Access MVP
------------------------------------
Site @ccess : http://access.fr.free.fr/
Pour l'efficacité de tous :
http://www.mpfa.info/
------------------------------------
"DENNLER Andre" a écrit dans le
message de news:Bonjour,
Je pense que j'avais mal compris la demande, je ne suis pas tellement
familiarisé avec les termes techniques.
La formule SQL :
SELECT TbNomsF.[Nom-Prénom], TbNomsF.Club, RqCourse01F.Points,
RqCourse02F.Points, RqCourse03F.Points, RqCourse04F.Points,
RqCourse05F.Points,
Nz([RqCourse01F.Points],0)+Nz([RqCourse02F.Points],0)+Nz([RqCourse03F.Points],0)+Nz([RqCourse04F.Points],0)+Nz([RqCourse05F.Points],0)
AS Total,
IIf([RqCourse01F.Points]>0,1,0)+IIf([RqCourse05F.Points]>0,1,0)
AS
FR, IIf([RqCourse02F.Points]>0,1,0)+IIf([RqCourse04F.Points]>0,1,0) AS
DE,
IIf([RqCourse03F.Points]>0,1,0) AS LU,
IIf([RqCourse01F.Points]>0,1,0)+IIf([RqCourse02F.Points]>0,1,0)+IIf([RqCourse03F.Points]>0,1,0)+IIf([RqCourse04F.Points]>0,1,0)+IIf([RqCourse05F.Points]>0,1,0)
AS NrCourses,
+IIf(Nz([RqCourse01F.Points],0)+Nz([RqCourse05F.Points],0)>0,1,0)+IIf(Nz([RqCourse02F.Points],0)+Nz([RqCourse04F.Points],0)>0,1,0)+IIf([RqCourse03F.Points]>0,1,0)
AS Clé,
IIf([RqCourse01F.Points]>=[RqCourse02F.Points],[RqCourse02F.Points],IIf([RqCourse02F.Points]>=[RqCourse03F.Points],[RqCourse03F.Points],IIf([RqCourse03F.Points]>=[RqCourse04F.Points],[RqCourse04F.Points],IIf([RqCourse04F.Points]>=[RqCourse05F.Points],[RqCourse05F.Points]))))
AS MinPointsF, IIf([NrCourses]=5,[Total]-[MinPointsF],[Total]) AS Final
FROM ((((TbNomsF LEFT JOIN RqCourse01F ON (TbNomsF.Club >> > RqCourse01F.Club)
AND (TbNomsF.[Nom-Prénom] = RqCourse01F.[Nom-Prénom])) LEFT JOIN
RqCourse02F
ON (TbNomsF.[Nom-Prénom] = RqCourse02F.[Nom-Prénom]) AND (TbNomsF.ClubRqCourse02F.Club)) LEFT JOIN RqCourse03F ON (TbNomsF.[Nom-Prénom] >> > RqCourse03F.[Nom-Prénom]) AND (TbNomsF.Club = RqCourse03F.Club)) LEFT
JOIN
RqCourse04F ON (TbNomsF.Club = RqCourse04F.Club) AND
(TbNomsF.[Nom-Prénom]RqCourse04F.[Nom-Prénom])) LEFT JOIN RqCourse05F ON (TbNomsF.Club >> > RqCourse05F.Club) AND (TbNomsF.[Nom-Prénom] = RqCourse05F.[Nom-Prénom])
GROUP BY TbNomsF.[Nom-Prénom], TbNomsF.Club, RqCourse01F.Points,
RqCourse02F.Points, RqCourse03F.Points, RqCourse04F.Points,
RqCourse05F.Points,
Nz([RqCourse01F.Points],0)+Nz([RqCourse02F.Points],0)+Nz([RqCourse03F.Points],0)+Nz([RqCourse04F.Points],0)+Nz([RqCourse05F.Points],0),
IIf([RqCourse01F.Points]>0,1,0)+IIf([RqCourse05F.Points]>0,1,0),
IIf([RqCourse02F.Points]>0,1,0)+IIf([RqCourse04F.Points]>0,1,0),
IIf([RqCourse03F.Points]>0,1,0),
IIf([RqCourse01F.Points]>0,1,0)+IIf([RqCourse02F.Points]>0,1,0)+IIf([RqCourse03F.Points]>0,1,0)+IIf([RqCourse04F.Points]>0,1,0)+IIf([RqCourse05F.Points]>0,1,0),
+IIf(Nz([RqCourse01F.Points],0)+Nz([RqCourse05F.Points],0)>0,1,0)+IIf(Nz([RqCourse02F.Points],0)+Nz([RqCourse04F.Points],0)>0,1,0)+IIf([RqCourse03F.Points]>0,1,0),
IIf([RqCourse01F.Points]>=[RqCourse02F.Points],[RqCourse02F.Points],IIf([RqCourse02F.Points]>=[RqCourse03F.Points],[RqCourse03F.Points],IIf([RqCourse03F.Points]>=[RqCourse04F.Points],[RqCourse04F.Points],IIf([RqCourse04F.Points]>=[RqCourse05F.Points],[RqCourse05F.Points])))),
IIf([NrCourses]=5,[Total]-[MinPointsF],[Total])
ORDER BY
Nz([RqCourse01F.Points],0)+Nz([RqCourse02F.Points],0)+Nz([RqCourse03F.Points],0)+Nz([RqCourse04F.Points],0)+Nz([RqCourse05F.Points],0)
DESC;
D'avance merci.
--
AndreBonjour
Comme demandé avant, peux-tu nous donner le SQL de ta requête ?
--
@+
Jessy Sempere - Access MVP
------------------------------------
Site @ccess : http://access.fr.free.fr/
Pour l'efficacité de tous :
http://www.mpfa.info/
------------------------------------
"DENNLER Andre" a écrit dans
le
message de news:Bonjour,
Ci-dessous la formule qui me pose problème :
Final: VraiFaux([NrCourses]=5;[Total]-[MinPointsF];[Total])
Les champs [NrCourses], [Total] et [MinPointsF] sont déjà des champs
calculés, même si je simplifie la formule j'ai toujours le même
problème,
si
je valide le message "Paramètre" à blanc la requête s'ouvre et les
résultats
des calculs sont justes, je pense que celà exclue une erreur de
syntaxe
en
amont.
--
AndreRe,Merci pour la réponse, cependant j'ai toujours mon problème de
message
"Entrez les valeurs du paramètre " quand j'utilise le résultat
dans
une
autre
colonne calculée.
Je doit préciser que c'est une requête très compliquée qui
regroupe
1
table
et 5 requêtes en amont avec plusieurs colonnes calculées (de
nombreux
Vraifaux).
J'ai essayé de démultiplier cette requête mais dès que je me
retrouve
dans
la colonne de calcul final j'ai le message.
La colonne calculée qui est responsable du message utilise
simplement
la
formule : Colonne X - ColonneY.
Merci pour la réponse.
Ta formule doit être [Colonne X] - [Colonne Y]
Peux-tu nous donner le SQL de la requête finale pour y voir un peu
plus
clair ?
--
@+
Jessy Sempere - Access MVP
------------------------------------
Site @ccess : http://access.fr.free.fr/
Pour l'efficacité de tous :
http://www.mpfa.info/
------------------------------------Bonjour
Ok donc je t'ai fait un code pour retourner la valeur minimale
entre
plusieurs champ, tu le trouveras ici :
http://access.fr.free.fr/articles.php?lng=fr&pg9
Comme je le disais, il te suffit de faire une requête de ce type
Select Champ1, VariableMin([Val1],[Val2],[Val3],...) As
Resultat
From TaTable;
Voilà
--
@+
Jessy Sempere - Access MVP
------------------------------------
Site @ccess : http://access.fr.free.fr/
Pour l'efficacité de tous :
http://www.mpfa.info/
------------------------------------
"DENNLER Andre" a écrit
dans
le
message de news:Bonjour,
C'est avec un peut de retard que je continue car je n'est pas
travaillé
pendant plusieurs jours sur ma base.
- Pour compter le problème est résolue.
- pour la valeur Minimum je n'est pas réussi à mettre en place
la
solution
préconisée (je ne connais pas trop VBA, je ne fais que
copier),
par
contre
j'ai réussi à le faire avec une succession de colonnes
calculées
en
VraiFaux.
Cependant comme j'utilise c'est colonnes calculées à la suite
les
unes
des
autres j'ai le message "Entrer la valeur du paramètre" pour
chaque
colonne
calculée lorsque que j'ouvre la requête, en validant à blanc
pour
chacune
d'elle le requête s'ouvre et les calculs sont justes.
Ma nouvelle question : comment éviter le message "Entrer la
valeur
du
paramètre" ?
D'avance merci.
--
AndreRe,
Pour la valeur minimale entre plusieurs champ, tu peux
t'inspirer
de
ce
lien, il faudra juste adapter un peu le code :
http://access.fr.free.fr/articles.php?lng=fr&pgT
Et il te suffira d'appeler le code dans une requête de la
manière
suivante :
Select Champ1,
VariableMax(nz([Val1],0),nz([Val2],0),nz([Val3],0),...)
As
Resultat
From TaTable;
Par contre tu dis que tu veux compter, si tu veux savoir
combien
de
colonne
par ligne ont une valeur, tu peux essayer de faire un champ
calculé
du
genre
:
Vraifaux(nz([[TonChamp1];0)=0;0;1)+Vraifaux(nz([[TonChamp2];0)=0;0;1)+Vraifaux(nz([[TonChamp3];0)=0;0;1)+...
Voilà
@+
Jessy Sempere - Access MVP
------------------------------------
Site @ccess : http://access.fr.free.fr/
Pour l'efficacité de tous :
http://www.mpfa.info/
------------------------------------
"DENNLER Andre" a
écrit
dans
le
message de news:Je veux faire le DCount et le DMin par ligne et non pas par
colonne
en
excluant les enregistrements Nuls.
--
AndreBonjour
Je ne comprends pas très bien ta question...
Par contre pour éviter les problèmes de calcul à cause des
valeurs
nulles,
tu peux regarder l'aide sur la fonction Nz().
@+
Jessy Sempere - Access MVP
------------------------------------
Site @ccess : http://access.fr.free.fr/
Pour l'efficacité de tous :
http://www.mpfa.info/
------------------------------------
"DENNLER Andre" a
écrit
dans
le
message de news:Bonjour,
Dans une requête j'ai plusieurs colonnes avec des
chiffres
et/ou
des
Ok,
Bon je pense que le problème vient du fait de ton regroupement du champ
calculé "Final"
En mode création de ta requête, sur la ligne opération de ce champ, mets
Expression à la place de Regroupement.
Normalement ça devrait être bon
@+
Jessy Sempere - Access MVP
------------------------------------
Site @ccess : http://access.fr.free.fr/
Pour l'efficacité de tous :
http://www.mpfa.info/
------------------------------------
"DENNLER Andre" a écrit dans le
message de news:Bonjour,
J'ai fait la correction mais j'ai toujours le même résultat, pour écrire
mes
formules j'avais utilisé le "générateur d'expression" qui a mis les
synthaxes.
--
AndreBonjour
Je ne suis pas rentré dans les détails, mais je vois une synthaxe dans
tes
Iif qui me paraît erronnée, tu mets :
IIf([RqCourse02F.Points]>0,1,0)
hors il faudrait je pense :
IIf([RqCourse02F].[Points]>0,1,0)
En fait, tu luis dis que tu as un champ qui se nomme "RqCourse02F.Points"
hors le nom de ton champs c'est "Points" et il appartient à la requête
"RqCourse02F".
Modifie donc dans ta requête toutes ces synthaxes et là je pense que ça
marchera mieux...
Tiens nous au courant
--
@+
Jessy Sempere - Access MVP
------------------------------------
Site @ccess : http://access.fr.free.fr/
Pour l'efficacité de tous :
http://www.mpfa.info/
------------------------------------
"DENNLER Andre" a écrit dans le
message de news:Bonjour,
Je pense que j'avais mal compris la demande, je ne suis pas tellement
familiarisé avec les termes techniques.
La formule SQL :
SELECT TbNomsF.[Nom-Prénom], TbNomsF.Club, RqCourse01F.Points,
RqCourse02F.Points, RqCourse03F.Points, RqCourse04F.Points,
RqCourse05F.Points,
Nz([RqCourse01F.Points],0)+Nz([RqCourse02F.Points],0)+Nz([RqCourse03F.Points],0)+Nz([RqCourse04F.Points],0)+Nz([RqCourse05F.Points],0)
AS Total,
IIf([RqCourse01F.Points]>0,1,0)+IIf([RqCourse05F.Points]>0,1,0)
AS
FR, IIf([RqCourse02F.Points]>0,1,0)+IIf([RqCourse04F.Points]>0,1,0) AS
DE,
IIf([RqCourse03F.Points]>0,1,0) AS LU,
IIf([RqCourse01F.Points]>0,1,0)+IIf([RqCourse02F.Points]>0,1,0)+IIf([RqCourse03F.Points]>0,1,0)+IIf([RqCourse04F.Points]>0,1,0)+IIf([RqCourse05F.Points]>0,1,0)
AS NrCourses,
+IIf(Nz([RqCourse01F.Points],0)+Nz([RqCourse05F.Points],0)>0,1,0)+IIf(Nz([RqCourse02F.Points],0)+Nz([RqCourse04F.Points],0)>0,1,0)+IIf([RqCourse03F.Points]>0,1,0)
AS Clé,
IIf([RqCourse01F.Points]>=[RqCourse02F.Points],[RqCourse02F.Points],IIf([RqCourse02F.Points]>=[RqCourse03F.Points],[RqCourse03F.Points],IIf([RqCourse03F.Points]>=[RqCourse04F.Points],[RqCourse04F.Points],IIf([RqCourse04F.Points]>=[RqCourse05F.Points],[RqCourse05F.Points]))))
AS MinPointsF, IIf([NrCourses]=5,[Total]-[MinPointsF],[Total]) AS Final
FROM ((((TbNomsF LEFT JOIN RqCourse01F ON (TbNomsF.Club > >> > RqCourse01F.Club)
AND (TbNomsF.[Nom-Prénom] = RqCourse01F.[Nom-Prénom])) LEFT JOIN
RqCourse02F
ON (TbNomsF.[Nom-Prénom] = RqCourse02F.[Nom-Prénom]) AND (TbNomsF.ClubRqCourse02F.Club)) LEFT JOIN RqCourse03F ON (TbNomsF.[Nom-Prénom] > >> > RqCourse03F.[Nom-Prénom]) AND (TbNomsF.Club = RqCourse03F.Club)) LEFT
JOIN
RqCourse04F ON (TbNomsF.Club = RqCourse04F.Club) AND
(TbNomsF.[Nom-Prénom]RqCourse04F.[Nom-Prénom])) LEFT JOIN RqCourse05F ON (TbNomsF.Club > >> > RqCourse05F.Club) AND (TbNomsF.[Nom-Prénom] = RqCourse05F.[Nom-Prénom])
GROUP BY TbNomsF.[Nom-Prénom], TbNomsF.Club, RqCourse01F.Points,
RqCourse02F.Points, RqCourse03F.Points, RqCourse04F.Points,
RqCourse05F.Points,
Nz([RqCourse01F.Points],0)+Nz([RqCourse02F.Points],0)+Nz([RqCourse03F.Points],0)+Nz([RqCourse04F.Points],0)+Nz([RqCourse05F.Points],0),
IIf([RqCourse01F.Points]>0,1,0)+IIf([RqCourse05F.Points]>0,1,0),
IIf([RqCourse02F.Points]>0,1,0)+IIf([RqCourse04F.Points]>0,1,0),
IIf([RqCourse03F.Points]>0,1,0),
IIf([RqCourse01F.Points]>0,1,0)+IIf([RqCourse02F.Points]>0,1,0)+IIf([RqCourse03F.Points]>0,1,0)+IIf([RqCourse04F.Points]>0,1,0)+IIf([RqCourse05F.Points]>0,1,0),
+IIf(Nz([RqCourse01F.Points],0)+Nz([RqCourse05F.Points],0)>0,1,0)+IIf(Nz([RqCourse02F.Points],0)+Nz([RqCourse04F.Points],0)>0,1,0)+IIf([RqCourse03F.Points]>0,1,0),
IIf([RqCourse01F.Points]>=[RqCourse02F.Points],[RqCourse02F.Points],IIf([RqCourse02F.Points]>=[RqCourse03F.Points],[RqCourse03F.Points],IIf([RqCourse03F.Points]>=[RqCourse04F.Points],[RqCourse04F.Points],IIf([RqCourse04F.Points]>=[RqCourse05F.Points],[RqCourse05F.Points])))),
IIf([NrCourses]=5,[Total]-[MinPointsF],[Total])
ORDER BY
Nz([RqCourse01F.Points],0)+Nz([RqCourse02F.Points],0)+Nz([RqCourse03F.Points],0)+Nz([RqCourse04F.Points],0)+Nz([RqCourse05F.Points],0)
DESC;
D'avance merci.
--
AndreBonjour
Comme demandé avant, peux-tu nous donner le SQL de ta requête ?
--
@+
Jessy Sempere - Access MVP
------------------------------------
Site @ccess : http://access.fr.free.fr/
Pour l'efficacité de tous :
http://www.mpfa.info/
------------------------------------
"DENNLER Andre" a écrit dans
le
message de news:Bonjour,
Ci-dessous la formule qui me pose problème :
Final: VraiFaux([NrCourses]=5;[Total]-[MinPointsF];[Total])
Les champs [NrCourses], [Total] et [MinPointsF] sont déjà des champs
calculés, même si je simplifie la formule j'ai toujours le même
problème,
si
je valide le message "Paramètre" à blanc la requête s'ouvre et les
résultats
des calculs sont justes, je pense que celà exclue une erreur de
syntaxe
en
amont.
--
AndreRe,Merci pour la réponse, cependant j'ai toujours mon problème de
message
"Entrez les valeurs du paramètre " quand j'utilise le résultat
dans
une
autre
colonne calculée.
Je doit préciser que c'est une requête très compliquée qui
regroupe
1
table
et 5 requêtes en amont avec plusieurs colonnes calculées (de
nombreux
Vraifaux).
J'ai essayé de démultiplier cette requête mais dès que je me
retrouve
dans
la colonne de calcul final j'ai le message.
La colonne calculée qui est responsable du message utilise
simplement
la
formule : Colonne X - ColonneY.
Merci pour la réponse.
Ta formule doit être [Colonne X] - [Colonne Y]
Peux-tu nous donner le SQL de la requête finale pour y voir un peu
plus
clair ?
--
@+
Jessy Sempere - Access MVP
------------------------------------
Site @ccess : http://access.fr.free.fr/
Pour l'efficacité de tous :
http://www.mpfa.info/
------------------------------------Bonjour
Ok donc je t'ai fait un code pour retourner la valeur minimale
entre
plusieurs champ, tu le trouveras ici :
http://access.fr.free.fr/articles.php?lng=fr&pg9
Comme je le disais, il te suffit de faire une requête de ce type
Select Champ1, VariableMin([Val1],[Val2],[Val3],...) As
Resultat
From TaTable;
Voilà
--
@+
Jessy Sempere - Access MVP
------------------------------------
Site @ccess : http://access.fr.free.fr/
Pour l'efficacité de tous :
http://www.mpfa.info/
------------------------------------
"DENNLER Andre" a écrit
dans
le
message de news:Bonjour,
C'est avec un peut de retard que je continue car je n'est pas
travaillé
pendant plusieurs jours sur ma base.
- Pour compter le problème est résolue.
- pour la valeur Minimum je n'est pas réussi à mettre en place
la
solution
préconisée (je ne connais pas trop VBA, je ne fais que
copier),
par
contre
j'ai réussi à le faire avec une succession de colonnes
calculées
en
VraiFaux.
Cependant comme j'utilise c'est colonnes calculées à la suite
les
unes
des
autres j'ai le message "Entrer la valeur du paramètre" pour
chaque
colonne
calculée lorsque que j'ouvre la requête, en validant à blanc
pour
chacune
d'elle le requête s'ouvre et les calculs sont justes.
Ma nouvelle question : comment éviter le message "Entrer la
valeur
du
paramètre" ?
D'avance merci.
--
AndreRe,
Pour la valeur minimale entre plusieurs champ, tu peux
t'inspirer
de
ce
lien, il faudra juste adapter un peu le code :
http://access.fr.free.fr/articles.php?lng=fr&pgT
Et il te suffira d'appeler le code dans une requête de la
manière
suivante :
Select Champ1,
VariableMax(nz([Val1],0),nz([Val2],0),nz([Val3],0),...)
As
Resultat
From TaTable;
Par contre tu dis que tu veux compter, si tu veux savoir
combien
de
colonne
par ligne ont une valeur, tu peux essayer de faire un champ
calculé
du
genre
:
Vraifaux(nz([[TonChamp1];0)=0;0;1)+Vraifaux(nz([[TonChamp2];0)=0;0;1)+Vraifaux(nz([[TonChamp3];0)=0;0;1)+...
Voilà
@+
Jessy Sempere - Access MVP
Ok,
Bon je pense que le problème vient du fait de ton regroupement du champ
calculé "Final"
En mode création de ta requête, sur la ligne opération de ce champ, mets
Expression à la place de Regroupement.
Normalement ça devrait être bon
@+
Jessy Sempere - Access MVP
news@access.fr.vu
------------------------------------
Site @ccess : http://access.fr.free.fr/
Pour l'efficacité de tous :
http://www.mpfa.info/
------------------------------------
"DENNLER Andre" <DENNLERAndre@discussions.microsoft.com> a écrit dans le
message de news: 8184464C-361C-44FD-B39B-3BF49D756ED6@microsoft.com...
Bonjour,
J'ai fait la correction mais j'ai toujours le même résultat, pour écrire
mes
formules j'avais utilisé le "générateur d'expression" qui a mis les
synthaxes.
--
Andre
Bonjour
Je ne suis pas rentré dans les détails, mais je vois une synthaxe dans
tes
Iif qui me paraît erronnée, tu mets :
IIf([RqCourse02F.Points]>0,1,0)
hors il faudrait je pense :
IIf([RqCourse02F].[Points]>0,1,0)
En fait, tu luis dis que tu as un champ qui se nomme "RqCourse02F.Points"
hors le nom de ton champs c'est "Points" et il appartient à la requête
"RqCourse02F".
Modifie donc dans ta requête toutes ces synthaxes et là je pense que ça
marchera mieux...
Tiens nous au courant
--
@+
Jessy Sempere - Access MVP
news@access.fr.vu
------------------------------------
Site @ccess : http://access.fr.free.fr/
Pour l'efficacité de tous :
http://www.mpfa.info/
------------------------------------
"DENNLER Andre" <DENNLERAndre@discussions.microsoft.com> a écrit dans le
message de news: 59848E9A-B745-4874-8192-DCDE2753004D@microsoft.com...
Bonjour,
Je pense que j'avais mal compris la demande, je ne suis pas tellement
familiarisé avec les termes techniques.
La formule SQL :
SELECT TbNomsF.[Nom-Prénom], TbNomsF.Club, RqCourse01F.Points,
RqCourse02F.Points, RqCourse03F.Points, RqCourse04F.Points,
RqCourse05F.Points,
Nz([RqCourse01F.Points],0)+Nz([RqCourse02F.Points],0)+Nz([RqCourse03F.Points],0)+Nz([RqCourse04F.Points],0)+Nz([RqCourse05F.Points],0)
AS Total,
IIf([RqCourse01F.Points]>0,1,0)+IIf([RqCourse05F.Points]>0,1,0)
AS
FR, IIf([RqCourse02F.Points]>0,1,0)+IIf([RqCourse04F.Points]>0,1,0) AS
DE,
IIf([RqCourse03F.Points]>0,1,0) AS LU,
IIf([RqCourse01F.Points]>0,1,0)+IIf([RqCourse02F.Points]>0,1,0)+IIf([RqCourse03F.Points]>0,1,0)+IIf([RqCourse04F.Points]>0,1,0)+IIf([RqCourse05F.Points]>0,1,0)
AS NrCourses,
+IIf(Nz([RqCourse01F.Points],0)+Nz([RqCourse05F.Points],0)>0,1,0)+IIf(Nz([RqCourse02F.Points],0)+Nz([RqCourse04F.Points],0)>0,1,0)+IIf([RqCourse03F.Points]>0,1,0)
AS Clé,
IIf([RqCourse01F.Points]>=[RqCourse02F.Points],[RqCourse02F.Points],IIf([RqCourse02F.Points]>=[RqCourse03F.Points],[RqCourse03F.Points],IIf([RqCourse03F.Points]>=[RqCourse04F.Points],[RqCourse04F.Points],IIf([RqCourse04F.Points]>=[RqCourse05F.Points],[RqCourse05F.Points]))))
AS MinPointsF, IIf([NrCourses]=5,[Total]-[MinPointsF],[Total]) AS Final
FROM ((((TbNomsF LEFT JOIN RqCourse01F ON (TbNomsF.Club > >> > RqCourse01F.Club)
AND (TbNomsF.[Nom-Prénom] = RqCourse01F.[Nom-Prénom])) LEFT JOIN
RqCourse02F
ON (TbNomsF.[Nom-Prénom] = RqCourse02F.[Nom-Prénom]) AND (TbNomsF.Club
RqCourse02F.Club)) LEFT JOIN RqCourse03F ON (TbNomsF.[Nom-Prénom] > >> > RqCourse03F.[Nom-Prénom]) AND (TbNomsF.Club = RqCourse03F.Club)) LEFT
JOIN
RqCourse04F ON (TbNomsF.Club = RqCourse04F.Club) AND
(TbNomsF.[Nom-Prénom]
RqCourse04F.[Nom-Prénom])) LEFT JOIN RqCourse05F ON (TbNomsF.Club > >> > RqCourse05F.Club) AND (TbNomsF.[Nom-Prénom] = RqCourse05F.[Nom-Prénom])
GROUP BY TbNomsF.[Nom-Prénom], TbNomsF.Club, RqCourse01F.Points,
RqCourse02F.Points, RqCourse03F.Points, RqCourse04F.Points,
RqCourse05F.Points,
Nz([RqCourse01F.Points],0)+Nz([RqCourse02F.Points],0)+Nz([RqCourse03F.Points],0)+Nz([RqCourse04F.Points],0)+Nz([RqCourse05F.Points],0),
IIf([RqCourse01F.Points]>0,1,0)+IIf([RqCourse05F.Points]>0,1,0),
IIf([RqCourse02F.Points]>0,1,0)+IIf([RqCourse04F.Points]>0,1,0),
IIf([RqCourse03F.Points]>0,1,0),
IIf([RqCourse01F.Points]>0,1,0)+IIf([RqCourse02F.Points]>0,1,0)+IIf([RqCourse03F.Points]>0,1,0)+IIf([RqCourse04F.Points]>0,1,0)+IIf([RqCourse05F.Points]>0,1,0),
+IIf(Nz([RqCourse01F.Points],0)+Nz([RqCourse05F.Points],0)>0,1,0)+IIf(Nz([RqCourse02F.Points],0)+Nz([RqCourse04F.Points],0)>0,1,0)+IIf([RqCourse03F.Points]>0,1,0),
IIf([RqCourse01F.Points]>=[RqCourse02F.Points],[RqCourse02F.Points],IIf([RqCourse02F.Points]>=[RqCourse03F.Points],[RqCourse03F.Points],IIf([RqCourse03F.Points]>=[RqCourse04F.Points],[RqCourse04F.Points],IIf([RqCourse04F.Points]>=[RqCourse05F.Points],[RqCourse05F.Points])))),
IIf([NrCourses]=5,[Total]-[MinPointsF],[Total])
ORDER BY
Nz([RqCourse01F.Points],0)+Nz([RqCourse02F.Points],0)+Nz([RqCourse03F.Points],0)+Nz([RqCourse04F.Points],0)+Nz([RqCourse05F.Points],0)
DESC;
D'avance merci.
--
Andre
Bonjour
Comme demandé avant, peux-tu nous donner le SQL de ta requête ?
--
@+
Jessy Sempere - Access MVP
news@access.fr.vu
------------------------------------
Site @ccess : http://access.fr.free.fr/
Pour l'efficacité de tous :
http://www.mpfa.info/
------------------------------------
"DENNLER Andre" <DENNLERAndre@discussions.microsoft.com> a écrit dans
le
message de news: 56F9FED4-67ED-4B34-A922-8E6B99A4F766@microsoft.com...
Bonjour,
Ci-dessous la formule qui me pose problème :
Final: VraiFaux([NrCourses]=5;[Total]-[MinPointsF];[Total])
Les champs [NrCourses], [Total] et [MinPointsF] sont déjà des champs
calculés, même si je simplifie la formule j'ai toujours le même
problème,
si
je valide le message "Paramètre" à blanc la requête s'ouvre et les
résultats
des calculs sont justes, je pense que celà exclue une erreur de
syntaxe
en
amont.
--
Andre
Re,
Merci pour la réponse, cependant j'ai toujours mon problème de
message
"Entrez les valeurs du paramètre " quand j'utilise le résultat
dans
une
autre
colonne calculée.
Je doit préciser que c'est une requête très compliquée qui
regroupe
1
table
et 5 requêtes en amont avec plusieurs colonnes calculées (de
nombreux
Vraifaux).
J'ai essayé de démultiplier cette requête mais dès que je me
retrouve
dans
la colonne de calcul final j'ai le message.
La colonne calculée qui est responsable du message utilise
simplement
la
formule : Colonne X - ColonneY.
Merci pour la réponse.
Ta formule doit être [Colonne X] - [Colonne Y]
Peux-tu nous donner le SQL de la requête finale pour y voir un peu
plus
clair ?
--
@+
Jessy Sempere - Access MVP
news@access.fr.vu
------------------------------------
Site @ccess : http://access.fr.free.fr/
Pour l'efficacité de tous :
http://www.mpfa.info/
------------------------------------
Bonjour
Ok donc je t'ai fait un code pour retourner la valeur minimale
entre
plusieurs champ, tu le trouveras ici :
http://access.fr.free.fr/articles.php?lng=fr&pg9
Comme je le disais, il te suffit de faire une requête de ce type
Select Champ1, VariableMin([Val1],[Val2],[Val3],...) As
Resultat
From TaTable;
Voilà
--
@+
Jessy Sempere - Access MVP
news@access.fr.vu
------------------------------------
Site @ccess : http://access.fr.free.fr/
Pour l'efficacité de tous :
http://www.mpfa.info/
------------------------------------
"DENNLER Andre" <DENNLERAndre@discussions.microsoft.com> a écrit
dans
le
message de news:
48B94DEA-4F40-478E-B4FF-4DA999087611@microsoft.com...
Bonjour,
C'est avec un peut de retard que je continue car je n'est pas
travaillé
pendant plusieurs jours sur ma base.
- Pour compter le problème est résolue.
- pour la valeur Minimum je n'est pas réussi à mettre en place
la
solution
préconisée (je ne connais pas trop VBA, je ne fais que
copier),
par
contre
j'ai réussi à le faire avec une succession de colonnes
calculées
en
VraiFaux.
Cependant comme j'utilise c'est colonnes calculées à la suite
les
unes
des
autres j'ai le message "Entrer la valeur du paramètre" pour
chaque
colonne
calculée lorsque que j'ouvre la requête, en validant à blanc
pour
chacune
d'elle le requête s'ouvre et les calculs sont justes.
Ma nouvelle question : comment éviter le message "Entrer la
valeur
du
paramètre" ?
D'avance merci.
--
Andre
Re,
Pour la valeur minimale entre plusieurs champ, tu peux
t'inspirer
de
ce
lien, il faudra juste adapter un peu le code :
http://access.fr.free.fr/articles.php?lng=fr&pgT
Et il te suffira d'appeler le code dans une requête de la
manière
suivante :
Select Champ1,
VariableMax(nz([Val1],0),nz([Val2],0),nz([Val3],0),...)
As
Resultat
From TaTable;
Par contre tu dis que tu veux compter, si tu veux savoir
combien
de
colonne
par ligne ont une valeur, tu peux essayer de faire un champ
calculé
du
genre
:
Vraifaux(nz([[TonChamp1];0)=0;0;1)+Vraifaux(nz([[TonChamp2];0)=0;0;1)+Vraifaux(nz([[TonChamp3];0)=0;0;1)+...
Voilà
@+
Jessy Sempere - Access MVP
Ok,
Bon je pense que le problème vient du fait de ton regroupement du champ
calculé "Final"
En mode création de ta requête, sur la ligne opération de ce champ, mets
Expression à la place de Regroupement.
Normalement ça devrait être bon
@+
Jessy Sempere - Access MVP
------------------------------------
Site @ccess : http://access.fr.free.fr/
Pour l'efficacité de tous :
http://www.mpfa.info/
------------------------------------
"DENNLER Andre" a écrit dans le
message de news:Bonjour,
J'ai fait la correction mais j'ai toujours le même résultat, pour écrire
mes
formules j'avais utilisé le "générateur d'expression" qui a mis les
synthaxes.
--
AndreBonjour
Je ne suis pas rentré dans les détails, mais je vois une synthaxe dans
tes
Iif qui me paraît erronnée, tu mets :
IIf([RqCourse02F.Points]>0,1,0)
hors il faudrait je pense :
IIf([RqCourse02F].[Points]>0,1,0)
En fait, tu luis dis que tu as un champ qui se nomme "RqCourse02F.Points"
hors le nom de ton champs c'est "Points" et il appartient à la requête
"RqCourse02F".
Modifie donc dans ta requête toutes ces synthaxes et là je pense que ça
marchera mieux...
Tiens nous au courant
--
@+
Jessy Sempere - Access MVP
------------------------------------
Site @ccess : http://access.fr.free.fr/
Pour l'efficacité de tous :
http://www.mpfa.info/
------------------------------------
"DENNLER Andre" a écrit dans le
message de news:Bonjour,
Je pense que j'avais mal compris la demande, je ne suis pas tellement
familiarisé avec les termes techniques.
La formule SQL :
SELECT TbNomsF.[Nom-Prénom], TbNomsF.Club, RqCourse01F.Points,
RqCourse02F.Points, RqCourse03F.Points, RqCourse04F.Points,
RqCourse05F.Points,
Nz([RqCourse01F.Points],0)+Nz([RqCourse02F.Points],0)+Nz([RqCourse03F.Points],0)+Nz([RqCourse04F.Points],0)+Nz([RqCourse05F.Points],0)
AS Total,
IIf([RqCourse01F.Points]>0,1,0)+IIf([RqCourse05F.Points]>0,1,0)
AS
FR, IIf([RqCourse02F.Points]>0,1,0)+IIf([RqCourse04F.Points]>0,1,0) AS
DE,
IIf([RqCourse03F.Points]>0,1,0) AS LU,
IIf([RqCourse01F.Points]>0,1,0)+IIf([RqCourse02F.Points]>0,1,0)+IIf([RqCourse03F.Points]>0,1,0)+IIf([RqCourse04F.Points]>0,1,0)+IIf([RqCourse05F.Points]>0,1,0)
AS NrCourses,
+IIf(Nz([RqCourse01F.Points],0)+Nz([RqCourse05F.Points],0)>0,1,0)+IIf(Nz([RqCourse02F.Points],0)+Nz([RqCourse04F.Points],0)>0,1,0)+IIf([RqCourse03F.Points]>0,1,0)
AS Clé,
IIf([RqCourse01F.Points]>=[RqCourse02F.Points],[RqCourse02F.Points],IIf([RqCourse02F.Points]>=[RqCourse03F.Points],[RqCourse03F.Points],IIf([RqCourse03F.Points]>=[RqCourse04F.Points],[RqCourse04F.Points],IIf([RqCourse04F.Points]>=[RqCourse05F.Points],[RqCourse05F.Points]))))
AS MinPointsF, IIf([NrCourses]=5,[Total]-[MinPointsF],[Total]) AS Final
FROM ((((TbNomsF LEFT JOIN RqCourse01F ON (TbNomsF.Club > >> > RqCourse01F.Club)
AND (TbNomsF.[Nom-Prénom] = RqCourse01F.[Nom-Prénom])) LEFT JOIN
RqCourse02F
ON (TbNomsF.[Nom-Prénom] = RqCourse02F.[Nom-Prénom]) AND (TbNomsF.ClubRqCourse02F.Club)) LEFT JOIN RqCourse03F ON (TbNomsF.[Nom-Prénom] > >> > RqCourse03F.[Nom-Prénom]) AND (TbNomsF.Club = RqCourse03F.Club)) LEFT
JOIN
RqCourse04F ON (TbNomsF.Club = RqCourse04F.Club) AND
(TbNomsF.[Nom-Prénom]RqCourse04F.[Nom-Prénom])) LEFT JOIN RqCourse05F ON (TbNomsF.Club > >> > RqCourse05F.Club) AND (TbNomsF.[Nom-Prénom] = RqCourse05F.[Nom-Prénom])
GROUP BY TbNomsF.[Nom-Prénom], TbNomsF.Club, RqCourse01F.Points,
RqCourse02F.Points, RqCourse03F.Points, RqCourse04F.Points,
RqCourse05F.Points,
Nz([RqCourse01F.Points],0)+Nz([RqCourse02F.Points],0)+Nz([RqCourse03F.Points],0)+Nz([RqCourse04F.Points],0)+Nz([RqCourse05F.Points],0),
IIf([RqCourse01F.Points]>0,1,0)+IIf([RqCourse05F.Points]>0,1,0),
IIf([RqCourse02F.Points]>0,1,0)+IIf([RqCourse04F.Points]>0,1,0),
IIf([RqCourse03F.Points]>0,1,0),
IIf([RqCourse01F.Points]>0,1,0)+IIf([RqCourse02F.Points]>0,1,0)+IIf([RqCourse03F.Points]>0,1,0)+IIf([RqCourse04F.Points]>0,1,0)+IIf([RqCourse05F.Points]>0,1,0),
+IIf(Nz([RqCourse01F.Points],0)+Nz([RqCourse05F.Points],0)>0,1,0)+IIf(Nz([RqCourse02F.Points],0)+Nz([RqCourse04F.Points],0)>0,1,0)+IIf([RqCourse03F.Points]>0,1,0),
IIf([RqCourse01F.Points]>=[RqCourse02F.Points],[RqCourse02F.Points],IIf([RqCourse02F.Points]>=[RqCourse03F.Points],[RqCourse03F.Points],IIf([RqCourse03F.Points]>=[RqCourse04F.Points],[RqCourse04F.Points],IIf([RqCourse04F.Points]>=[RqCourse05F.Points],[RqCourse05F.Points])))),
IIf([NrCourses]=5,[Total]-[MinPointsF],[Total])
ORDER BY
Nz([RqCourse01F.Points],0)+Nz([RqCourse02F.Points],0)+Nz([RqCourse03F.Points],0)+Nz([RqCourse04F.Points],0)+Nz([RqCourse05F.Points],0)
DESC;
D'avance merci.
--
AndreBonjour
Comme demandé avant, peux-tu nous donner le SQL de ta requête ?
--
@+
Jessy Sempere - Access MVP
------------------------------------
Site @ccess : http://access.fr.free.fr/
Pour l'efficacité de tous :
http://www.mpfa.info/
------------------------------------
"DENNLER Andre" a écrit dans
le
message de news:Bonjour,
Ci-dessous la formule qui me pose problème :
Final: VraiFaux([NrCourses]=5;[Total]-[MinPointsF];[Total])
Les champs [NrCourses], [Total] et [MinPointsF] sont déjà des champs
calculés, même si je simplifie la formule j'ai toujours le même
problème,
si
je valide le message "Paramètre" à blanc la requête s'ouvre et les
résultats
des calculs sont justes, je pense que celà exclue une erreur de
syntaxe
en
amont.
--
AndreRe,Merci pour la réponse, cependant j'ai toujours mon problème de
message
"Entrez les valeurs du paramètre " quand j'utilise le résultat
dans
une
autre
colonne calculée.
Je doit préciser que c'est une requête très compliquée qui
regroupe
1
table
et 5 requêtes en amont avec plusieurs colonnes calculées (de
nombreux
Vraifaux).
J'ai essayé de démultiplier cette requête mais dès que je me
retrouve
dans
la colonne de calcul final j'ai le message.
La colonne calculée qui est responsable du message utilise
simplement
la
formule : Colonne X - ColonneY.
Merci pour la réponse.
Ta formule doit être [Colonne X] - [Colonne Y]
Peux-tu nous donner le SQL de la requête finale pour y voir un peu
plus
clair ?
--
@+
Jessy Sempere - Access MVP
------------------------------------
Site @ccess : http://access.fr.free.fr/
Pour l'efficacité de tous :
http://www.mpfa.info/
------------------------------------Bonjour
Ok donc je t'ai fait un code pour retourner la valeur minimale
entre
plusieurs champ, tu le trouveras ici :
http://access.fr.free.fr/articles.php?lng=fr&pg9
Comme je le disais, il te suffit de faire une requête de ce type
Select Champ1, VariableMin([Val1],[Val2],[Val3],...) As
Resultat
From TaTable;
Voilà
--
@+
Jessy Sempere - Access MVP
------------------------------------
Site @ccess : http://access.fr.free.fr/
Pour l'efficacité de tous :
http://www.mpfa.info/
------------------------------------
"DENNLER Andre" a écrit
dans
le
message de news:Bonjour,
C'est avec un peut de retard que je continue car je n'est pas
travaillé
pendant plusieurs jours sur ma base.
- Pour compter le problème est résolue.
- pour la valeur Minimum je n'est pas réussi à mettre en place
la
solution
préconisée (je ne connais pas trop VBA, je ne fais que
copier),
par
contre
j'ai réussi à le faire avec une succession de colonnes
calculées
en
VraiFaux.
Cependant comme j'utilise c'est colonnes calculées à la suite
les
unes
des
autres j'ai le message "Entrer la valeur du paramètre" pour
chaque
colonne
calculée lorsque que j'ouvre la requête, en validant à blanc
pour
chacune
d'elle le requête s'ouvre et les calculs sont justes.
Ma nouvelle question : comment éviter le message "Entrer la
valeur
du
paramètre" ?
D'avance merci.
--
AndreRe,
Pour la valeur minimale entre plusieurs champ, tu peux
t'inspirer
de
ce
lien, il faudra juste adapter un peu le code :
http://access.fr.free.fr/articles.php?lng=fr&pgT
Et il te suffira d'appeler le code dans une requête de la
manière
suivante :
Select Champ1,
VariableMax(nz([Val1],0),nz([Val2],0),nz([Val3],0),...)
As
Resultat
From TaTable;
Par contre tu dis que tu veux compter, si tu veux savoir
combien
de
colonne
par ligne ont une valeur, tu peux essayer de faire un champ
calculé
du
genre
:
Vraifaux(nz([[TonChamp1];0)=0;0;1)+Vraifaux(nz([[TonChamp2];0)=0;0;1)+Vraifaux(nz([[TonChamp3];0)=0;0;1)+...
Voilà
@+
Jessy Sempere - Access MVP