|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Nouveau Membre du Club
![]() Étudiant Inscription : juillet 2011 Messages : 29 ![]() |
Bonjour,
Est il possible d'assigner une valeur par défaut aux aux variables qui ne pourront être liées a aucune valeur lors d'une requête imbriquée ? Je m'explique. J'ai deux tables, une contenant les absences d'employer et leur noms ainsi que le type d'absence contenu sous la forme d'un int lié a une autre table. Or dans la seconde table les id d'absence vont de 1 a 10 mais comme le programme a originellement été mal conçue j'ai des int allant jusqu’à 20 dans la première. Est il donc possible de faire une requête qui prendra les valeurs correspondant aux int inférieurs a 10 et de, par exemple, renvoyer "autre" pour ceux sans correspondance ? Merci de porter intérêt à mon problème car la je n'obtient qu'un quart des résultat a cause de ce problème et cela m’empêche de poursuivre le développement de cette application pour ma boite. |
|
|
00
|
|
|
#2 |
|
Expert Confirmé
![]() Inscription : juillet 2007 Messages : 2 178 ![]() |
Bonjour Arofu,
Je te suggère de fureter vers la fonction VraiFaux(TonChampCible est Null ; "autre" ; TonChampCible).
__________________
Dis-nous et à bientôt, Richard. ---------------------------------------------------------------------------------------------- . et permettent aux forumeurs de cibler leur recherche dans une discussion : n'hésitez pas à voter !
|
|
|
00
|
|
|
#3 | ||||
|
Membre Expert
![]() ![]() Inscription : avril 2006 Messages : 1 318 ![]() |
bonjour,
c'est relativement simple, il faut rajouter les id manquants dans la deuxième table avec le libellé "Autre".... ![]() Sinon, dans la requete faire une liaison LEFT JOIN entre les deux tables pour pouvoir afficher toutes les lignes de la première puis pour le libellé du type d'absence écrire dans l'interface de création de requête: Code :
Code :
|
||||
|
00
|
|
|
#4 |
|
Nouveau Membre du Club
![]() Étudiant Inscription : juillet 2011 Messages : 29 ![]() |
Bonjour, merci a vous deux pour vos réponses, malheuresement je n'arrive pas à trouver ou placer cet fonction vrai faux. Est-ce dans le SELECT quand je sélectionne l'élément qui va résulter de la liaison ou dans le WHERE à la place du = pour assigner la liaison ? Dans les deux il me met opérateur manquant..
Sinon est-ce que cette méthode gère le cas ou la valeur que l'on souhaite assigner est nulle ou bien le cas ou elle n'a pas de correspondance dans l'autre table ? Merci par avance de vos réponses. |
|
|
00
|
|
|
#5 | ||
|
Expert Confirmé
![]() Inscription : juillet 2007 Messages : 2 178 ![]() |
Bonjour Arofu et Philben,
Citation:
Le LEFT JOIN correspond à la flèche orientée à droite. Code sql :
Type Absence: VraiFaux(LIBELLEABSENCE Est NULL;"Autre";[LIBELLEABSENCE]) Par contre, il faut remplacer "LIBELLEABSENCE" par l'Id de l'absence dans la table jointe : en effet, il pourrait y avoir des libellés=NULL alors qu'un enregistrement est présent. Citation:
__________________
Dis-nous et à bientôt, Richard. ---------------------------------------------------------------------------------------------- . et permettent aux forumeurs de cibler leur recherche dans une discussion : n'hésitez pas à voter !
|
||
|
|
00
|
|
|
#6 | |
|
Nouveau Membre du Club
![]() Étudiant Inscription : juillet 2011 Messages : 29 ![]() |
Je suis désolé mais la je n'arrive vraiment pas a comprendre le fonctionnement de cette fonction..
J'ai codé: Citation:
Absence est ma première table et type_absence est la deuxième de laquelle je veux récupérer le type d'absence en string, qui ont un id de 1 a 10. |
|
|
|
00
|
|
|
#7 |
|
Expert Confirmé
![]() Inscription : juillet 2007 Messages : 2 178 ![]() |
Tu n'est pas passé par l'assistant !
==> VraiFaux() de l'assistant correspond au IIf() du SQL. Et, dans ton code, il n'y a pas de jointure ! ==> LEFT JOIN. Je te suggère de passer par l'assistant. Dans "Requête", "Nouveau" puis "Assistant requête de non-correspondance" : suit les instructions, c'est très clair. Ensuite, tu pourras reprendre la requête générée et indiquer, via l'assistant, la fonction VraiFaux() en question. Enfin, tu pourras jeter un coup d'oeil sur le code SQL généré par Access (qui sera correct, puisque créé par Access).
__________________
Dis-nous et à bientôt, Richard. ---------------------------------------------------------------------------------------------- . et permettent aux forumeurs de cibler leur recherche dans une discussion : n'hésitez pas à voter !
|
|
|
00
|
|
|
#8 |
|
Membre Expert
![]() ![]() Inscription : avril 2006 Messages : 1 318 ![]() |
bonjour,
ci-joint un exemple : La requête de l'exemple permet d'afficher "Autre" si le Id du type d'absence contenu dans la table absence est inconnu dans la table type_absence, sinon elle affiche le libellé correspondant. Dans la base exemple, l'enregistrement n°6 de la table absence contient un id de type inconnu (valeur = 11) dans la table type_absence donc elle retourne "Autre". A toi d'adapter selon le nom de tes champs. Philippe |
|
00
|
Copyright © 2000-2012 - www.developpez.com