Comment régler ce code

cs_zidane22 Messages postés 67 Date d'inscription jeudi 1 juillet 2010 Statut Membre Dernière intervention 13 octobre 2010 - 10 juil. 2010 à 02:35
cs_ShayW Messages postés 3253 Date d'inscription jeudi 26 novembre 2009 Statut Membre Dernière intervention 3 décembre 2019 - 13 juil. 2010 à 00:43
Bonjour à tous,
je voudrais calculer la recette journalière et globale.
Pour cela j'ai mis trois textboxes.
Text1 pour fair entrer les données. (valeurs)
Text2 pour calculer le totale des valeurs de text1
text3 pour recevoir les valeurs de text2.
Je me sert de ce code qui n'a pas donné des resultats éxactes.
 Private Sub Text1_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then
Text2.Text = Val(text1.Text)+ Val(Text2.Text)
Text3.Text = Val(text2.Text)+ Val(Text3.Text)
End If
End Sub

Je vous serais trés reconnaissant si vous me proccurez avec un code fiabe.
merci

5 réponses

Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
10 juil. 2010 à 03:52
renommes tes controles, donnes leur un nom plus parlant

tel que tu es partis, tu va surement cloner ce code pour Text2 et Text3... pas terrible

pour ton souci... je pense que les inexactitudes viennent si tu commence a entrer des valeurs decimales, non ?

Renfield - Admin CodeS-SourceS - MVP Visual Basic & Spécialiste des RegExp
0
cs_zidane22 Messages postés 67 Date d'inscription jeudi 1 juillet 2010 Statut Membre Dernière intervention 13 octobre 2010
10 juil. 2010 à 09:28
Bonjour Renfield
Les resultats de Text3.Text sont toujours inéxacts quelque soient les valeurs.
merci
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
10 juil. 2010 à 10:47
inexactes en quoi ?
que cherches tu a faire ?


Renfield - Admin CodeS-SourceS - MVP Visual Basic & Spécialiste des RegExp
0
cs_zidane22 Messages postés 67 Date d'inscription jeudi 1 juillet 2010 Statut Membre Dernière intervention 13 octobre 2010
10 juil. 2010 à 13:56
Comme j'ai essayer d'expliquer.
j'ai trois champs de text
Dans text1 je rentre respectivement (une valeur aprés l'autre )des valeurs
Dans text2, jevoulais claculer les sommes de valeurs que je rentre dans text1.
Si par example je saisie dans text 1, le chiffre '5' puis le chiffre'4', dans le champs text 2 je dois avoir la valeur '9' qui est le resultat de 5 + 4.
Donc text2 représente la totalité du recette du jour.
Tout ça est parrait facile.
Pour Text3 je voudrais qu'il reçoit et totalise les valeurs de text2 tout en gardant ses valeurs tout le temps.
C-t-d Le lendemain, les valeurs de text2 seront éffacées pour totaliser une nouvelle recette du nouveau jour mais les valeurs de Text3 deveront toujours rester parce que ici je voudrais totaliser les recettes d'un mois.
Je dois noter que l'application est liee a une base de donnée access par (Ado)
Voici les codes dont je me sert
Pour le calcul:
P
rivate Sub Text1_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then
Text2.Text = Val(text1.Text)+ Val(Text2.Text)
Text3.Text = Val(text2.Text)+ Val(Text3.Text)
End If
End Sub


Pou ajouter les donnés à la base de données:
Set DB = New ADODB.Connection
Set RS = New ADODB.Recordset
DB.Open "Provider=Microsoft.Jet.OLEDB.4.0;Jet OLEDB:Database password=abc; Data Source=" & App.Path & "\data.mdb"

       RS.Open "select * from table ", DB, adOpenDynamic, adLockOptimistic
 

   RS.Update

RS!recette_jour = Text2.Text
RS!recette_glob = Text3.Text

RS.Update

 
End Sub

Voilà j'éspére que la situation est claire et j'éspère trouver la solution.
0

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

Posez votre question
cs_ShayW Messages postés 3253 Date d'inscription jeudi 26 novembre 2009 Statut Membre Dernière intervention 3 décembre 2019 57
13 juil. 2010 à 00:43
Salut
Attention avec le textbox tu peux entrer des
caractères non numérique !!
si dans le text1 je marque 5.4 ou 5 4

si tu veux seulement entrer des chiffres entiers
Dim sum As Long
Private Sub Text1_KeyPress(KeyAscii As Integer)
If ((KeyAscii < 48) And (KeyAscii <> 8) Or (KeyAscii > 57)) Then
 Text1.Locked = True
Else

Text1.Locked = False
End If

If ((KeyAscii >= 48) And (KeyAscii <= 57)) Then
 sum = sum + Val(Chr(KeyAscii))
End If
'si tu efface avec le backspace
If (KeyAscii = 8) Then
 sum = sum - Val(Text1.Text) Mod 10
End If

If KeyAscii = 13 Then
 Text2.caption = sum
End If

End Sub



utilise pour text2 et text3 des labels
puisque tu n'y rentres pas de données
que veux tu faire avec text3?
0
Rejoignez-nous