Iif dans requête ou VB?
lemain
Messages postés
4
Date d'inscription
Statut
Membre
Dernière intervention
-
Jean_Jacques Messages postés 1040 Date d'inscription Statut Membre Dernière intervention -
Jean_Jacques Messages postés 1040 Date d'inscription Statut Membre Dernière intervention -
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?
A voir également:
- Iif dans requête ou VB?
- Vb - Télécharger - Langages
- Vb cable - Télécharger - Audio & Musique
- Erreur lors de l'envoi de la requête facebook - Forum Facebook
- Erreur de requete facebook - Forum Facebook
- Requete sql pix ✓ - Forum MySQL
2 réponses
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.
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.
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.
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.
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
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