Conditions dans ACCESS

Résolu/Fermé
Roms38 Messages postés 56 Date d'inscription mercredi 14 mai 2008 Statut Membre Dernière intervention 26 avril 2010 - 21 mai 2008 à 14:30
Roms38 Messages postés 56 Date d'inscription mercredi 14 mai 2008 Statut Membre Dernière intervention 26 avril 2010 - 12 juin 2008 à 15:58
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 !?
A voir également:

2 réponses

Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 1 204
21 mai 2008 à 14:48
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 mercredi 14 mai 2008 Statut Membre Dernière intervention 26 avril 2010
21 mai 2008 à 14:54
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 mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 1 204
21 mai 2008 à 15:01
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 mercredi 14 mai 2008 Statut Membre Dernière intervention 26 avril 2010
30 mai 2008 à 09:01
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 mercredi 14 mai 2008 Statut Membre Dernière intervention 26 avril 2010 > Roms38 Messages postés 56 Date d'inscription mercredi 14 mai 2008 Statut Membre Dernière intervention 26 avril 2010
2 juin 2008 à 08:42
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 mercredi 14 mai 2008 Statut Membre Dernière intervention 26 avril 2010 > Roms38 Messages postés 56 Date d'inscription mercredi 14 mai 2008 Statut Membre Dernière intervention 26 avril 2010
12 juin 2008 à 15:58
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