|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité régulier
![]() Inscription : janvier 2011 Messages : 11 ![]() |
bonjour à tous
bien, je travail sur une base ac "gestion de projets" j'ai créer une requête sélection qui calcule le nouveau montant d'un projet : Nouveau montant projet : [montant projet initial]+[montant somme avenants] [montant projet initial] : provient de la table "projet" [montant somme avenants]: provient d'une requête qui calcule la somme des avenant du projet de la table avenant. le problème c que lorsque le projet ne contient pas d'avenant (valeur somme avenant est nulle) le nouveau montant du projet n’apparais pas dans la requête merci d'avance pour votre aide |
|
|
00
|
|
|
#2 |
|
Membre éprouvé
![]() Jean-Yves DUMASConsultant informatique Inscription : juin 2010 Messages : 325 ![]() |
Bonjour gfreeman.006,
Ton problème vient probablement du fait que tu utilise ce qu'on appelle en SQL une jointure interne. Comme tu n'a pas d'enregistrement das la table des avenants, il n'y aura pas de correspondance avec la table des projets. La solution passera donc par une jointure externe. Même si tu ne nous as pas communiqué beaucoup plus d'élément, te dirais que la solution pourra être la suivante : - dans ta requête, affiche le mode "création" - clique sur la jointure entre tes 2 tables. La fenête "propriété de la jointure" s'affichera. - tu choisiras l'option 2 ou 3 selon que ta table "projet" sera à gauche ou à droite. Le principal sera de choisir "Inclure tous les enregistrements de la table "projet" et seulement ceux de la table "avenant" pour lesquels les champs joints sont égaux. -Valide et passe en mode "feuille de données", tu verras que l'ensemble de tes projets s'affichera. Par contre, il te faudra probablement passer par une opération supplémentaire pour faire la somme des avenants avec le projet initial, car dans le cas ou le projet n'a pas d'avenant, le montant de ces dernier est nul, et il risque d'y avoir une erreur lors de la sommation. Dans ce cas, il y aura 2 manières de faire : - soit ne calculer la somme que si l'avenant a une valeur non nulle - soit forcer la valeur à 0 si le montant est nul dans ces 2 cas, utilise les fonctions VraixFaux et estnul. Je te laisse chercher comment les utiliser. A bientôt sur le forum
__________________
S'il n'y a pas de solution, c'est qu'il n'y a pas de problème !!!si tout est OK, n'oubliez pas de cliquer sur
|
|
|
20
|
|
|
#3 |
|
Invité régulier
![]() Inscription : janvier 2011 Messages : 11 ![]() |
Bonjour Mr Dumas.blr
Merci pour votre rapide réponse Comme tu l'a dit j'ai pas communiqué beaucoup plus d'élément, mais tu a très bien ciblé mon problème. alors, je vais passé à l'action , - pour le premier point (propriété de la jointure) pas de problème - pour le deuxième point (fonctions VraixFaux et estnul) je vais me documenté , mais si je trouve des difficultés, je serrais très reconnaissant d'un autre coup de main de votre part merci bien |
|
|
00
|
|
|
#5 |
|
Invité régulier
![]() Inscription : janvier 2011 Messages : 11 ![]() |
Bonjour à tous
comme me l'a suggérer Mr Dumas, j'ai fais une petite recherche sur les fonctions .. mais j'ai pas pu trouvé la bonne combinaison pour mon problème, par contre, j'ai utilisé la fonction NZ(...) qui permet de transformer mon champ en une autre valeur si il est Null. La syntaxe : nz(MonChamp;0) si monChamp est Nul, il utilise 0 en d'autre terme : somme des Avenants: Nz([montant de l'Avenant TTC];0) est ça marche très bien (solution trouvée dans le forum (fgiambelluco) Merci à Mr Dumas et à fgiambelluco et à + |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com