Champs complété selon des résultats d'autres champs

Fermé
maguenard Messages postés 18 Date d'inscription lundi 21 novembre 2016 Statut Membre Dernière intervention 16 octobre 2017 - 21 nov. 2016 à 14:53
maguenard Messages postés 18 Date d'inscription lundi 21 novembre 2016 Statut Membre Dernière intervention 16 octobre 2017 - 23 nov. 2016 à 19:46
Bonjour,
J'aimerais savoir comment faire afin de mettre la valeur dans un champs d'une table selon les informations contenus dans un champs dans une autre table.
Ex: Le champs à compléter est le champs ETAT de la table CHANTIER. Les valeurs du champs ETAT sont les suivant:
OUVERT, si le champs VOLUME de la table SUIVI_HEBDO EST VIDE
EN COURS, si le champs VOLUME de la table SUIVI_HEBDO contient des données.

merci de me répondre
A voir également:

3 réponses

yg_be Messages postés 22764 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 7 mai 2024 1 480
21 nov. 2016 à 19:40
En général, il est fortement déconseillé de faire comme tu l'envisages.
Au lieu d'avoir un champ ETAT dans la table CHANTIER, je suggère, quand tu as besoin de connaitre l'état du chantier, d'aller chercher la valeur de VOLUME dans la table SUIVI_HEBDO.
As-tu une raison particulière de ne pas faire comme je suggère?
0
maguenard Messages postés 18 Date d'inscription lundi 21 novembre 2016 Statut Membre Dernière intervention 16 octobre 2017
21 nov. 2016 à 21:20
L'utilisateur de la base de donnée veut que la valeur du champs ETAT se génère automatiquement selon des valeurs de d'autres champs.
0
yg_be Messages postés 22764 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 7 mai 2024 1 480
21 nov. 2016 à 21:33
Au lieu de laisser l'utilisateur aller consulter les tables de la base, tu pourrais lui afficher les informations via des requêtes. Et les requêtes pourraient automatiquement combiner la table CHANTIER avec la table SUIVI_HEBDO, sans que l'utilisateur sache de quelle table vient chaque information.
0
maguenard Messages postés 18 Date d'inscription lundi 21 novembre 2016 Statut Membre Dernière intervention 16 octobre 2017
21 nov. 2016 à 21:56
Il n'a pas besoin de consulter les tables, c'est lui qui saisie l'information dans différents formulaires et il veux connaître l'évolution des chantiers grâce au champs ETAT.
0
yg_be Messages postés 22764 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 7 mai 2024 1 480
21 nov. 2016 à 22:47
Tu cherches un moyen d'avoir dans la table CHANTIER un champ ETAT, automatiquement mis à jour en fonction de la table SUIVI_HEBDO.
Je suggère une autre approche : ne pas avoir de champ ETAT, et, chaque fois que tu souhaites utiliser ou afficher ETAT, l'évaluer en fonction de la table SUIVI_HEBDO.
Pour l'utilisateur, le résultat sera le même.
0
maguenard Messages postés 18 Date d'inscription lundi 21 novembre 2016 Statut Membre Dernière intervention 16 octobre 2017
22 nov. 2016 à 15:54
Je ne comprend, est ce que tu aurais un exemple, merci
0
yg_be Messages postés 22764 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 7 mai 2024 1 480
22 nov. 2016 à 19:16
Si tu partages ton fichier, je peux faire un exemple dedans.
0
maguenard Messages postés 18 Date d'inscription lundi 21 novembre 2016 Statut Membre Dernière intervention 16 octobre 2017 > yg_be Messages postés 22764 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 7 mai 2024
22 nov. 2016 à 19:28
Je suis nouveau sur ce forum, comment on partage
0
yg_be Messages postés 22764 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 7 mai 2024 1 480
22 nov. 2016 à 21:17
0
yg_be Messages postés 22764 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 7 mai 2024 1 480
22 nov. 2016 à 22:11
Pour donner un exemple, j'ai modifié la requête RRapport_Hebdo, pour calculer Etat en fonction de TSuivi_Récolte.Vol_SEP:
SELECT DISTINCT TChantier.Nom_prop, TChantier.No_chantier, TSuivi_Récolte.Traitement, TSuivi_Récolte.Vol_SEP, TSuivi_Récolte.Vol_MEL_SCIE, TSuivi_Récolte.Vol_PET_SCIE, TSuivi_Récolte.Vol_PET_PATE, TSuivi_Récolte.Vol_BOP_SCIE, TSuivi_Récolte.Vol_CHAUFFAGE, TSuivi_Récolte.Date_, TSuivi_Récolte.Entrepreneur, TPlanification.[Taux ent SEP], TPlanification.[Taux ent MEL SCIE], TPlanification.[Taux ent PET SCIE], TPlanification.[Taux ent PET PATE], TPlanification.[Taux ent BOP SCIE], TPlanification.[Taux ent CHAUFFAGE],
iif(TSuivi_Récolte.Vol_SEP=0,"OUVERT","EN COURS") as Etat
FROM TChantier INNER JOIN (TPlanification LEFT JOIN TSuivi_Récolte ON (TPlanification.Traitement = TSuivi_Récolte.Traitement) AND (TPlanification.No_chantier = TSuivi_Récolte.No_chantier)) ON TChantier.No_chantier = TPlanification.No_chantier
GROUP BY TChantier.Nom_prop, TChantier.No_chantier, TSuivi_Récolte.Traitement, TSuivi_Récolte.Vol_SEP, TSuivi_Récolte.Vol_MEL_SCIE, TSuivi_Récolte.Vol_PET_SCIE, TSuivi_Récolte.Vol_PET_PATE, TSuivi_Récolte.Vol_BOP_SCIE, TSuivi_Récolte.Vol_CHAUFFAGE, TSuivi_Récolte.Date_, TSuivi_Récolte.Entrepreneur, TPlanification.[Taux ent SEP], TPlanification.[Taux ent MEL SCIE], TPlanification.[Taux ent PET SCIE], TPlanification.[Taux ent PET PATE], TPlanification.[Taux ent BOP SCIE], TPlanification.[Taux ent CHAUFFAGE]
HAVING (((TSuivi_Récolte.Date_)=[Écrire la période (ex: 16 au 22 octobre 2016)]));

C'est cela que tu cherchais?
0
maguenard Messages postés 18 Date d'inscription lundi 21 novembre 2016 Statut Membre Dernière intervention 16 octobre 2017
23 nov. 2016 à 15:52
Tu semble seulement avoir ajouter cette ligne dans le code SQL iif(TSuivi_Récolte.Vol_SEP=0,"OUVERT","EN COURS") as Etat
0
yg_be Messages postés 22764 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 7 mai 2024 1 480
23 nov. 2016 à 19:37
Exactement, c'est dans le but d'ajouter ETAT, comme demandé.
0
maguenard Messages postés 18 Date d'inscription lundi 21 novembre 2016 Statut Membre Dernière intervention 16 octobre 2017 > yg_be Messages postés 22764 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 7 mai 2024
23 nov. 2016 à 19:46
merci! je vais essayer ça
0