Addition dans un TextBox

BisounoursJos Messages postés 31 Date d'inscription jeudi 8 janvier 2004 Statut Membre Dernière intervention 29 octobre 2008 - 6 févr. 2004 à 09:39
BisounoursJos Messages postés 31 Date d'inscription jeudi 8 janvier 2004 Statut Membre Dernière intervention 29 octobre 2008 - 9 févr. 2004 à 10:21
Bonjour,
Je ne sais pas comment additionner 2 valeurs... =P Je m'explique :
J'ai dans un formulaire 'Mouvement' un DBCombo qui affiche les produits concernés par ce mouvement, à partir du choix du produit concerné, se rempli un TextBox (txtMvt(4)) de 'Stock à cet instant'. Par exemple, pour le produit 1 j'en aurais 20 stock.
Maintenant j'ai un autre TextBox (txtMvt(9)) que je rempli manuellement et qui est la quantité en mouvement de ce produit. Comment faire pour que au moment où je perds le focus de txtMvt(4) le stock à cet instant se mette à jour?
Voici ce que j'ai déjà essayé de faire dans l'événement LostFocus de la procédure txtMvt :

txtMvt(4).Text = txtMvt(4).Text + txtMvt(9).Text

Mais apparemment ce n'est pas comme ca qu'il faut faire étant donné que ca ne me met pas à jour txtMvt(4).
Si quelqu'un a une réponse mm partielle je le remercie d'avance.
Bonne prog à tous =)

-Jos-

17 réponses

plaineR Messages postés 237 Date d'inscription mercredi 26 novembre 2003 Statut Membre Dernière intervention 6 décembre 2005 4
6 févr. 2004 à 10:21
As-tu essayer sur l'évènement Validate ?
0
BisounoursJos Messages postés 31 Date d'inscription jeudi 8 janvier 2004 Statut Membre Dernière intervention 29 octobre 2008
6 févr. 2004 à 10:24
Non, je vais tenter ca de suite

-Jos-
0
BisounoursJos Messages postés 31 Date d'inscription jeudi 8 janvier 2004 Statut Membre Dernière intervention 29 octobre 2008
6 févr. 2004 à 10:28
Désolé je n'ai pas d'événement Validate pour un TextBox =/
(Je travaille avec VB5 je ne sais pas si ca a un rapport...)

-Jos-
0
plaineR Messages postés 237 Date d'inscription mercredi 26 novembre 2003 Statut Membre Dernière intervention 6 décembre 2005 4
6 févr. 2004 à 10:43
Sans doute car il existe en VB6...

Mais sur l'évenement lostfocus cela doit fonctionner également :

voilà ce que je te conseille :

if index = 9 and isnumeric (txtMvt(9).Text) then
txtMvt(4).Text = cint(txtMvt(4).Text) + cint(txtMvt(9).Text)
end if

nb: si tu as des décimales c'est pas cint mais cdbl par exemple qu'il faut faire.

Il n'y a pas de raison que cela ne fonctionne pas.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
BisounoursJos Messages postés 31 Date d'inscription jeudi 8 janvier 2004 Statut Membre Dernière intervention 29 octobre 2008
6 févr. 2004 à 10:48
Désolé de te contredire... ca ne fonctionne pas, la valeur du stock ne change pas....

-Jos-
0
plaineR Messages postés 237 Date d'inscription mercredi 26 novembre 2003 Statut Membre Dernière intervention 6 décembre 2005 4
6 févr. 2004 à 11:09
Oui excuse moi j'ai fait une erreur de lecture.
Tu veux que cela se mette à jour quand tu perds le focus sur txtMvt(4), remplace dans le code que je t'ai donné précédemment index 9 par index 4 et cela devrait fonctionner. Sinon mets moi le code que tu as mis dans lostfocus, car y a pas de raison que cela be marche pas...
0
BisounoursJos Messages postés 31 Date d'inscription jeudi 8 janvier 2004 Statut Membre Dernière intervention 29 octobre 2008
6 févr. 2004 à 11:17
Si c'etait bien juste ton code au dessus.
Voici ce que j'avais mis comme code :

Private Sub txtMvt_LostFocus(Index As Integer)

Select Case Index

..............

Case 9
txtmvt(4).Text = Val(txtmvt(4).Text) + Val(txtmvt(9).Text)

End Select
End Sub
-Jos-
0
cs_Pitivier62 Messages postés 11 Date d'inscription lundi 28 octobre 2002 Statut Membre Dernière intervention 6 février 2004
6 févr. 2004 à 11:27
Essaye de faire un txtmvt(4).refresh apres l'operation

Pitivier
0
BisounoursJos Messages postés 31 Date d'inscription jeudi 8 janvier 2004 Statut Membre Dernière intervention 29 octobre 2008
6 févr. 2004 à 11:31
Déja fait... mais aucune incidence.
Merci qd mm

