Conditions dans ACCESS

Résolu
Bonjour,
j'ai une requête qui m'affiche les multiples de 12. Seulement je dois interdire l'affichage de certaines valeurs telles que 60, 84, 96 et 132.
Si j'obtiens 60, ça doit m'afficher 72,
si j'obtiens 84, ça doit m'afficher 108,
si j'obtiens 96, ça doit m'afficher 108,
si j'obtiens 132, ça doit m'afficher 144.

Pourriez vous m'aider !?
Configuration: Windows XP
Internet Explorer 6.0

2 réponses

  • Votes
  • Date
  • Date décroissante
  1. Bonjour,

    Fait une fonction avec un select case et tu passes en paramètre la valeur lu dans ta requête:

    Function return(Byval str As Integer) As Integer
    Select Case str
      Case 60
         return = 72
         Exit Function
      Case 84
         return = 108
         Exit Function
    '..... etc
    End Select
    return = str
    End Function


    ;o)

    polux
    1. Tout d'abord je te remercie d'avoir pris la peine de me répondre.
      Pourrais tu m'expliquer un peu ce passage : "Byval str As Integer" ?
  2. re,

    "str" c'est la valeur à tester. Byval veut dire que tu passes la valeur de ta variable et Integer est le type de la variable (ici un entier).

    Pour utiliser cette fonction, il faut récupérer le résultat de ta requête dans un recordset. Ensuite il faut faire une boucle pour lire les données de ton recordset, récupérer la valeur du champs à tester dans une variable et envoyer cette variable à la fonction.

    ;o)

    polux
    1. Bonjour,
      j'ai bien tout lu ce que tu avais écrit, j'ai essayé mais je n'y arrive toujours pas ...
      Comment je fais pour "récupérer le résultat de ta requête dans un recordset" ?
      Merci
    2. @Roms38Bonjour,
      je n'ai toujours pas réussi à faire ma requête.
      J'ai essayé avec des IIf de la manière suivante :

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

      Mais ça ne marche pas ...
      Comment je peux faire svp ?
      Merci
    3. @Roms38C'est bon :

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