ACCESS-SQL, 0 dans une requête

Fermé
Stagy - 11 févr. 2008 à 19:20
 mitsu - 23 juin 2010 à 09:55
Bonjour à tous,

je suis en pleine conception d'une base de données sur Access, et je bloque sur un problème assez agaçant : en effet, considérons que j'ai deux tables, une recensant des employés, l'autre des projets.
Une table de jointure permet d'associer un employé à un projet pour chaque semaine d'une année (la clé primaire est ici le nom de l'employé avec le num de la semaine et l'année).

Je souhaite donc au moyen d'une requête, avoir pour une semaine et une année donnée, la liste des projets avec le nombre d'employés qui y sont associés.

Le problème est que le résultat de cette requête me donne bien le résultat escompté, mais ne m'affiche pas les projets qui n'ont aucun employé qui leur est affecté (dû à une absence d'enregistrement dans la table de jointure, évidemment).
J'aimerais que cette requête m'affiche ces projets avec aucun employé affecté, avec un "0" à coté du projet en question.

J'ai testé les fonctions nz(), count(*), consulté l'aide d'Access à plusieurs reprises, mais je fatigue...

Merci de bien vouloir m'aider si vous le pouvez,

Bien à vous

8 réponses

LatelyGeek Messages postés 1758 Date d'inscription vendredi 4 janvier 2008 Statut Membre Dernière intervention 5 janvier 2023 550
15 févr. 2008 à 22:53
Modifie la nature des liens dans ta requête.

Tu doubles-cliques dessus, et tu choisis "Afficher tous les enregistrements de la table Projets"

Ca "forcera" Access à afficher tous les projets, même les non-affectés.
3
LatelyGeek Messages postés 1758 Date d'inscription vendredi 4 janvier 2008 Statut Membre Dernière intervention 5 janvier 2023 550
19 févr. 2008 à 20:20
Oui:

A moins d'écrire en SQL dans le texte, ce que je fais pas, personnellement, il faut faire deux requêtes.

La première te donne la liste des projets auxquels sont affectés les cardes, sans compte ni regroupement.
La deuxième est basée sur ta table projets et sur la requêtes N°1 et tu demandes de nouveau à Access d'afficher tous les projets... Ca fait une requête de plus mais ça fonctionne.
1
Salut,

j'ai quelques difficultés à mettre en oeuvre ta méthode...si je comprends bien, je fais une première requête de sélection de projets auquel il existe des cadres qui y sont affectés.

Les projets sans cadres sont donc écartés.

Je comprends moins bien la suite...je reprends la table "projets" complète et cette requête (donc les projets auquels sont affectés des cadres apparaissent deux fois ?) et je demande d'afficher tous les projets (je lance le compte sur quel champ ? le champ clé primaire de la table projets ? celui de la requête ?), c'est bien cela ?

De plus, j'imagine qu'il faille également modifier la nature des relations ici, mais j'ai essayé de le faire dans tous les sens...

Merci de me préciser ta réponse,
0
LatelyGeek Messages postés 1758 Date d'inscription vendredi 4 janvier 2008 Statut Membre Dernière intervention 5 janvier 2023 550
22 févr. 2008 à 11:25
Dans ta deuxième requête, tu crées un lien sur NProjet, que tu forces pour afficher tous les projets, et tu mets le compte sur n'importe quel champ de la requête.

PS: Pourquoi dis tu que les projets apparaissent deux fois??????
1
Re LatelyGeek,

en fait, si je disais que les Projets apparaissaient deux fois, c'est parce que je n'avais pas compris que tu faiais référence dans la deuxième requête, à la table de jointure et non à la table représentant l'entité Projet.

Je confirme que ta méthode est efficace et donne le bon résultat. Il ya un seul bémol toutefois, car cette méthode se base sur le fait qu'un projet doit être forcément enregistré au moins une fois dans la table de jointure, mais l'on peut facilement résoudre ce problème par une bonne initialisation.

Merci encore !
0
Merci Lately Geek !

J'ai enfin obtenu ce que je cherchais grâce à ta solution.

En effet, il fallait d'une part, modifier la nature des relations dans la requête elle-même et non dans la table, et d'autre part, inclure tous les enregistrements de la table Projets.

Merci encore, j'ai appris quelque chose de très pratique :D
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Oups, avant de faire passer la discussion en mode résolu, une dernière petite question :

supposons que nos chers employés se répartissent en deux types : les cadres, et les non-cadres.

Grâce à ta méthode LatelyGeek, le décompte des employés par projet affichait bien 0 quand il n'y avait pas d'enregistrement dans la table de jointure, mais dès lors que je spécifie le type de l'employé (je voudrais par exemple le nombre d'employés de type "cadre" par projet) la requête ne me renvoie que les projets avec des employés cadres affectés, alors que j'aimerais qu'elle m'affiche tous les projets, avec un 0 si aucun employé cadre n'est affecté.

J'ai continué à chercher à modifier la nature des relations, mais pour l'instant, je bloque à nouveau...

Une idée ?
0
LatelyGeek Messages postés 1758 Date d'inscription vendredi 4 janvier 2008 Statut Membre Dernière intervention 5 janvier 2023 550
28 févr. 2008 à 16:02
De rien!
0
En y repensant, ce problème est lui aussi résolu...essayons de modifier le statut de la discussion :)
0
Ah zut, ça ne marche pas...pourtant, j'ai pu le faire pour une autre discussion...tant pis. :(
0
merci beaucoup pour ce topic, il m'a bien aidé
0