Conditions dans ACCESS

Résolu
Roms38 Messages postés 58 Statut Membre -  
Roms38 Messages postés 58 Statut Membre -
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

  1. Polux31 Messages postés 7219 Statut Membre 1 204
     
    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
    0
    1. Roms38 Messages postés 58 Statut Membre
       
      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" ?
      0
  2. Polux31 Messages postés 7219 Statut Membre 1 204
     
    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
    0
    1. Roms38 Messages postés 58 Statut Membre
       
      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
      0
      1. Roms38 Messages postés 58 Statut Membre > Roms38 Messages postés 58 Statut Membre
         
        Bonjour,
        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
        0
      2. Roms38 Messages postés 58 Statut Membre > Roms38 Messages postés 58 Statut Membre
         
        C'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;
        0