Iif dans requete ou VB?
Dernière réponse : dans Programmation
Bonjour,
j'ai une bd access (97) dans laquelle je crée via une requête, une table qui affiche un résultat selon calcul de valeurs.
table Contrôles comprenant:
id_Contrôle, Valeur 1, Valeur 2, Valeur 3 (qyi servent de référence pour le calcul)
table Résultats comprenant:
date,
id_Contrôle,
Valeur brute (que je rentre manuellement)
table Résultats analyse construite via requête
date,
id_Contrôle,
Valeur brute,
résultat du mois en cours => dans field:"Résultat du mois en cours": IIf(Résultats.[Valeur brute]=0 And Résultats.[Valeur autre] Is Null;"soleil";IIf(Résultats.[Valeur brute]<15 And Résultats.[Valeur autre] Is Null;"assez satisfaisant";IIf(Résultats.[Valeur brute]>15 And Résultats.[Valeur autre] Is Null;"peu satisfaisant";"insatifsfaisant")))
Question:
j'ai un calcul différent selon l'id_Contrôle, comment intégrer pour chaque id_Contrôle un calcul différent? Faut-il passer par du VB? ou puis-je faire quelque chose du genre: "iif [id_contrôle] then.. ou exécuter une sous-requête?
Merci par avance pour votre aide en espérant être suffisamment claire?
j'ai une bd access (97) dans laquelle je crée via une requête, une table qui affiche un résultat selon calcul de valeurs.
table Contrôles comprenant:
id_Contrôle, Valeur 1, Valeur 2, Valeur 3 (qyi servent de référence pour le calcul)
table Résultats comprenant:
date,
id_Contrôle,
Valeur brute (que je rentre manuellement)
table Résultats analyse construite via requête
date,
id_Contrôle,
Valeur brute,
résultat du mois en cours => dans field:"Résultat du mois en cours": IIf(Résultats.[Valeur brute]=0 And Résultats.[Valeur autre] Is Null;"soleil";IIf(Résultats.[Valeur brute]<15 And Résultats.[Valeur autre] Is Null;"assez satisfaisant";IIf(Résultats.[Valeur brute]>15 And Résultats.[Valeur autre] Is Null;"peu satisfaisant";"insatifsfaisant")))
Question:
j'ai un calcul différent selon l'id_Contrôle, comment intégrer pour chaque id_Contrôle un calcul différent? Faut-il passer par du VB? ou puis-je faire quelque chose du genre: "iif [id_contrôle] then.. ou exécuter une sous-requête?
Merci par avance pour votre aide en espérant être suffisamment claire?
Autres pages sur : iif requete
Lassé par la pub ? Créez un compte
Salut,
La fonction IIf() contient 3 clauses : la condition, la valeur renvoyée si la condition est vraie et la valeur renvoyée si la condition est fausse.
Il n'y a donc pas de Then à attendre.
Voici ta ligne, avec des sauts de lignes indentées pour mieux comprendre :
Bon, ben maintenant, à toi de bien comprendre puis de voir avec [id_contrôle].
(Ça t'aide tout ça ?)
La fonction IIf() contient 3 clauses : la condition, la valeur renvoyée si la condition est vraie et la valeur renvoyée si la condition est fausse.
Il n'y a donc pas de Then à attendre.
Voici ta ligne, avec des sauts de lignes indentées pour mieux comprendre :
En fait, tu as écris :
IIf( Résultats.[Valeur brute]=0 And Résultats.[Valeur autre] Is Null; "soleil"; IIf( Résultats.[Valeur brute]<15 And Résultats.[Valeur autre] Is Null; "assez satisfaisant"; IIf( Résultats.[Valeur brute]>15 And Résultats.[Valeur autre] Is Null; "peu satisfaisant"; "insatifsfaisant" )))
If Résultats.[Valeur brute]=0 And Résultats.[Valeur autre] Is Null Then Valeur = "soleil"; ElseIf Résultats.[Valeur brute]<15 And Résultats.[Valeur autre] Is Null Then Valeur = "assez satisfaisant"; ElseIf Résultats.[Valeur brute]>15 And Résultats.[Valeur autre] Is Null Then Valeur = "peu satisfaisant" Else Valeur = "insatifsfaisant" End If
Bon, ben maintenant, à toi de bien comprendre puis de voir avec [id_contrôle].
(Ça t'aide tout ça ?)
Merci Zeb pour ta réponse.
Ce qui me manque:
j'ai une 15e de contrôles pour lesquels j'applique un calcul différent.
Comment gérer cela automatiquement? Je mets les valeurs qui correspondent à "satisfaisant", peu satisfaisant, etc..
J'ai une table dans laquelle je rentre les résultats mensuellement ("valeur brute").
Je dois comparer la valeur brute aux valeurs de calcul.
le résulat sera dans une table affichant par mois, satisfaisant ou peu satisfaisant: et cela je voudrais que ce soit automatique. (ça m'évite de regarder toujours mes fiches et me planter dans mon interprétation)
Merci pour ta réponse si tu as une idée.
Ce qui me manque:
j'ai une 15e de contrôles pour lesquels j'applique un calcul différent.
Comment gérer cela automatiquement? Je mets les valeurs qui correspondent à "satisfaisant", peu satisfaisant, etc..
J'ai une table dans laquelle je rentre les résultats mensuellement ("valeur brute").
Je dois comparer la valeur brute aux valeurs de calcul.
le résulat sera dans une table affichant par mois, satisfaisant ou peu satisfaisant: et cela je voudrais que ce soit automatique. (ça m'évite de regarder toujours mes fiches et me planter dans mon interprétation)
Merci pour ta réponse si tu as une idée.
Euh.... Ben si ce sera automatique
C'est le rôle de la jointure.
Voici une table de satisfaction :
Satisfaction
seuil_max,
seuil_min,
libellé
Ses données :
20, 16, Félicitations du jury
16, 14, Très bien
14, 12, Bien
12, 10, Assez bien
10, 8, Passable
8, 0, Insuffisant
Et une jointure sur une table de bulletin scolaire par exemple :
C'est le rôle de la jointure.Voici une table de satisfaction :
Satisfaction
seuil_max,
seuil_min,
libellé
Ses données :
20, 16, Félicitations du jury
16, 14, Très bien
14, 12, Bien
12, 10, Assez bien
10, 8, Passable
8, 0, Insuffisant
Et une jointure sur une table de bulletin scolaire par exemple :
SELECT
b.nom_eleve,
b.moyenne,
s.mention
FROM
bulletin b,
satisfaction s
WHERE
b.moyenne <= s.seuil_max
AND b.moyenne > s.seuil_min
J'ai testé ton idée:
SELECT bulletin.[Nom eleve], bulletin.moyenne, satisfaction.seuil_max, satisfaction.seuil_min, satisfaction.libellé
FROM bulletin, satisfaction
WHERE (((bulletin.moyenne)<=[satisfaction].[seuil_max] And (bulletin.moyenne)>[satisfaction].[seuil_min]));
et voici le résultat:
Nom eleve moyenne seuil_max seuil_min libellé
lucie 18 20 16 Félicitations
didier 19 20 16 Félicitations
thomas 15 16 14 Très bien
alain 12 12 10 Assez bien
thomas 15 8 0 Insuffisant
lucie 18 8 0 Insuffisant
agnes 7 8 0 Insuffisant
alain 12 8 0 Insuffisant
didier 19 8 0 Insuffisant
Il y a un pb car les prénoms apparaissent avec la même moyenne et un résultat différent.
SELECT bulletin.[Nom eleve], bulletin.moyenne, satisfaction.seuil_max, satisfaction.seuil_min, satisfaction.libellé
FROM bulletin, satisfaction
WHERE (((bulletin.moyenne)<=[satisfaction].[seuil_max] And (bulletin.moyenne)>[satisfaction].[seuil_min]));
et voici le résultat:
Nom eleve moyenne seuil_max seuil_min libellé
lucie 18 20 16 Félicitations
didier 19 20 16 Félicitations
thomas 15 16 14 Très bien
alain 12 12 10 Assez bien
thomas 15 8 0 Insuffisant
lucie 18 8 0 Insuffisant
agnes 7 8 0 Insuffisant
alain 12 8 0 Insuffisant
didier 19 8 0 Insuffisant
Il y a un pb car les prénoms apparaissent avec la même moyenne et un résultat différent.
Lassé par la pub ? Créez un compte
- Contenus similaires :
- ForumCreer une table avec le resultat dune requete sous vb access
- ForumSql requete avec if vb
- ForumVba requete sur une requete
- ForumAffichage resultat requete select depuis code vb
- ForumRemplir une table a partir dune requete sql en vb
- ForumIif access requã te
- ForumChronometre en vb
- ForumApprendre le vb
- ForumVb mysql
- ForumMenu vb
- Voir plus