calcul dans un champ formulaire et resultat dans champ suivant

Le
jean
Bonjour,
désolé, j'ai déjà vu la réponse à cette question quelque part, mais je
ne la retrouve pas dans les archives.
Mon problème : j'ai une table, avec deux champs : "texte1" et "montant1".
Dans le formulaire basé sur cette table, je saisis du texte dans
"texte1" et la valeur dans "montant1". Parfois, je souhaite saisir : "+1
+6 -2 " dans "texte1" et lorsque je valide, je veux passer au champ
"montant1" qui m'affichera le résultat "+ 5". Le champ "montant1" doit
pouvoir être modifié.

Merci d'avance si vous pouvez me dépanner

JP
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
jean
Le #6359861
Bonjour,
J'ai trouvé quelque chose, mais ça ne marche pas vraiment comme je le
souhaite :
Dans la zone "texte1", j'ai ajouté sur l'évènement "perte focus" :

Private Sub texte1_LostFocus()
Me.montant1 = Eval(Me.texte1)
End Sub

si je saisis "10+3" dans texte1, j'obtiens "13" dans montant1, OK. Je
valide montant1 par "entrée" (je peux le modifier si je veux), je passe
à l'enregistrement suivant, toujours OK.
Par contre, là, si je veux retourner en arrière dans "montant1" de
l'enregistrement précédent, j'obtiens un message d'erreur :

Erreur d'exécution "94":
Utilisation incorrecte de Null

Merci d'avance pour votre réponse.


JP
Fabien
Le #6359841
Bonjour,
J'ai trouvé quelque chose, mais ça ne marche pas vraiment comme je le
souhaite :
Dans la zone "texte1", j'ai ajouté sur l'évènement "perte focus" :

Private Sub texte1_LostFocus()
Me.montant1 = Eval(Me.texte1)
End Sub

si je saisis "10+3" dans texte1, j'obtiens "13" dans montant1, OK. Je
valide montant1 par "entrée" (je peux le modifier si je veux), je passe
à l'enregistrement suivant, toujours OK.
Par contre, là, si je veux retourner en arrière dans "montant1" de
l'enregistrement précédent, j'obtiens un message d'erreur :

Erreur d'exécution "94":
Utilisation incorrecte de Null

Merci d'avance pour votre réponse.


JP
Bonjour,

Avec un petit eval(nz(me.texte1,0)) ça devrait passer :-)
@+

jean
Le #6359831
Avec un petit eval(nz(me.texte1,0)) ça devrait passer :-)


merci pour la réponse rapide. En effet, ça marche, mais si je mets du
texte dans texte1, j'ai l'erreur suivante :

erreur d'exécution 2482 :
Impossible pour Access de trouver le nom 'xxx' entré dans l'expression.

Une idée ?

Merci d'avance

JP

Fabien
Le #6359591

Avec un petit eval(nz(me.texte1,0)) ça devrait passer :-)


merci pour la réponse rapide. En effet, ça marche, mais si je mets du
texte dans texte1, j'ai l'erreur suivante :

erreur d'exécution 2482 :
Impossible pour Access de trouver le nom 'xxx' entré dans l'expression.

Une idée ?

Merci d'avance

JP
Salut,

Quand tu dis du texte c'est .... du texte, genre 'toto est parti a la
plage' ?
ou une expression mathématique genre '5+2' ?
Si c'est la premiére option alors je ne vois pas comment contourner le
probléme autrement qu'en testant ton expression avant de la soumettre a
la fonction eval().


jean
Le #6359581
Bonjour,

Avec un petit eval(nz(me.texte1,0)) ça devrait passer :-)



ça marche, mais si je mets du
texte dans texte1, j'ai l'erreur suivante :

erreur d'exécution 2482 :
Impossible pour Access de trouver le nom 'xxx' entré dans l'expression.


Quand tu dis du texte c'est .... du texte, genre 'toto est parti a la

plage' ?
ou une expression mathématique genre '5+2' ?
Si c'est la premiére option alors je ne vois pas comment contourner le
probléme autrement qu'en testant ton expression avant de la soumettre a
la fonction eval().


En effet, c'est du texte pur (désignation d'une vente). J'ai donc résolu
le problème avec un test un peu brutal, mais ça marche parfaitement
dans tous les sens.

Private Sub texte1_AfterUpdate()
On Error GoTo fin
Me.montant = Eval(Nz(Me.Texte1, 0))
fin:
End Sub

Merci beaucoup pour ton aide.

JP




Publicité
Poster une réponse
Anonyme