Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1843 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Un p'tit problème sue access

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Un p'tit problème sue access

n°1139619
ilytoine
Posté le 04-07-2005 à 17:55:18  profilanswer
 

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:

mood
Publicité
Posté le 04-07-2005 à 17:55:18  profilanswer
 

n°1140730
_alice_
Posté le 05-07-2005 à 16:51:40  profilanswer
 

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.

n°1141021
ilytoine
Posté le 05-07-2005 à 17:06:40  profilanswer
 

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 ?

n°1141779
_alice_
Posté le 06-07-2005 à 11:08:21  profilanswer
 

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.

n°1141800
ilytoine
Posté le 06-07-2005 à 11:22:55  profilanswer
 

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

n°1141824
_alice_
Posté le 06-07-2005 à 11:33:40  profilanswer
 

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.

n°1141842
ilytoine
Posté le 06-07-2005 à 11:45:34  profilanswer
 

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+

n°1141870
_alice_
Posté le 06-07-2005 à 12:08:57  profilanswer
 

lol
ok pas de prob!
++

n°1142056
lhonolulu
Posté le 06-07-2005 à 14:14:41  profilanswer
 

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.

n°1142088
ilytoine
Posté le 06-07-2005 à 14:31:51  profilanswer
 

T'ecris ça comme ça ??
 
Expr1:  [when   cha1 = 1 then 4+5]
 
si c'est oui ça ne fonctionne pas !
?????

mood
Publicité
Posté le 06-07-2005 à 14:31:51  profilanswer
 

n°1142098
lhonolulu
Posté le 06-07-2005 à 14:35:15  profilanswer
 

select champs1,
       champs2,
       case when cha1 = 1 then cha1 + chb1  
            when cha1 = 2 then cha1 - chb1  
            ...  
       end cha2
from ...  

n°1142113
lhonolulu
Posté le 06-07-2005 à 14:40:20  profilanswer
 

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

n°1142122
lhonolulu
Posté le 06-07-2005 à 14:42:30  profilanswer
 

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

n°1142134
lhonolulu
Posté le 06-07-2005 à 14:47:18  profilanswer
 

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

n°1142213
ilytoine
Posté le 06-07-2005 à 15:16:05  profilanswer
 

Il même met "incohérence de type dans un expression"
Il doit pas apprécia la syntaxe !!!

n°1142264
lhonolulu
Posté le 06-07-2005 à 15:51:56  profilanswer
 

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

n°1142287
ilytoine
Posté le 06-07-2005 à 16:04:00  profilanswer
 

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+


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Un p'tit problème sue access

 

Sujets relatifs
Problème OleDb sur Base Access[VB_Access] Probleme Verrou BD access
[access - VB] problème commandeBase de données MYSQL et client MS ACCESS : Problème avec champ Date
[ACCESS] Probleme d'impression pour un etat - résolu[Access]Problème lien hypertexte dans envoie de mail
problème VBA Access : "Procédure trop grande"Problème connexion Access->MySQL
Probleme de requete sous access svp aideProbleme Access à MySQL
Plus de sujets relatifs à : Un p'tit problème sue access


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR