Bonjour à tous,
Stagiaire, j'ai du remodeler la base de données de ma boite pour des raisons de flexibilité, cependant les utilisateurs souhaitent conserver la même interface.
Le problème étant que j'ai bien du mal sur la façon dont je peux créer le formulaire leur permettant de saisir leurs données.
Ma base est constitué d'une liste d'indicateurs techniques (bouche d'égouts, m de trottoirs, etc) tous liés à un service. Chacun peut être utilisé dans des chantiers et on souhaite stocker la quantité employée. Jusque là, pas de soucis, sauf que l'interface doit ressembler à ceci :
En fait, je dois afficher tous les indicateurs possibles d'un service, laisser l'utilisateur entrer les données et n'enregistrer que ceux où la valeur est supérieure à 0 dans une table faisant le lien entre les 2 entités : chantier et indicateur.
EDIT : Voici mon modèle de donnée :
EDIT2 : Je pensais déjà trouver une requête me permettant d'avoir pour chaque chantier, tous les indicateurs avec leur valeurs si elle existe dans la table Indicateur_chantier, et 0 sinon, mais apparemment Access ne support pas le CROSS JOIN.. Je l'ai donc remplacé par un INNER JOIN en multipliant les id par 0 mais pas moyen d'ajouter le LEFT JOIN après pour les valeurs, idem en faisant un simple FROM Chantier, Indicateur sans WHERE
SELECT Chantier.id_chantier, Indicateur.id_indicateur, Indicateur_chantier.valeur
FROM ((Chantier INNER JOIN Indicateur ON (Chantier.id_chantier*0 = Indicateur.id_indicateur*0))
LEFT JOIN Indicateur_chantier
ON ( (Chantier.id_chantier = Indicateur_chantier.id_chantier) AND (Indicateur.id_indicateur = Indicateur_chantier.id_indicateur) ) )
;
-> Expression JOIN non supportée
Voilà, si quelqu'un à une idée, ou même une piste je suis preneur !
Merci !
Partager