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

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  [ACCESS] Effectuer un calcul dans un champ texte ???

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[ACCESS] Effectuer un calcul dans un champ texte ???

n°168061
grosset
Posté le 28-06-2002 à 15:04:48  profilanswer
 

Salut !
 
je voudrais effectuer un calcul dans un champ texte pour ne pas avoir à me taper le calcul à la main puis le saisir dans mon champ...
 
je voudrais donc taper un truc du genre = 2555 + 366 et quand je fais entrer, bim ça me fait le calcul et ça me l'enregistre dans ma base...
 
la fonction Eval permet calculer la valeur d'une expression contenue dans une chaine... c'est une piste mais après comment je fais ?
 
pour ceux qui savent pas où qui n'ont rien compris à ce que je dis, ben bon week end quand même !  :)

mood
Publicité
Posté le 28-06-2002 à 15:04:48  profilanswer
 

n°168065
kik
Aide toi toi même !!!
Posté le 28-06-2002 à 15:14:52  profilanswer
 

salut tu ne pourrras pas ... il faut que tu convertisses ta chaine en numérique via une fonction en vb du genre  
Cint(tachaine)
Après tu pourras alors faire des calculs....
:jap:

n°168069
vttman2
Je suis Open ...
Posté le 28-06-2002 à 15:16:37  profilanswer
 

Ya une époque, j'ai fait un truc comme ça en Access,
en utilisant la calculette Windows  
et en lui injectant la chaine de caractères tapées dans
un champ texte  
Dim RetVal
' Exécute la calculatrice.
RetVal = Shell("C:\WINDOWS\CALC.EXE", 1)

n°168083
daritz
naheulbeuk Poaweur...
Posté le 28-06-2002 à 15:31:47  profilanswer
 

C'est faisable mais c'est vraiement tordu. Il faut passer par VB, mais j'imagine que tu as prévu le coup ?
 
En VB, donc, tu utilise instr pour localiser le "+" et tu prends tous les caracteres avant que tu stoques dans une variable et tous les caractéres aprés que tu stoque aussi dans une autre variable. Tu convertis au préalable ta chaine via Cint avant de stoquer. il ne te reste plus qu'à gérer l'évènement de la touche ENTRER .
 :hello:

n°168111
grosset
Posté le 28-06-2002 à 16:00:35  profilanswer
 

merci pour votre aide !
 
vttman2 -> j'avais pensé à ça mais le problème c'est que je ne fais pas à chaque fois des calculs (la plupart du temps j'ai directement mes valeurs) donc ce n'est pas nécessaire d'ouvrir la calculette pour taper une valeur.
 
kik -> en fait je ne vois pas trop comment faire car dès que je quitte le champ ou que je tape sur entrer, il me dit valeur incorrecte pour ce champ... avant même d'appeler ma fonction j'ai l'impression...
 

n°168149
smaragdus
whores, drugs & J.S. Bach
Posté le 28-06-2002 à 16:48:06  profilanswer
 

grosset a écrit a écrit :

Salut !
 
je voudrais effectuer un calcul dans un champ texte pour ne pas avoir à me taper le calcul à la main puis le saisir dans mon champ...
 
je voudrais donc taper un truc du genre = 2555 + 366 et quand je fais entrer, bim ça me fait le calcul et ça me l'enregistre dans ma base...
 
la fonction Eval permet calculer la valeur d'une expression contenue dans une chaine... c'est une piste mais après comment je fais ?
 
pour ceux qui savent pas où qui n'ont rien compris à ce que je dis, ben bon week end quand même !  :)




 
Tu tapes tous tes 2 chiffres dans 2 champs et tu fais un UPDATE d'un troisieme champ. Tu drop ensuite les 2 colonnes.

n°168151
grosset
Posté le 28-06-2002 à 16:52:55  profilanswer
 

salut dariz et merci du coup de main !
 
je crois que la fonction Eval calcule directement la valeur d'une expression sous forme de chaine et renvoie un entier.
 
je fais appel à une macro sur l'événement sortie :
 
je fais un DéfinirValeur qui est sensé faire ça : [mon_champ] = Eval[mon_champ]
 
mais ça ne fonctionne pas, il me dit "valeur incorrecte pour ce champ"...

n°168154
grosset
Posté le 28-06-2002 à 16:55:48  profilanswer
 

salut Smaragdus !
 
je ne peu pas faire ça c'est dans un tableau avec plein de colonne et ça surchargerait trop le truc
 
en plus, le mec doit pouvoir faire plusiseurs sortes d'opérations avec plusieurs opérandes
 
merci

n°168157
grosset
Posté le 28-06-2002 à 17:01:34  profilanswer
 

j'ai encadré mon DéfinirValeur par 2 boites de dialogues et le message d'erreur "valeur incorrecte pour ce champ" s'affiche avant l'ouverture de la premiere... il vérifie le type de donnée saisie avant de poursuivre... et forcément comme c'est du texte au lieu d'une valeur numérique ça lui plait pas

n°168362
latruffe
Bdovore
Posté le 29-06-2002 à 11:50:05  profilanswer
 

Ben moi je ferais simplement ça :
 
tu as une boite de saisie qui s'appelle texte0
 
tu assignes un macro qui s'exécute quand on quitte le champs :
 
Private Sub Texte0_Exit(Cancel As Integer)
Me.Texte0 = Eval(Me.Texte0)
End Sub
 
comme ça ta formule (1+1) est remplacée par 2.

mood
Publicité
Posté le 29-06-2002 à 11:50:05  profilanswer
 

n°168371
grosset
Posté le 29-06-2002 à 12:21:06  profilanswer
 

j'ai touvé une solution :
 
je me crée un champ texte par dessus le champ numérique, je fais le calcul (avec eval) et l'affichage du résultat dans ce champ texte (en même temps je met à jour le champ numérique).
 
Mais le problème est que quand je met à jour (quand je dis que le champs numérique prend pour valeur celle du champ texte que je converti), il modifie toute la colonne ! et non pas juste l'enregistrement que je veux...
 
mais bon c'est pas méchant faut qe je vois...
 
merci de votre aide !!!


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  [ACCESS] Effectuer un calcul dans un champ texte ???

 

Sujets relatifs
pb conversion separateur decimal ds mes tables access ac appli delphiComment faire avec Access pour un tri selectif?
bug Access Formulaire?texte vertical dans un tableau
PB LEFT JOIN sous ACCESS[Javascript] Ajouter une valeur à un champ sans supprimer l'existant !
Acceder a une BD Access en C (pas C++)[access] importation de tables DB3, fichier d index introuvable
[Access] fonction EvalExport sous Access
Plus de sujets relatifs à : [ACCESS] Effectuer un calcul dans un champ texte ???


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