Affichage enregistrements selon les groupes de critères

Noob32 Messages postés 4 Date d'inscription vendredi 4 novembre 2011 Statut Membre Dernière intervention 1 décembre 2011 - 4 nov. 2011 à 14:18
NHenry Messages postés 15112 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 13 avril 2024 - 13 déc. 2011 à 21:48
Bonjour,

j'ai créer une requête en fonction de trois critères :

Service, secteur et cible. Service et secteur sont des listes déroulantes nommées Rsecteur et Rservice. Cible est une zone texte nommée Rcible.

Dans ma base de données, j'ai différents enregistrements qui possèdent des infos pour les trois critères.

Le Service PC contient les secteurs : EP, EU et PA.
Le Service IE contient les secteurs IE et ES.
Certaines cibles sont 'Transversal'

En gros, avec 4 colonnes : (le n° est le n° de clé.
[list]
1 PC EU Transversal
2 PC EU PAMA
3 PC PA LAMA
4 IE IE CAMA
5 IE ES Transversal
6 IE IE Transversal
/list

J'en ai d'autres mais on va essayé avec ça déjà.

Je voudrais, lorsqu'on choisit un secteur, que les enregistrements qui fassent partis du même service et ayant le critère 'Transversal' s'affichent aussi.

Si je choisis le secteur 'EU', je voudrais que s'affichent les enregistrements 1 et 2.
Si je choisis le secteur 'PA', je voudrais que s'affichent les enregistrements 1 et 3.
Si je choisis le secteur IE, je voudrais que s'affiche les enregistrements 4 et 6.
Si je choisis le secteur ES, je voudrais que s'affiche les enregistrements 4 et 5.

En espérant être claire.

Je vous remercie d'avance ^^

7 réponses

NHenry Messages postés 15112 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 13 avril 2024 159
4 nov. 2011 à 19:21
Bonjour,

Peut être avec une union et une sous requête.
Genre :
SELECT * FROM MaTable WHERE Chemp3=Transversal AND Champ2 IN (SELECT Champ1 From MaTable WHERE Champ2="MaValeur")

---------------------------------------------------------------------
[list=ordered][*]Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS et aussi ce lien[*]Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : )
[*]Si votre problème est résolu (et uniquement si c'est le cas), pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés./list
---
Mon site
0
Noob32 Messages postés 4 Date d'inscription vendredi 4 novembre 2011 Statut Membre Dernière intervention 1 décembre 2011
17 nov. 2011 à 11:36
Bonjour,

J'ai essayé le code, mais ça ne marche pas, je n'ai aucun résultat dans l'état.

SELECT FacteursInfluants.Etapes_N°, FacteursInfluants.Etapes, FacteursInfluants.FacteurInfl, FacteursInfluants.Tolérance, FacteursInfluants.[Mode de maîtrise ou de contrôle], FacteursInfluants.Référence, FacteursInfluants.[Moyens de maîtrise à développer], FacteursInfluants.Cible, FacteursInfluants.[Type d'action], FacteursInfluants.Service, FacteursInfluants.Secteur, FacteursInfluants.[Type d'effet], FacteursInfluants.Clé
FROM FacteursInfluants
WHERE (((FacteursInfluants.Etapes_N°)=Nz([Forms]![Moteur de recherche]![Retape],[Etapes_N°])) AND ((FacteursInfluants.Services_N°)=Nz([Forms]![Moteur de recherche]![Rservice],[Services_N°])) AND ((FacteursInfluants.Secteurs_N°)=Nz([Forms]![Moteur de recherche]![Rsecteur],[Secteurs_N°])) AND ((FacteursInfluants.Actions_N°)=Nz([Forms]![Moteur de recherche]![Raction],[Actions_N°])) AND ((FacteursInfluants.Effets_N°)=Nz([Forms]![Moteur de recherche]![Reffet],[Effets_N°])) AND ((FacteursInfluants.Cible)=Nz([Forms]![Moteur de recherche]![Rcible],[Cible]) And (FacteursInfluants.Cible)="Transversal") AND ((FacteursInfluants.Service) In (SELECT FacteursInfluants.Secteur FROM FacteursInfluants WHERE (FacteursInfluants.Service = Formulaires![Moteur de recherche]![Rservice] ))))
GROUP BY FacteursInfluants.Etapes_N°, FacteursInfluants.Etapes, FacteursInfluants.FacteurInfl, FacteursInfluants.Tolérance, FacteursInfluants.[Mode de maîtrise ou de contrôle], FacteursInfluants.Référence, FacteursInfluants.[Moyens de maîtrise à développer], FacteursInfluants.Cible, FacteursInfluants.[Type d'action], FacteursInfluants.Service, FacteursInfluants.Secteur, FacteursInfluants.[Type d'effet], FacteursInfluants.Clé
ORDER BY FacteursInfluants.Clé;


PS: j'ai deux champs de recherche en plus : étape et effet, mais ils ne me servent pas pour la requête que je veux.

Merci
0
NHenry Messages postés 15112 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 13 avril 2024 159
18 nov. 2011 à 22:09
Bonjour,

En général dans les bases de données on évites les noms de champs et de table avec des espaces ou caractères non standard (accentués, ...).
Car cela complique inutilement la lecture des requêtes et impose de mettre les noms entre crochets ou '

Pour la partie :
And ((FacteursInfluants.Service) In (SELECT FacteursInfluants.Secteur FROM FacteursInfluants WHERE (FacteursInfluants.Service = Formulaires![Moteur de recherche]![Rservice] )))

Je trouve étrange que tu utilises le champ Secteur pour filtrer sur Service.

Que signifie les ! ?

---------------------------------------------------------------------
[list=ordered][*]Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS et aussi ce lien[*]Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : )
[*]Si votre problème est résolu (et uniquement si c'est le cas), pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés./list
---
Mon site
0
Noob32 Messages postés 4 Date d'inscription vendredi 4 novembre 2011 Statut Membre Dernière intervention 1 décembre 2011
30 nov. 2011 à 16:51
Bonjour,

Quels '!' ?

Je vais essayer le code que tu m'as donné.

Merci
0

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

Posez votre question
NHenry Messages postés 15112 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 13 avril 2024 159
30 nov. 2011 à 19:10
Bonjour,

D'accord, je parlais de ceux là : Formulaires![Moteur de recherche]![Rservice]

---------------------------------------------------------------------
[list=ordered][*]Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS, ce lien ou encore celui-ci[*]Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : )
[*]Si votre problème est résolu (et uniquement si c'est le cas), pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés./list
---
Mon site
0
Noob32 Messages postés 4 Date d'inscription vendredi 4 novembre 2011 Statut Membre Dernière intervention 1 décembre 2011
1 déc. 2011 à 13:25
Bonjour,
Je ne sais pas, ça se met tout seul. Même si je les enlève, ils se remettent.
Par contre pour le code, je ne sais as où le mettre dans ce code :


SELECT FacteursInfluants.Clé, FacteursInfluants.Etapes, FacteursInfluants.FacteurInfl, FacteursInfluants.Tolérance, FacteursInfluants.[Mode de maîtrise ou de contrôle], FacteursInfluants.Référence, FacteursInfluants.[Moyens de maîtrise à développer], FacteursInfluants.Cible, FacteursInfluants.[Type d'effet], FacteursInfluants.Service, FacteursInfluants.Secteur, FacteursInfluants.[Type d'action]
FROM [Types de secteurs] INNER JOIN ([Table Services/Secteurs] INNER JOIN ([Types de services] INNER JOIN FacteursInfluants ON [Types de services].Numéro = FacteursInfluants.Services_N°) ON [Table Services/Secteurs].[N° Service] = [Types de services].Numéro) ON ([Types de secteurs].Numéro = [Table Services/Secteurs].[N° Secteur]) AND ([Types de secteurs].Numéro = FacteursInfluants.Secteurs_N°)
WHERE (((FacteursInfluants.Secteurs_N°)=[Formulaires]![Moteur de recherche]![Rsecteur]) AND ((FacteursInfluants.Cible) Like "*Transversal*")) OR (((FacteursInfluants.Secteurs_N°)=[Formulaires]![Moteur de recherche]![Rsecteur]))
GROUP BY FacteursInfluants.Clé, FacteursInfluants.Etapes, FacteursInfluants.FacteurInfl, FacteursInfluants.Tolérance, FacteursInfluants.[Mode de maîtrise ou de contrôle], FacteursInfluants.Référence, FacteursInfluants.[Moyens de maîtrise à développer], FacteursInfluants.Cible, FacteursInfluants.[Type d'effet], FacteursInfluants.Service, FacteursInfluants.Secteur, FacteursInfluants.[Type d'action];


Merci
0
NHenry Messages postés 15112 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 13 avril 2024 159
13 déc. 2011 à 21:48
Bonjour,

Désolé pour le délai de réponse.
Mon incompréhension est dûe à ton classement : VB.NET alors que tu développes en VBA Access apparemment, tu confirmes ?

---------------------------------------------------------------------
[list=ordered][*]Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS, ce lien ou encore celui-ci[*]Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : )
[*]Si votre problème est résolu (et uniquement si c'est le cas), pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés./list
---
Mon site
0
Rejoignez-nous