Requête d'ajout et séléction de données
Utilisateur anonyme
-
phache -
phache -
Bonjour,
Je veux faire une requête sur Access qui selectionne les données suivantes dans l'ordre (les tables d'ou elles proviennent sont écrites entre parenthèses:
N°DE(ACTIVITE); Affaire(DE) ;N°pièce (COMPOSANT); Reference (COMPOSANT); recep(COMPOSANT); N°piece (COMPOSANT) ;Reference(COMPOSANT) ;recep(COMPOSANT) ; N°piece(COMPOSANT) ;Reference(COMPOSANT) ; recep(COMPOSANT) ;conditions(COMPOSANT); fin_essai(COMPOSANT) ;banc (COMPOSANT)
Et si vous avez remarqué les champs N°piece ,reference et recep seront affichés 3fois car à chaque activité on peux associer 3composants (Principal, secondaire et tertiaire présents dans un champ type composant) Donc il faut que la requête affiche les trois composants si possible (ils auront le même N° d'activité)
Les jointures entre les tables seront faites sur:
- le "N°DE" entre les table Activité et DE.
- le "N°activité" entre les tables activité et composant.
Le critère de selection de données est la correspondance entre "type essai" (table:ACTIVITE) et le resultat d'un formulaire déjà fait, et la requête ajoutera dans une table (dejà crée) les essais correspondants.
J'ai fait une requête ajout en mode création j'ai ajouté les 3 tables j'ai seléctionné tous les champs dont j'ai besoin, mais mon problème c'est le code SQL ou VBA qu'il faut écrire dans les champs "critère et "ou" pour la selection de données..
Si besoin d'autres infos, je suis là..
Merci d'avance pour le temps que vous prendrez pour m'aider..
Je veux faire une requête sur Access qui selectionne les données suivantes dans l'ordre (les tables d'ou elles proviennent sont écrites entre parenthèses:
N°DE(ACTIVITE); Affaire(DE) ;N°pièce (COMPOSANT); Reference (COMPOSANT); recep(COMPOSANT); N°piece (COMPOSANT) ;Reference(COMPOSANT) ;recep(COMPOSANT) ; N°piece(COMPOSANT) ;Reference(COMPOSANT) ; recep(COMPOSANT) ;conditions(COMPOSANT); fin_essai(COMPOSANT) ;banc (COMPOSANT)
Et si vous avez remarqué les champs N°piece ,reference et recep seront affichés 3fois car à chaque activité on peux associer 3composants (Principal, secondaire et tertiaire présents dans un champ type composant) Donc il faut que la requête affiche les trois composants si possible (ils auront le même N° d'activité)
Les jointures entre les tables seront faites sur:
- le "N°DE" entre les table Activité et DE.
- le "N°activité" entre les tables activité et composant.
Le critère de selection de données est la correspondance entre "type essai" (table:ACTIVITE) et le resultat d'un formulaire déjà fait, et la requête ajoutera dans une table (dejà crée) les essais correspondants.
J'ai fait une requête ajout en mode création j'ai ajouté les 3 tables j'ai seléctionné tous les champs dont j'ai besoin, mais mon problème c'est le code SQL ou VBA qu'il faut écrire dans les champs "critère et "ou" pour la selection de données..
Si besoin d'autres infos, je suis là..
Merci d'avance pour le temps que vous prendrez pour m'aider..
A voir également:
- Requête d'ajout et séléction de données
- Fuite données maif - Guide
- Supprimer les données de navigation - Guide
- Trier des données excel - Guide
- Ajout snap sans rien d'écrit - Forum Snapchat
- L'indice n'appartient pas à la sélection - Forum VB / VBA
5 réponses
Ah le bonheur d'Access ! :p
Si tu veux bien, tu pourrais essayer de nous montrer ta requête mais cette fois en SQL s'il te plait ? Je crois qu'il y a une petite icône en haut à gauche en dessous de "Fichier" qui te permet de basculer en mode SQL.
Merci ;)
Si tu veux bien, tu pourrais essayer de nous montrer ta requête mais cette fois en SQL s'il te plait ? Je crois qu'il y a une petite icône en haut à gauche en dessous de "Fichier" qui te permet de basculer en mode SQL.
Merci ;)
Je ne connait pas le SQL mais logiquement çà serait:
Si Activité.type essai= Formulaire.export.champ0
alors ajouter les champs N°DE(ACTIVITE); Affaire(DE) ;N°pièce (COMPOSANT); Reference (COMPOSANT); recep(COMPOSANT); N°piece (COMPOSANT) ;Reference(COMPOSANT) ;recep(COMPOSANT) ; N°piece(COMPOSANT) ;Reference(COMPOSANT) ; recep(COMPOSANT) ;conditions(COMPOSANT); fin_essai(COMPOSANT) ;banc (COMPOSANT)
si Le N°d'activité de la table activité =N°activité de la table composant.
Et pour les 3 champs (N°pièce, reference, recep) La première fois serait si Composant.[type composant]="Principal"
La 2ème fois si Composant.[Type correspondant]="secondaire" Et la troisième fois pour "tertiaire"
Et les liaisons entre les tables se feraient sur le N° d'activité et le N°DE ces liens là je les ai fait avec les jointures graphiques de la requête.. Et les champs destinations pour l'ajout je les ai déjà renseignés juste en bas des champs sources à l'emplacement "ajouter à"
Donc il me reste juste à écrire les critères d'ajout (les ptits tests) dans l'emplacement "critères"..
Si Activité.type essai= Formulaire.export.champ0
alors ajouter les champs N°DE(ACTIVITE); Affaire(DE) ;N°pièce (COMPOSANT); Reference (COMPOSANT); recep(COMPOSANT); N°piece (COMPOSANT) ;Reference(COMPOSANT) ;recep(COMPOSANT) ; N°piece(COMPOSANT) ;Reference(COMPOSANT) ; recep(COMPOSANT) ;conditions(COMPOSANT); fin_essai(COMPOSANT) ;banc (COMPOSANT)
si Le N°d'activité de la table activité =N°activité de la table composant.
Et pour les 3 champs (N°pièce, reference, recep) La première fois serait si Composant.[type composant]="Principal"
La 2ème fois si Composant.[Type correspondant]="secondaire" Et la troisième fois pour "tertiaire"
Et les liaisons entre les tables se feraient sur le N° d'activité et le N°DE ces liens là je les ai fait avec les jointures graphiques de la requête.. Et les champs destinations pour l'ajout je les ai déjà renseignés juste en bas des champs sources à l'emplacement "ajouter à"
Donc il me reste juste à écrire les critères d'ajout (les ptits tests) dans l'emplacement "critères"..
2images pour mieux expliquer la requête!!ici là
Il me faudra juste placer le test sur Type composant( COMPOSANT) pour faire la difference entre les 3composants de l'activité à ajouter dans la table avec la requête.
Il me faudra juste placer le test sur Type composant( COMPOSANT) pour faire la difference entre les 3composants de l'activité à ajouter dans la table avec la requête.
la requête en SQL donne çà:
C'est le where qui pose problème!!
INSERT INTO export_excel ( [n° DE], Affaire, [n° pièce1], [Réf produit1], Date_recep_reelle1, [n° pièce2], [Réf produit2], Date_recep_reelle2, [n° pièce3], [Réf produit3], Date_recep_reelle3, [Condition d'essai], [Date-fin_essai_tech_prev], [Durée théorique], Machine, Duree_redac_rap, [Formulaires]![choix_exportation]![Champ0] )
SELECT ACTIVITE.[n° DE], DE.Affaire, COMPOSANT.[n° pièce], COMPOSANT.[Réf produit], COMPOSANT.Date_recep_reelle, COMPOSANT.[n° pièce], COMPOSANT.[Réf produit], COMPOSANT.Date_recep_reelle, COMPOSANT.[n° pièce], COMPOSANT.[Réf produit], COMPOSANT.Date_recep_reelle, ACTIVITE.[Condition d'essai], ACTIVITE.[Date-fin_essai_tech_prev], ACTIVITE.[Durée théorique], ACTIVITE.Machine, ACTIVITE.Duree_redac_rap, ACTIVITE.[Type d'essai]
FROM (ACTIVITE INNER JOIN DE ON ACTIVITE.[n° DE] = DE.[n° DE]) INNER JOIN COMPOSANT ON ACTIVITE.[n° activité] = COMPOSANT.[n° activité]
WHERE (((ACTIVITE.[Type d'essai])=[Formulaires]![choix_exportation]![Champ0]));
Mon problème c'est que je veux pas afficher 3fois (N° composant, reference , et date de reception) çà correspond à 3composants qui font partie d'une même activité!! (Principal, secondaire,secondaire1 dans le champ type composant dans la table COMPOSANT)
Et le but c'est exporter sur Excel toutes les activités d'un type donné qui est résultat du formulaire "choix exportation"..
(j'essaie d'expliquer mon problème mais je sais pas si j'y arrive..)
C'est le where qui pose problème!!
INSERT INTO export_excel ( [n° DE], Affaire, [n° pièce1], [Réf produit1], Date_recep_reelle1, [n° pièce2], [Réf produit2], Date_recep_reelle2, [n° pièce3], [Réf produit3], Date_recep_reelle3, [Condition d'essai], [Date-fin_essai_tech_prev], [Durée théorique], Machine, Duree_redac_rap, [Formulaires]![choix_exportation]![Champ0] )
SELECT ACTIVITE.[n° DE], DE.Affaire, COMPOSANT.[n° pièce], COMPOSANT.[Réf produit], COMPOSANT.Date_recep_reelle, COMPOSANT.[n° pièce], COMPOSANT.[Réf produit], COMPOSANT.Date_recep_reelle, COMPOSANT.[n° pièce], COMPOSANT.[Réf produit], COMPOSANT.Date_recep_reelle, ACTIVITE.[Condition d'essai], ACTIVITE.[Date-fin_essai_tech_prev], ACTIVITE.[Durée théorique], ACTIVITE.Machine, ACTIVITE.Duree_redac_rap, ACTIVITE.[Type d'essai]
FROM (ACTIVITE INNER JOIN DE ON ACTIVITE.[n° DE] = DE.[n° DE]) INNER JOIN COMPOSANT ON ACTIVITE.[n° activité] = COMPOSANT.[n° activité]
WHERE (((ACTIVITE.[Type d'essai])=[Formulaires]![choix_exportation]![Champ0]));
Mon problème c'est que je veux pas afficher 3fois (N° composant, reference , et date de reception) çà correspond à 3composants qui font partie d'une même activité!! (Principal, secondaire,secondaire1 dans le champ type composant dans la table COMPOSANT)
Et le but c'est exporter sur Excel toutes les activités d'un type donné qui est résultat du formulaire "choix exportation"..
(j'essaie d'expliquer mon problème mais je sais pas si j'y arrive..)
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
J'ai juste donné le cahier de charges de la requête que je n'arrive pas à écrire.. mais si c'est faisable en SQL (je pense que oui..) je ne suis pas contre!!!
Mais pour le moment ce code j'arrive pas à l'écrire!!(Je ne maitrise pas SQL!!!)