Aide pour formule requête

Fermé
Lucasine Messages postés 154 Date d'inscription mercredi 9 mars 2016 Statut Membre Dernière intervention 15 octobre 2022 - 24 sept. 2016 à 20:16
yg_be Messages postés 23399 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 17 décembre 2024 - 5 nov. 2016 à 22:29
Bonsoir,

J'aurai besoin de vos connaissances en access, pour une formule surement très simple qui me pose un souci.

Voila j'ai une colonne comportant un numéro nommé "SOSA", j'aimerai que figure dans une autre Colonne nommé "Degré" le degré du Sosa. Compliqué a comprendre, j'avoue !!

j'ai une Table "Génération" qui comprend 3 colonnes
1. le Degré
2.Numéro minimum
3.Numéro maximum

exemple : Degré
4 = nombre entre 8 et 15 comprit
5= nombre entre 16 et 31 comprit
6= nombre entre 32 et 63 comprit
.....
j'entre le sosa "20" J'aimerai dans la colonne Degré il me met "5"

Que je passe par une table n'est pas obligatoire, il n'a que +/- 15 degrés différent donc j'avait pensé faire une formule dans ma requête
IIF ([Sosa]>32;"6";IIF([Sosa]>16;"5";IIF.....
Mais comme vous vous douter il me met Erreur dans la colonne.

Quel serai pour vous la meilleurs façon d'avoir un bon résultat ? Passant par la table "Génération" ou il fait une recherche OU avec une formule qui pourrais être un peu longue ???

Je vous remercie d'avance pour vos lumières ;-)
A voir également:

6 réponses

Utilisateur anonyme
24 sept. 2016 à 22:30
Bonjour,

si tu peux passer via un formulaire, en vba, cela serait simple.

Mais dans ce cas, ta table "generation" sera inutile, tout sera géré via vba.

A+
0
Lucasine Messages postés 154 Date d'inscription mercredi 9 mars 2016 Statut Membre Dernière intervention 15 octobre 2022
25 sept. 2016 à 11:57
Bonjour HDU,

Je te remercie pour ta réponse, le petit souci (si je peu dire) sait que je ne connait rien en VBA
0
Utilisateur anonyme > Lucasine Messages postés 154 Date d'inscription mercredi 9 mars 2016 Statut Membre Dernière intervention 15 octobre 2022
25 sept. 2016 à 21:20
Bonjour,

peut-être que le temps est venu de t'y mettre...

Si tu veux exploiter un peu Access, tu vas devoir y passer, tôt ou tard.
0
Utilisateur anonyme
25 sept. 2016 à 21:27
Pour le cas qui te concerne, un SELECT CASE fera l'affaire.

Si tu veux + d'infos, n'hésites pas.

A+
0
Si tu veux faire ceci sans vba,

il faut le faire dans une requête, pas direct dans la table.

Là, ce que tu mets :

IIF ([Sosa]>32;"6";IIF([Sosa]>16;"5";IIF..... 


Tu as forcémént une erreur, car si SOSA = 33, il répond aux 2 premiers critères.

Il faudrait mettre :

IIF (SOSA >= 8 AND SOSA <=15;"4";IIF (SOSA >=16 AND SOSA <=31;"5";(........................

A+
--
Quand Jimmy dit What'd I say 
I love you baby 
C'est comme qui dirait 
Toute la province qui chante en anglais
0
Lucasine Messages postés 154 Date d'inscription mercredi 9 mars 2016 Statut Membre Dernière intervention 15 octobre 2022
26 sept. 2016 à 08:48
Merci HDU

Je vais voir pour me lancer dans le VBA car je voit que beaucoup passe par là pour Access, j'en avait eu un vague aperçu avec une fichier Excel, ca ne doit pas être bien compliquer vu le monde qui travail en VBA ;-). En tout cas, un grand merci pour tes conseils
0
Utilisateur anonyme
26 sept. 2016 à 21:03
Bonne initiative !

Regardes pour ton problème du coté de SELECT CASE.

a+
0
Lucasine Messages postés 154 Date d'inscription mercredi 9 mars 2016 Statut Membre Dernière intervention 15 octobre 2022
26 sept. 2016 à 21:27
Merci, je vais chercher après ca ;-) de plus la formule par requête, ma prit 10min à tapé pour me dire au final que la formule est trop complexe pour être exécuter MDR

je comprend pourquoi il existe le VBA maintenant lol
Merci pour tes précieux conseils.

A bientôt
0
Utilisateur anonyme > Lucasine Messages postés 154 Date d'inscription mercredi 9 mars 2016 Statut Membre Dernière intervention 15 octobre 2022
26 sept. 2016 à 22:48
C'est étonnant.

Tu peux copier / coller ta formule ici ?

A+
0
Utilisateur anonyme > Utilisateur anonyme
26 sept. 2016 à 22:52
J'ai en mémoire ta base concernant les locataires, si je ne me trompes pas.

C'est la même ??

Renvoies ici un lien de ta base en te servant de cjoint.com si tu veux.

A+
0
Lucasine Messages postés 154 Date d'inscription mercredi 9 mars 2016 Statut Membre Dernière intervention 15 octobre 2022
30 sept. 2016 à 11:40
Bonjour HDU, la base des locataires, je l'ai donné à ma collègue, pour qu'elle la continue car je ne m'en sortais pas et qu'elle ai plus caler en access que moi, celle-ci est pour un cousin, qui fait des recherches généalogique est qui vu le nombre de personnes, aimerai une base qui l'aide a géré les recherches a effectuer.

la formule est IIF([Sosa]>="16384" ET<=[Sosa]<="32767";"15";IIF([Sosa]>="8192" ET<=[Sosa]<="16383";"14";IIF([Sosa]>="4096" ET<=[Sosa]<="8191";"13";IIF([Sosa]>="2048" ET<=[Sosa]<="4095";"12";IIF([Sosa]>="1024" ET<=[Sosa]<="2047";"11";IIF([Sosa]>="512" ET<=[Sosa]<="1023";"10";IIF([Sosa]>="256" ET<=[Sosa]<="511";"9";IIF([Sosa]>="128" ET<=[Sosa]<="255";"8";IIF([Sosa]>="64" ET<=[Sosa]<="127";"7";IIF([Sosa]>="32" ET<=[Sosa]<="63";"6";IIF([Sosa]>="16" ET<=[Sosa]<="31";"5";IIF([Sosa]>="8" ET<=[Sosa]<="15";"4";IIF([Sosa]>="4" ET<=[Sosa]<="7";"3";IIF([Sosa]>="2" ET<=[Sosa]<="3";"2";IIF([Sosa]="1";"1";"0"))))))))))))))

Comme je disait il a minimum 15 génération, donc quand une 16eme arrivera il sera embété, j'avait pensé a faire passé par une table, mais dur dur, et je ne suis pas encore au point en VBA
0
Utilisateur anonyme > Lucasine Messages postés 154 Date d'inscription mercredi 9 mars 2016 Statut Membre Dernière intervention 15 octobre 2022
30 sept. 2016 à 22:47
Re,

et cette formule te renvoie une erreur ou pas du coup ?

A+
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Utilisateur anonyme
4 oct. 2016 à 00:29
Bon, j'ai anticipé.

Voici une table, avec le formulaire, et un code SELECT CASE.

https://www.cjoint.com/c/FJdwCQsoVsi

Elle fonctionne, à priori.

Tiens moi au jus, mais le code vba est facilement compréhensible.

A+
0
Lucasine Messages postés 154 Date d'inscription mercredi 9 mars 2016 Statut Membre Dernière intervention 15 octobre 2022
4 oct. 2016 à 09:27
Ah Cool, merci HDU, ca ma l'air très simple en effet ;-) je teste ca cette après-midi et je passerai le lien Cjoint avec mon fichier des que c fait ;-)
0
Utilisateur anonyme > Lucasine Messages postés 154 Date d'inscription mercredi 9 mars 2016 Statut Membre Dernière intervention 15 octobre 2022
6 oct. 2016 à 01:02
Alors ?
0
Lucasine Messages postés 154 Date d'inscription mercredi 9 mars 2016 Statut Membre Dernière intervention 15 octobre 2022
12 oct. 2016 à 13:42
Bonjour HDU, je suis désolé, je n'ai pas encore eu beaucoup de temps pour m'y mettre à font, mais je ne manquerai pas de venir te donner le résultat
0
yg_be Messages postés 23399 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 17 décembre 2024 Ambassadeur 1 556
5 nov. 2016 à 22:29
Je suggère ceci, à utiliser comme formule dans la requête :

Int(1 + Log([Sosa] + 0.5) / Log(2))
0