Iif dans requête ou VB? [Fermé]

Signaler
Messages postés
4
Date d'inscription
lundi 21 mars 2011
Statut
Membre
Dernière intervention
21 mars 2011
-
Jean_Jacques
Messages postés
1045
Date d'inscription
mercredi 30 avril 2008
Statut
Membre
Dernière intervention
5 mars 2014
-
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?

2 réponses

Messages postés
1045
Date d'inscription
mercredi 30 avril 2008
Statut
Membre
Dernière intervention
5 mars 2014
108
Bonjour lemain,


La solution "iif [id_contrôle] ..... est viable, à condition que la liste des id_controle ne soit pas excessive.
Car il faut prévoir chacun des cas ..... et rédiger la condition Iff adaptée a chacun d'entre-eux.


Cordialement
La science ne fait que trouver ce qui existe depuis toujours.
REEVES Hubert.
Messages postés
4
Date d'inscription
lundi 21 mars 2011
Statut
Membre
Dernière intervention
21 mars 2011

Merci Jean_Jacques 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.
Jean_Jacques
Messages postés
1045
Date d'inscription
mercredi 30 avril 2008
Statut
Membre
Dernière intervention
5 mars 2014
108
Malheureusement, je ne dispose que de ACCESS 2000. Je ne suis donc pas en mesure d'expérimenter des solutions dans le même contexte que le vôtre.
A priori la solution la plus évidente me semble être un code du type :


If RéfOpération = 1 And ((PrixUnitaire * Quantité) / 100 * 0.7) <= 9.9 Then
Rem Forms!saisie.Refresh
'1 Calcul des opérations sur Achat
Me!Montant_Brut = (Me!PrixUnitaire * Me!Quantité)
Me!Commission = 9.9
Me!Montant_Net = Format(([Montant_Brut]) + ([Commission] + [Frais]), "##,##0.00")
'Commentaire automatique inséré dans le champ Remarque
If IsNull(Me!Remarque) Then
Me!Remarque = Me!Remarque & "/" & (Me!RéfTransaction) & "/ " & (Me!RéfOpération) & " /" & (Me!PrixUnitaire) & "/" & (Me!Quantité) & "/Transaction saisie le : " & Date & " " & Me!Code & " " & "Vérification : "
End If

ElseIf RéfOpération = 2 And ((PrixUnitaire * Quantité) / 100 * 0.7) <= 9.9 Then
'Forms!saisie.Refresh
' 2 Calcul des opérations sur Vente
Me!Montant_Brut = (PrixUnitaire * Quantité)
Me!Commission = 9.9
Me!Montant_Net = Format(([Montant_Brut]) - ([Commission] + [Frais]), "##,##0.00")
'Commentaire automatique inséré dans le champ Remarque
If IsNull(Me!Remarque) Then
Me!Remarque = Me!Remarque & "/" & (Me!RéfTransaction) & "/ " & (Me!RéfOpération) & " /" & (Me!PrixUnitaire) & "/" & (Me!Quantité) & "/Transaction saisie le : " & Date & " " & Me!Code & " " & "Vérification : "
End If

Mais je n'en suis pas totalement convaincu.....
Pour conclure, je vous invite à consulter le site : https://access.developpez.com/
qui est très riche en astuces et autres ficelles de programmeurs ...

Cordialement