bruce207
Messages postés106Date d'inscriptionmardi 4 mars 2008StatutMembreDernière intervention 2 mai 2012
-
8 avril 2008 à 16:48
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 2015
-
9 avril 2008 à 00:11
Bonjour,
mon probleme est que je ne comprends pas pourquoi j'ai des resultats erronés et meme négatifs dans ma base apres avoir definit le calcul dans le code (voir ligne rouge)
Private Sub Command3_Click()
On Error GoTo err
'Instanciation de variable
Set rst = New ADODB.Recordset
Set cnx = New ADODB.Connection
Call Connexion(cnx)
rst.Open "INSERT INTO retrait(mat_ret, num_ret, type_ret, montant, date_ret, mat_mem, mat_cpt) VALUES ('" & Text8.Text & "', '" & Text9.Text & "', '" & Combo8.Text & "', '" & txtret(0).Text & "', '" & txtret(1).Text & "', '" & txtret(2).Text & "', '" & txtret(3).Text & "') ", cnx, adOpenKeyset, adLockOptimistic, adCmdText
If Combo8.Text = "Retrait Ordinaire" Then
rst.Open "SELECT * FROM compte", cnx, adOpenKeyset, adLockOptimistic, adCmdText
Trans = rst!solde - Val(txtret(0).Text)
rst.Closerst.Open "UPDATE compte SET solde '" & Trans & "' WHERE mat_cpt '" & txtret(3).Text & "' ", cnx, adOpenKeyset, adLockOptimistic, adCmdText
End If
'Ferme la connexion
cnx.Close
If MsgBox("Faire un autre Retrait ?", vbYesNo + vbExclamation, " NOUVEAU COMPTE !") = vbYes Then
RetForm.Show
Else
'Ferme la feuille courante
Unload Me
BonForm.Show
End If
err:
MsgBox "N° erreur:" & err.Number & vbLf & err.Description
End Sub
Le champ solde est numérique et réel simple dans une base access
Merci pour votre éclairage<!-- / message -->
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 9 avril 2008 à 00:11
Salut
Parce que la requète SQL précédente ne tient pas compte du "mat_cpt" et qu'il te renvoie toutes les fiches.
Tel que tu utilises "rst!solde" juste après, tu fais le calcul avec le premier (ou le dernier, je ne sais pas) compte : coup de bol si tu étais tombé sur le bon !
--> Ajoute une clause Where dans le "Select *From Compte" pour qu'il n'apppelle QUE la fiche "mat_cpt"
Vala
Jack, MVP VB NB : Je ne répondrai pas aux messages privés
<hr />Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)