Un p'tit problème sue access

Un p'tit problème sue access - VB/VBA/VBS - Programmation

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 ?  :pt1cable:

Reply

Marsh Posté le 04-07-2005 à 17:55:18   

Reply

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.

Reply

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 ?

Reply

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.

Reply

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 ??

Reply

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.

Reply

Marsh Posté le 06-07-2005 à 11:45:34    

Ce n’est 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+

Reply

Marsh Posté le 06-07-2005 à 12:08:57    

lol
ok pas de prob!
++

Reply

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.

Reply

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 !
?????

Reply

Marsh Posté le 06-07-2005 à 14:31:51   

Reply

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 ...  

Reply

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 ...  

Reply

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 ...  

Reply

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

Reply

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 !!!

Reply

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
...
 
   

Reply

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+

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed