Valeurs interdites dans formulaire ACCESS

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
Configuration: Windows XP
Internet Explorer 6.0

3 réponses

  • Votes
  • Date
  • Date décroissante
  1. Contributeur
    Avec une structure conditionnelle, pour tester ?

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

    1. Euh .... ouais ...
      Tu pourrais écrire un petit peu plus stp, pas tout compris ...
    2. Contributeur
      @Roms38Ben 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.

  2. 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;
    1. 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 !??
      1. Contributeur
        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" ?
      2. @HostOfSeraphimJe 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
      3. @Roms38Personne ne peut me répondre ... ? :-(