Conditions dans ACCESS

Résolu
Roms38 Messages postés 56 Date d'inscription   Statut Membre Dernière intervention   -  
Roms38 Messages postés 56 Date d'inscription   Statut Membre Dernière intervention   -
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 !?

2 réponses

Polux31 Messages postés 6917 Date d'inscription   Statut Membre Dernière intervention   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
Roms38 Messages postés 56 Date d'inscription   Statut Membre Dernière intervention  
 
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
Polux31 Messages postés 6917 Date d'inscription   Statut Membre Dernière intervention   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
Roms38 Messages postés 56 Date d'inscription   Statut Membre Dernière intervention  
 
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
Roms38 Messages postés 56 Date d'inscription   Statut Membre Dernière intervention   > Roms38 Messages postés 56 Date d'inscription   Statut Membre Dernière intervention  
 
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
Roms38 Messages postés 56 Date d'inscription   Statut Membre Dernière intervention   > Roms38 Messages postés 56 Date d'inscription   Statut Membre Dernière intervention  
 
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