[ACCESS] relations ?

[Résolu/Fermé]
Signaler
Messages postés
86
Date d'inscription
mercredi 31 janvier 2007
Statut
Membre
Dernière intervention
27 février 2008
-
Messages postés
86
Date d'inscription
mercredi 31 janvier 2007
Statut
Membre
Dernière intervention
27 février 2008
-
Bonjour à tous les mambres du forum

me revoilà avec ma gestion des demandes de travaux lol
donc voilà je gère des demandes d'intervention en fct des batiments des types de travaux ...
j'ai un champs "état" qui a une valeur en cours ou terminé si la travaux est exécuté ou pas.
chaque demande à un cham iD qui est la clé primaire et identifie de manière unique la demande

je sais compter le nombre de demandes en cours, le nombre de demands terminées en faisant un regroupement par bâtiment, de manière indépendante.
mais quand je crée une nouvelle requete en mélangeant le tout cela me donne des chiffres érronées car cela fait des combinaisons avec les regroupment on dirait

alors voilà ma quesion comment obtenir ds une meme requete le nom du batiment, le nombre de demande en cours et le nombre de demande terminés pour chaque batiment

est ce un pb de relations ? ou faut til s'y prendre autrement ?

merci d'avance

8 réponses

Messages postés
23763
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
13 janvier 2020
3 112
Salut,

elle ressemble à quoi ta requête...? Peut-être qu'access t'a mis des relations en trop...

Car tu peux en créer une qui sera la juxtaposition de deux lignes via le mot-clé UNION...
Messages postés
86
Date d'inscription
mercredi 31 janvier 2007
Statut
Membre
Dernière intervention
27 février 2008
9
ben en fait j'au une requete avec les 3 champs suivants :
ID (avec un compte); batiment (regroupement) et état avec critère "en cours"(regroupement)

et j'ia la meme avec le critère terminé çà m efait 2 requetes différentes qui me compte bien les demandes terminées d'un coté et celle en cours de l'autre

(le tout de la meme table "travaux"

mais qd je crée une 3ème requete avec les champs batiment.travaux, comptDeID.requete_demande_cours et compteDeID.requete_demandes_terminées ben c'est là le hic :(((
Messages postés
23763
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
13 janvier 2020
3 112
Tu peux afficher les SQL ?
Messages postés
86
Date d'inscription
mercredi 31 janvier 2007
Statut
Membre
Dernière intervention
27 février 2008
9
SELECT Count(Travaux.ID) AS CompteDeID, Travaux.Bâtiment, Travaux.Etat
FROM Travaux
GROUP BY Travaux.Bâtiment, Travaux.Etat
HAVING (((Travaux.Etat)="En cours"));

pour la 1ère, la 2ème est identique avec "terminé" au lieu de "en cours"

et ma requete pour voir les 2 resulat en meme temps est :

SELECT Requête1.CompteDeID, Requête2.CompteDeID, Travaux.Bâtiment
FROM Requête1, Requête2, Travaux;
Messages postés
23763
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
13 janvier 2020
3 112
Je crois qu'il ne doit pas aimer 'Bâtiment' présent dans les trois tables en même temps, il ne sait sûrement pas quoi choisir...

Tu pourrais m'envoyer ta base que je regarde comment on peut simplifier la requête, parce qu'à mon avis, il va falloir feinter ?

denis point mail point list chez free point fr
Messages postés
86
Date d'inscription
mercredi 31 janvier 2007
Statut
Membre
Dernière intervention
27 février 2008
9
ok sympa pourquoi pas :) j'essaye de te selectionner que l'essentiel car sinon çà fait 5 mo je crois le total :(
Messages postés
23763
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
13 janvier 2020
3 112 >
Messages postés
86
Date d'inscription
mercredi 31 janvier 2007
Statut
Membre
Dernière intervention
27 février 2008

Tu colles en .zip...

Access est gourmand en place non utilisée (dû à sa gestion)...
Messages postés
86
Date d'inscription
mercredi 31 janvier 2007
Statut
Membre
Dernière intervention
27 février 2008
9
c'est vrai tu as raison c'est mieux de tout envoyer et la compression est impressionante j'ai vu !

c'est parti sur ton mail, merci
Messages postés
23763
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
13 janvier 2020
3 112
Pas de jointures entre les tables -> produit cartésien...

Avec des jointures et quelques trucs pour mettre des 0 quand c'est pas renseigné :
SELECT DISTINCT iif(isnull(Requête1.CompteDeID),0,Requête1.CompteDeID) AS [En cours], iif(isnull(Requête2.CompteDeID),0,Requête2.CompteDeID) AS [Terminés], Travaux.Bâtiment AS [Bâtiment]
FROM Requête1 RIGHT JOIN (Requête2 RIGHT JOIN Travaux ON Requête2.Bâtiment = Travaux.Bâtiment) ON Requête1.Bâtiment = Travaux.Bâtiment
ORDER BY Travaux.Bâtiment;
Y'a juste un truc pas cool, c'est que des travaux sont renseignés pour des bâtiments dont le nom est vide, ça doit venir d'un problème dans ton modèle de données, mais sinon, ça a l'air correct, à toi de confirmer...
Messages postés
86
Date d'inscription
mercredi 31 janvier 2007
Statut
Membre
Dernière intervention
27 février 2008
9
je connaissais pas les jointures ? c'et les relations ou c'est encore autre choses ?? merci en tt cas je vais essayer çà de suite

pour le fait que les batiment ne soient pa renseignés ben...çà vient des gens qui ne remplissent pas la demande complètement ;) çà arrive ds l'administration lol
Messages postés
23763
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
13 janvier 2020
3 112
Les relations sont mises entre des éléments communs de tables différentes d'un modèle relationnel et l'utilisation de ces relations dans les requêtes passe par les jointures.

çà vient des gens qui ne remplissent pas la demande complètement
Et bien justement, tu DOIS l'imposer... C'est quand même le minimum que d'indiquer dans quel bâtiment doit avoir lieu l'intervention !

Tu mets une liste déroulante, comme ça, pas de faute d'oretografe, pas de majuscules/minuscules, tout le monde saisit le même nom...
Messages postés
86
Date d'inscription
mercredi 31 janvier 2007
Statut
Membre
Dernière intervention
27 février 2008
9
oui ds ma base acces g fait des listes déroulantes pour le saisir masi la saisie c'est moi qui la fait et reprenant des feuille papier remplies par les gens justement et tu vois le minimum ils connaissent pas lol ;)

tant que je tiens une question stp: j'ai mon bel histogramme qui me fait le total des demandes par baitment en juxtaposant désormaisq les en cours et terminées pour représenter au total l enombre final

je sais faire apparaitre la valeur des en cours sur le graph idem our les terminées mais comme pourrai je faire apparaitre au dessu sde chaque bâton le valeur ajoutée des 2 . (çà serait mieux)

merci
Messages postés
86
Date d'inscription
mercredi 31 janvier 2007
Statut
Membre
Dernière intervention
27 février 2008
9
alala qu ec'est bo de tout connaitre en info lol ! çà marche nickel !!! merci ! je vais renommes les requetes et changer les noms comme il faut et c'est super ! je vais donc pouvoir faire ce que je voulais : un joli formulaire graphique croisé dynamique avec la répartition des demandes en fct des batiment , mais pas simplement comme je l'avais fait, en cumulant les demandes en cours et terminées pour faire la décomposition, c'est parlant de suite à l'oeil nu !!!

(et je v étendre çà à aux autres répartitions

merci encore et comme j'ai mille question à poser a bientot ss doute ;