OVH Cloud OVH Cloud

Liste de joueurs

2 réponses
Avatar
StEpHaNe
Bonjour,

Je cherche =E0 afficher les joueurs qui n'ont pas les=20
sports que je veux enseigner! Je m'explique. J'ai 3=20
tables interli=E9es, soient=20
tblJoueurs tblJoueurs_Sports tblSports. =20
No_Joueur No_Joueur Code_Sport
Nom_Joueur Code_Sport Description
Pr=E9nom_Joueur

Si dans mon formulaire joueur j'entre pour le m=EAme joueur=20
plusieurs sports, dans ma table tblJoueur_Sports, le=20
No_Joueur se r=E9p=E8te autant de fois qu'il a de sports. =20
Ex: 40 So, Soccer, 40 Ba, Badminton, 40 Te, Tennis. =20

L=E0 o=F9 j'accroche, je voudrais =E0 l'aide d'une requ=EAte ou=20
proc=E9dure =E9venementielle avoir tous les joueurs qui n'ont=20
pas le badminton. En ayant qu'une seule fois le=20
No_Joueur, Nom_Joueur, Pr=E9nom_Joueur. 40 Pierre Gagn=E9=20

J'ai essay=E9 requ=EAte analyse crois=E9e sans succ=E8s. J'ai=20
commenc=E9 avec une proc=E9dure suc clic d'un bouton ex:=20
Bouton_Badminton, me donnerait tous les Joueurs qui n'ont=20
pas le Badminton. =20

Procedure Bouton_Badminton_clic

Dim dbJoueurs As Database
Dim rcdSports As DAO.Recordset
=20
Set dbJoeurs =3D CurrentDb
rcdSports.Movefirst
Do until rcdSports.EOF
Tous ceux qui n'ont pas le Badminton
Loop

End

Quelqu'un peut-il m'aider?

MERCI D'AVANCE.

2 réponses

Avatar
Michel Walsh
Salut,


Si tu n'as qu'une valeur à comparer, un GROUP BY avec COUNT =0, peut faire
l'affaire:

SELECT NoJoueur FROM JoueursSports
WHERE CodeSport= 222
GROUP BY NoJoueur
HAVING COUNT(*) =0


mais on peut utiliser un NOT IN:

SELECT NoJoueur FROM JoueursSports
WHERE NoJoueur NOT IN (SELECT NoJoueur
FROM JoueursSports
WHERE CodeSport = 222)


ou un ALL <>


SELECT NoJoueur FROM JoueursSports AS a
WHERE 222 <> ALL ( SELECT b.CodeSport
FROM JoueursSports As b
WHERE b.NoJoueur=a.NoJoueur)



et on peut probablement poursuivre sur le même thème avec plusieurs autres
variations.



Espérant être utile,
Vandergast, Access MVP





"StEpHaNe" wrote in message
news:228c01c3834b$89f2ea50$
Bonjour,

Je cherche à afficher les joueurs qui n'ont pas les
sports que je veux enseigner! Je m'explique. J'ai 3
tables interliées, soient
tblJoueurs tblJoueurs_Sports tblSports.
No_Joueur No_Joueur Code_Sport
Nom_Joueur Code_Sport Description
Prénom_Joueur

Si dans mon formulaire joueur j'entre pour le même joueur
plusieurs sports, dans ma table tblJoueur_Sports, le
No_Joueur se répète autant de fois qu'il a de sports.
Ex: 40 So, Soccer, 40 Ba, Badminton, 40 Te, Tennis.

Là où j'accroche, je voudrais à l'aide d'une requête ou
procédure évenementielle avoir tous les joueurs qui n'ont
pas le badminton. En ayant qu'une seule fois le
No_Joueur, Nom_Joueur, Prénom_Joueur. 40 Pierre Gagné

J'ai essayé requête analyse croisée sans succès. J'ai
commencé avec une procédure suc clic d'un bouton ex:
Bouton_Badminton, me donnerait tous les Joueurs qui n'ont
pas le Badminton.

Procedure Bouton_Badminton_clic

Dim dbJoueurs As Database
Dim rcdSports As DAO.Recordset

Set dbJoeurs = CurrentDb
rcdSports.Movefirst
Do until rcdSports.EOF
Tous ceux qui n'ont pas le Badminton
Loop

End

Quelqu'un peut-il m'aider?

MERCI D'AVANCE.
Avatar
StEpHaNe
Merci, Michel

J'ai utilisé la deuxième requête SQL combinée avec la
première car ce qui me manquait était le HAVING COUNT (*)
=0, j'ai aussi fait le regroupement par No_Joueur

Tout fonctionne bien!!

CIAO
STEF
-----Message d'origine-----
Salut,


Si tu n'as qu'une valeur à comparer, un GROUP BY avec
COUNT =0, peut faire

l'affaire:

SELECT NoJoueur FROM JoueursSports
WHERE CodeSport= 222
GROUP BY NoJoueur
HAVING COUNT(*) =0


mais on peut utiliser un NOT IN:

SELECT NoJoueur FROM JoueursSports
WHERE NoJoueur NOT IN (SELECT NoJoueur
FROM
JoueursSports

WHERE
CodeSport = 222)



ou un ALL <>


SELECT NoJoueur FROM JoueursSports AS a
WHERE 222 <> ALL ( SELECT b.CodeSport
FROM JoueursSports
As b

WHERE
b.NoJoueur=a.NoJoueur)




et on peut probablement poursuivre sur le même thème
avec plusieurs autres

variations.



Espérant être utile,
Vandergast, Access MVP





"StEpHaNe" wrote in message
news:228c01c3834b$89f2ea50$
Bonjour,

Je cherche à afficher les joueurs qui n'ont pas les
sports que je veux enseigner! Je m'explique. J'ai 3
tables interliées, soient
tblJoueurs tblJoueurs_Sports tblSports.
No_Joueur No_Joueur Code_Sport
Nom_Joueur Code_Sport Description
Prénom_Joueur

Si dans mon formulaire joueur j'entre pour le même joueur
plusieurs sports, dans ma table tblJoueur_Sports, le
No_Joueur se répète autant de fois qu'il a de sports.
Ex: 40 So, Soccer, 40 Ba, Badminton, 40 Te, Tennis.

Là où j'accroche, je voudrais à l'aide d'une requête ou
procédure évenementielle avoir tous les joueurs qui n'ont
pas le badminton. En ayant qu'une seule fois le
No_Joueur, Nom_Joueur, Prénom_Joueur. 40 Pierre Gagné

J'ai essayé requête analyse croisée sans succès. J'ai
commencé avec une procédure suc clic d'un bouton ex:
Bouton_Badminton, me donnerait tous les Joueurs qui n'ont
pas le Badminton.

Procedure Bouton_Badminton_clic

Dim dbJoueurs As Database
Dim rcdSports As DAO.Recordset

Set dbJoeurs = CurrentDb
rcdSports.Movefirst
Do until rcdSports.EOF
Tous ceux qui n'ont pas le Badminton
Loop

End

Quelqu'un peut-il m'aider?

MERCI D'AVANCE.


.