Formules conditionnelles imbriquées dans état access

Résolu/Fermé
Balbutio Messages postés 3 Date d'inscription mardi 26 mai 2015 Statut Membre Dernière intervention 5 juillet 2016 - 3 juil. 2016 à 23:32
 Utilisateur anonyme - 20 juil. 2016 à 23:48
Bonjour,

Je sèche littéralement je me permets donc de faire appel à vos lumières, voici la situation. Je ne souhaite pas faire de VBA, je n'y connais pas grand chose. Je travaille donc avec le générateur d'expressions d'access.

Je souhaiterais faire une formule conditionnelles imbriquées avec plusieurs conditions dans un état. J'arrive à la faire pour une condition :

=VraiFaux(Eval([TOT-LM] Entre 50 Et 54);"4";" ")

j'obtiens le bon résultat mais je voudrais qu'il y ait plusieurs contrôle (10 au total)

par exemple si la valeur du champ [TOT-LM] entre 14 et 37 alors afficher le nombre 1
si la valeur du champ [TOT-LM] entre 38 et 42 alors afficher le nombre 2
si la valeur du champ [TOT-LM] entre 43 et 49 alors afficher le nombre 3
etc.

Est-ce possible d'avoir autant de conditions? que dois-je ajouter à ma formule pour demander que les autres conditions soit vérifiées et exécutées.

J'espère que j'ai exposé clairement mon problème.
D'avance je vous remercie de votre aide et vous adresse mes salutations les plus cordiales.




1 réponse

Utilisateur anonyme
4 juil. 2016 à 16:52
Bonjour,

si tu n'y connais pas grand chose en vba, peut-être que le moment est venu...

Sinon, je ne sais pas jusqu'à combien de "iif" access accepte les "calculs".

Donc essaies un truc du genre :
=VraiFaux(Eval([TOT-LM] Entre 14 Et 37);"1";VraiFaux(Eval([TOT-LM] Entre 38 Et 42);"2"; etc)
Mais avec 10 iff, ta formule va devenir illisible !

0
J'avais vu passer un truc il y a quelques années comme quoi excel n'accepte pas plus de 7 iif. Alors, essaies jusqu'à 6, et 7, et 8, voir si cela bloque.

Mais en vba, un select case sera bien + lisible et la maintenance éventuelle simplifiée...
0
Balbutio Messages postés 3 Date d'inscription mardi 26 mai 2015 Statut Membre Dernière intervention 5 juillet 2016
5 juil. 2016 à 21:11
Bonjour HDU,
un grand merci pour ta tentative de réponse, mais je ne saurais vraiment pas comment résoudre ce problème en VBA... il est peut être vraiment temps que je m'y mette... mais en attendant je n'ai pas résolu mon problème. Si je mets la chaîne telle que tu la proposes, je n'obtiens aucun résultat.
Merci quand même
balbutio
0
Utilisateur anonyme > Balbutio Messages postés 3 Date d'inscription mardi 26 mai 2015 Statut Membre Dernière intervention 5 juillet 2016
Modifié par HDU le 5/07/2016 à 21:20
La chaîne telle que je la propose, est loin d'être complète ! Je me suis arrêté à 2 iff.

Je pense que Access sait le faire. Pour 10, aucune idée, je passerais par du vba, au moins pour la maintenance du truc...

Envoies moi ta base si tu veux, j'essaierai les 2 solutions (en priorité avec tes iff, mais je ne suis pas certain que Access sache).

Pour m'envoyer en MP, cliques sur mon nom (hdu), et 'lui envoyer un message'.

Pour les septiques (sic), on mettra la solution trouvée ici.
0
Utilisateur anonyme > Utilisateur anonyme
20 juil. 2016 à 23:48
Bon,

solution trouvée.

Base ici : https://www.cjoint.com/c/FGuvWo3PYWi

A+
0