-Jos-
0
plaineR Messages postés 237 Date d'inscription mercredi 26 novembre 2003 Statut Membre Dernière intervention 6 décembre 2005 4
6 févr. 2004 à 11:44
Attends je pige plus :

Tu veux que la valeur change à quel moment :
- quand tu quittes txtmvt(4).Text ?
- ou quand tu quittes txtmvt(9).Text ?

Parce que dans ton premier message tu parlais du moment ou tu perdais le focus de txtmvt(4)

Dans ce cas c'est bien case 4 (et non case 9).

Sans ca je ne comprends pas car je viens de faire le test avec le code que tu m'as filé et ça marche...
0
BisounoursJos Messages postés 31 Date d'inscription jeudi 8 janvier 2004 Statut Membre Dernière intervention 29 octobre 2008
6 févr. 2004 à 11:49
Oops oui désolé alors je me suis trompé dans mon premier message.... c'est bien qd je perds le focus de txtMvt(9) =/

Mais si ca marche chez toi..... pourquoi ce n'est pas le cas chez moi?????? ='(

-Jos-
0
plaineR Messages postés 237 Date d'inscription mercredi 26 novembre 2003 Statut Membre Dernière intervention 6 décembre 2005 4
6 févr. 2004 à 14:37
Est-ce qu'il rentre dans ton lostfocus ?

A la fin de ton lostfocus (apres le end select), t'as qu'a mettre :
msgbox txtMvt(9).text & "+" & txtMvt(4).text & "=" & Val(txtmvt(4).Text) + Val(txtmvt(9).Text)

pour voir ce qu'il affiche, peut-être cela va-t-il nous aider à mieux comprendre pourquoi cela marche chez moi et pas chez toi...
0
BisounoursJos Messages postés 31 Date d'inscription jeudi 8 janvier 2004 Statut Membre Dernière intervention 29 octobre 2008
6 févr. 2004 à 15:00
Il me met bien une addition juste et en rapport avec les nombres indiqués dans les TextBox.

-Jos-
0
plaineR Messages postés 237 Date d'inscription mercredi 26 novembre 2003 Statut Membre Dernière intervention 6 décembre 2005 4
6 févr. 2004 à 16:41
Conclusion :
1. Il rentre dans le lostfocus
2. Il est capable de faire l'addition
3. Il ne t'a pas changé la valeur de txtMvt(4).text

Essaye de faire ça maintenant :
Case 9
msgbox txtMvt(4).text
txtMvt(4).Text = Val(txtMvt(4).Text) + Val(txtMvt(9).Text)
msgbox txtMvt(4).text
end select

S'il ne t'affiche rien, c'est qu'il ne rentre pas dans Case 9, sinon a tout hasard essaie de passer l'addition par une variable de type integer par exemple et de réaffecter la valeur de la variable dans la textBox.
0
BisounoursJos Messages postés 31 Date d'inscription jeudi 8 janvier 2004 Statut Membre Dernière intervention 29 octobre 2008
9 févr. 2004 à 08:18
Bonjour, merci pour cette aide.
Les 2 msgbox m'indiquent la mm valeur, c'est a dire celle qui est dans le txtMvt(4).
Et en ce qui concerne la variable intermédiaire c'est une solution à laquelle j'avais deja pensée mais qui s'est avérée inutile... =/

-Jos-
0
plaineR Messages postés 237 Date d'inscription mercredi 26 novembre 2003 Statut Membre Dernière intervention 6 décembre 2005 4
9 févr. 2004 à 09:28
C'est à ne rien y comprendre!!!!

Ne fais-tu pas quelque chose avant (ou après) bloquerai cette mise a à jour ?

essaie pour voir dans ton lostfocus : (à la place de text(4).text = ...)

var1 = Val(txtMvt(4).Text) + Val(txtMvt(9).Text)
msgbox var1
0
BisounoursJos Messages postés 31 Date d'inscription jeudi 8 janvier 2004 Statut Membre Dernière intervention 29 octobre 2008
9 févr. 2004 à 10:21
Non, j'ai essayé qqch:
j'ai créer un nouveau recorset dans le lostfocus

Dim w_Rs As Recordset
Set w_Rs = wg_myDB.OpenRecordset("d_Produit", _
dbOpenTable)

w_Rs.Index = "PrimaryKey"
w_Rs.Seek "=", CInt(txtmvt(12).Text)
w_Rs.Edit
w_Rs!p_qte_stock = 500000
w_Rs.Update
w_Rs.Close

Et là la mise à kour se fait...
Apparemment qd j'affecte une valeur en dur la base se modifie, il doit y avoir un probleme avec la fonction Val....

-Jos-
0
Rejoignez-nous