Valeurs interdites dans formulaire ACCESS

Roms38 -  
Roms38 Messages postés 58 Statut Membre -
Bonjour,

J'ai une requete qui prend une valeur d'une table, la divise par 12, l'arrondi à l'entier supérieur et la remultiplie par 12. Cette derniere valeur est alors affichée dans le formulaire.
Par exemple pour la valeur de départ de 23:
23/12 = 1,9166666667 ---> 2*12 = 24
24 est alors affiché dans le formulaire.

Cependant des valeurs sont interdites dans le formulaire (60,84,96,...)
Dans ce cas là, 60 doit afficher 72 et 84 doit afficher 108.

J'aimerais créer une nouvelle requête qui "teste" et "choisie" les valeurs qui sont bonnes.

Pourriez vous m'aider svp ... ?
Merci

3 réponses

HostOfSeraphim Messages postés 7340 Statut Contributeur 1 608
 
Avec une structure conditionnelle, pour tester ?

if v=60 then
...
else
a=a/12
...
end if

0
Roms38
 
Euh .... ouais ...
Tu pourrais écrire un petit peu plus stp, pas tout compris ...
0
HostOfSeraphim Messages postés 7340 Statut Contributeur 1 608 > Roms38
 
Ben c'était le principe global, c'est pour ça que je n'ai pas détaillé : en gros, il s'agit de tester la valeur.

Je vais te le faire en français, ça sera têt plus simple...

On met dans la variable A la valeur de la table en question.

Si A = 60 ou A = 84 ou A = 96..., alors :

Prendre une nouvelle valeur

Sinon

A = A / 12 (on divise A par 12 et on la met dans la même variable)
A = arrondi(A) (on arrondit A et on la met dans la même variable
A = A * 12 (on multiplie A par 12 et on la met dans la même variable)
Afficher(A) (on affiche A)

Fin

A toi de voir pour "Prendre une nouvelle valeur", ça dépend comment tu la récupères en amont de ce code.

0
Roms38 > HostOfSeraphim Messages postés 7340 Statut Contributeur
 
Ok je te remercie, je vais tester tout ça et je te tiens au courant.
0
Roms38
 
Bon ça marche pas, j'ai du faire de la mer...

Je te fais une petite copie de ce que j'ai tapé, tu me dis si y'a des trucs que tu ne comprends pas :

Select Case (Div_12.Resul)

Case 5:
Div_12.Resul+1

Case 7:
Div_12.Resul+1

Case 8:
Div_12.Resul+1

Case 10:
Div_12.Resul+1

Case 11:
Div_12.Resul+1

Case Else

Div_12.Resul*12 AS Result

End Select

FROM Div_12;

J'ai essayé aussi ça mais ça ne marche pas non plus, lol :

SELECT Capacite_de_la_fibre.Result, if ( Capacite_de_la_fibre.Result=60 or Capacite_de_la_fibre.Result=84 or Capacite_de_la_fibre.Result=96 or Capacite_de_la_fibre.Result=120 or Capacite_de_la_fibre.Result=132) then Capacite_de_la_fibre.Result= Capacite_de_la_fibre.Result+1
Else
(Capacite_de_la_fibre.Result)=(Capacite_de_la_fibre.Result)/12
(Capacite_de_la_fibre.Result)=arrondi(Capacite_de_la_fibre.Result)
(Capacite_de_la_fibre.Result)=(Capacite_de_la_fibre.Result)*12
endif
FROM Capacite_de_la_fibre;
0
Roms38
 
Voilà ma dernière création qui ne marche pas non plus (Erreur réservée (-1001);aucun message n'est assigné à cette erreur) :

Select Case (Div_12.Resul)

Case (5,8,11):
Div_12.Resul=(Div_12.Resul)+1

Case (7,10):
Div_12.Resul=(Div_12.Resul)+2

Case default

(Div_12.Resul)*12

End select

Qu'en pensez vous !??
0
HostOfSeraphim Messages postés 7340 Statut Contributeur 1 608
 
J'ai pas trop le temps de vérifier, mais il ne faut pas un équivalent de "break" après chaque groupe de commande dans un "case" ?
0
Roms38 Messages postés 58 Statut Membre > HostOfSeraphim Messages postés 7340 Statut Contributeur
 
Je relance ma discussion vu qu'elle s'est perdue parmi les autres.
Ma requête me renvoie des valeurs qui sont des multiples de 12, mais j'aimerais interdire des valeurs telles que 60, 84, 96, 120 et 132.
J'ai tapé ça mais ça ne fonctionne toujours pas :

SELECT Div_12.Resul*12 AS Result, IIf([Result]=60 Or [Result]=84 Or [Result]=96 Or [Result]=120 Or [Result]=132,[Result],[Result]+12) AS Resultat
FROM Div_12;

Quelqu'un peut me venir en aide !?
Merci d'avance
0
Roms38 Messages postés 58 Statut Membre > Roms38 Messages postés 58 Statut Membre
 
Personne ne peut me répondre ... ? :-(
0