Un p'tit problème sue access - VB/VBA/VBS - Programmation
Marsh Posté le 05-07-2005 à 16:51:40
Tu peux créer une requête en mettant dans le champ : [chA1]+[chB1]
Ensuite, tu verras automatiquement apparaitre exp1:[chA1]+[chB1]. Remplace "exp1" par le nom que tu veux donner à ton champ.
Ensuite tu fais ton formulaire à partir de la requête et ça devrai fonctionner.
Marsh Posté le 05-07-2005 à 17:06:40
Merci Alice
C'est vrai que vu comme ça c'est plutôt simple mais j'aimerais que ce calcul se fasse sous une condition (la valeure d'une autre cellule) et n'étant pas expert, je ne pense pas pouvoir faire ça avec une simple requête ??
Non ?
Marsh Posté le 06-07-2005 à 11:08:21
Ca dépend de ta condition. (si elle est simple ou compliquée!!)
par exemple, si tu veux faire le calcul si chA1>1, tu le spécifie dans "Critères" (dans la même colonne où tu as fait le champ calcul).
Si tu n'arrives pas, le mieux c'est d'expliquer clairement quelle condition tu veux utiliser.
Marsh Posté le 06-07-2005 à 11:22:55
Je reprend mon expliquation avec un peu plus de concret.
Ma bdd possède 3 table (tblA,tblB,tblC)
-Dans la « tblA » 2 champs nommé "chA1" , "chA2"
-Dans la « tblB » un champ nommé "chB1"
-Dans la « tblB » un champ nommé "chC1"
si "chA1"=1 alors "ChA2"="chC1"+"chB1"
Si "chA1"=2 alors "ChA2"="chC1"-"chB1"
Si "chA1"=3 alors "ChA2"=("chC1"+"chB1" )*2
etc.....
Tu vois ??
Marsh Posté le 06-07-2005 à 11:33:40
oui je vois, mais je ne suis pas assez douée sur ACCESS pour savoir le faire.
Si tu sais programmer en VB, essaye de faire une macro. Sinon, le mieux serait peut être d'utiliser EXCEL (mais ça dépend ce que tu veux faire par la suite...)
Désolée de ne pas pouvoir mieux t'aider.
Marsh Posté le 06-07-2005 à 11:45:34
Ce nest pas grave !! Merci quand même.
Et si je passe sur Paname bientôt je te promets de te payer un café, pour te remercier d'être la seule personne sur ce site à s'être intéressé à mon problème
Merci a+
Marsh Posté le 06-07-2005 à 14:14:41
en gardant l'idée d'alice :
dans une requête tu peux faire un case when
case when cha1 = 1 then cha1 + chb1
when cha1 = 2 then cha1 - chb1
...
end cha2
de méoire la structure du case when, c'est comme ca.
Marsh Posté le 06-07-2005 à 14:31:51
T'ecris ça comme ça ??
Expr1: [when cha1 = 1 then 4+5]
si c'est oui ça ne fonctionne pas !
?????
Marsh Posté le 06-07-2005 à 14:35:15
select champs1,
champs2,
case when cha1 = 1 then cha1 + chb1
when cha1 = 2 then cha1 - chb1
...
end cha2
from ...
Marsh Posté le 06-07-2005 à 14:40:20
ou alors esseyes : (c'est peut plus ca)
select champs1,
champs2,
case cha2 when cha1 = 1 then cha1 + chb1
when cha1 = 2 then cha1 - chb1
...
end cha2
from ...
Marsh Posté le 06-07-2005 à 14:42:30
excuse j'ai fait un mauvais copier-coller...
ou alors esseyes : (c'est peut etre plus ca)
select champs1,
champs2,
case cha2 when 1 then cha1 + chb1
when 2 then cha1 - chb1
end cha2
from ...
Marsh Posté le 06-07-2005 à 14:47:18
et avec tes données ca ferai :
select champs1,
champs2,
case cha1 when 1 then cha1 + chb1
when 2 then cha1 - chb1
end (peut etre as ) cha2
from ...
dsl de mettre autant embrouiller mais je ne peux pas le tester, j'ai pas de bdd sous la main
Marsh Posté le 06-07-2005 à 15:16:05
Il même met "incohérence de type dans un expression"
Il doit pas apprécia la syntaxe !!!
Marsh Posté le 06-07-2005 à 15:51:56
il ne te reste plus qu'a faire ca a la méthode longue...
select champs1,
champs2,
cha1 + chb1 cha2
from ...
where cha1 = 1
union all
select champs1,
champs2,
cha1 - chb1 cha2
from ...
where cha1 = 2
...
Marsh Posté le 06-07-2005 à 16:04:00
Merci quand même mais cette méthode est trop limité surtout que j'ai plusieurs cellule à faire comme ça !!!
Bonjour la galère !!!
J'ai bien assayé avec le macro d'access mais dans le ch. de l'expression on a une limite de caractère, si non c'était bon, fait ch....
C'est pas ma journée de tout façon, dès ce matin je me suis fait flashé...
bon merci a tous a+
Marsh Posté le 04-07-2005 à 17:55:18
Ma bdd possède 3 table (tblA,tblB,tblC)
-Dans la « tblA » un champ nommé « chA1 »
-Dans la « tblB » un champ nommé « chB1 »
-Dans la « tblB » un champ nommé « chC1 »
Je faut que ChA1+chB1 definisse la valeur de chC1 sur mon formulaire.
Qqn à 1 soluce ?