Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > IHM
IHM Ce forum est dédié aux questions relatives à la création de formulaires et d'états, avec ou sans code VBA, et macros.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 01/06/2011, 15h05   #1
Candidat au titre de Membre du Club
 
Homme
Étudiant
Inscription : avril 2011
Messages : 24
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Seine Maritime (Haute Normandie)

Informations professionnelles :
Activité : Étudiant
Secteur : Industrie

Informations forums :
Inscription : avril 2011
Messages : 24
Points : 11
Points : 11
Par défaut analyse croisé, problème nombres de colonnes.

Bonjour a tous ceux qui vont passer sur ce topic.

je vous remercie d'avance pour les réponses que vous allez m'apporter.

il s'agit donc d'une analyse croisé.

qui porte principalement sur 3 tables.
tbl_constat
tbl_criteres
tbl_cotations

je vous donne mon schéma de relations de tables:



donc, point important, c'est la d'ou vient le problème selon moi.
j'éffectue sur la table tbl_constat une recherche mutli critères fonctionnelles qui me trient les id_constat en fonction de la date_constat, de l'entreprise auditrice, partenaire, du poste_a.
le nombre de paramêtres est varaibles et donne donc lieu a une liste d'id_constat plus ou grande.
la requete en question s'appelle R_Choix.

R_Choix sert de point d'appui a mon analyse croisé car directement lié a la table tbl_cotations.

voici le code SQL de mon analyse croisée.

Le code :
Code :
1
2
3
4
5
6
 
TRANSFORM Nz(Count(tbl_cotations.constat),0) AS CompteDeconstat
SELECT tbl_criteres.nom_critere
FROM tbl_criteres INNER JOIN (R_Choix INNER JOIN tbl_cotations ON R_Choix.id_constat = tbl_cotations.constat) ON tbl_criteres.id_critere = tbl_cotations.critere
GROUP BY tbl_criteres.nom_critere
PIVOT tbl_cotations.cotation;

cela marche très bien tant que la liste d'id_constat est suffisament grande pour qu'il y a au moins 1 critère dont la somme soit supérieur a 0 dans une colonne.

comme par exemple cette analyse croisée, qui marche bien:



a contrario celle-ci qui m'a supprimé les colonnes qui n'avait aucun critères différents de 0.




ma question: comment faire conserver ces colonnes car l'information "mon critère de cotation = 0" est importante pour moi, et la dispariton des ces colonnes bug mon état, qui est posé sur cette analyse croisé, qui attend 6 colonnes pour rentrer les donner dans un tableau, que je souhaite imprimer.

Merci d'avance de vos réponses.
Si mon post manque d'explication, n'hésiter pas, j'éditerai dès que possible.
djas_air est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/06/2011, 17h17   #2
Rédacteur/Modérateur
 
Avatar de User
 
Homme Denis
Développeur informatique
Inscription : août 2004
Messages : 3 206
Détails du profil
Informations personnelles :
Nom : Homme Denis
Âge : 42
Localisation : France

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : août 2004
Messages : 3 206
Points : 5 258
Points : 5 258
Salut,

Je ne suis pas sur d'avoir bien saisi ta demande

Mais si tu souhaites forcer l'affichage de tes 6 colonnes tu peux utiliser 1 In sur ton pivot:

Code sql :
1
2
3
4
5
TRANSFORM Nz(Count(tbl_cotations.constat),0) AS CompteDeconstat
SELECT tbl_criteres.nom_critere
FROM tbl_criteres INNER JOIN (R_Choix INNER JOIN tbl_cotations ON R_Choix.id_constat = tbl_cotations.constat) ON tbl_criteres.id_critere = tbl_cotations.critere
GROUP BY tbl_criteres.nom_critere
PIVOT tbl_cotations.cotation IN (1,2,3,4,5,6) ;

A+
__________________
Merci de ne pas poster sur mon profil pour des problèmes techniques. Pour celà vous pouvez utiliser le forum ou m'envoyer un mp.

Bon développement !


Mes tutoriels et contributions sur ma page perso:
Ma page personnelle
User est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 01/06/2011, 19h26   #3
Candidat au titre de Membre du Club
 
Homme
Étudiant
Inscription : avril 2011
Messages : 24
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Seine Maritime (Haute Normandie)

Informations professionnelles :
Activité : Étudiant
Secteur : Industrie

Informations forums :
Inscription : avril 2011
Messages : 24
Points : 11
Points : 11
c'est exactement ça ! merci User. enfin c'est peu être tôt. je vais d'abord tester ton code pour voir si tu ne me dis pas des bétises
djas_air est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/06/2011, 19h33   #4
Candidat au titre de Membre du Club
 
Homme
Étudiant
Inscription : avril 2011
Messages : 24
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Seine Maritime (Haute Normandie)

Informations professionnelles :
Activité : Étudiant
Secteur : Industrie

Informations forums :
Inscription : avril 2011
Messages : 24
Points : 11
Points : 11
comme je m'y attendais a la 1er lecteure

ca marche beaucoup mieux comme ca:

Citation:
TRANSFORM Nz(Count(tbl_cotations.constat),0) AS CompteDeconstat
SELECT tbl_criteres.nom_critere
FROM tbl_criteres INNER JOIN (R_Choix INNER JOIN tbl_cotations ON R_Choix.id_constat = tbl_cotations.constat) ON tbl_criteres.id_critere = tbl_cotations.critere
GROUP BY tbl_criteres.nom_critere
PIVOT tbl_cotations.cotation IN( 1, 2, 3, "A", "B", "C");
mais je te remercie. j'ai galéré depuis 8h ce matin. ton idée était la bonne !
donc tout le mérite te revient. merci de ton aide.
djas_air est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 18h05.


 
 
 
 
Partenaires

Hébergement Web