Salut,
Le fichier contient des informations concernant des stocks de fournitures. L'utilisateur doit saisir la progression. Cela crée à chaque fois une ligne de plus dans le fichier et le stock doit se mettre a jour. Le code ci-dessous s'applique au moment de valider cette saisie. Le problème c'est qu'il arrive que le stock de se mette pas a jour correctement. par Exemple :
- Lors de la premiière saisie, on ajoute 10 à lartiche A
- Puis on ajoute 4 à l'article B
- On retire 3 à l'aticle B
- On ajoute 1 à l'article A
Dans ce cas, le stock de l'article B est bien de 2 à la fin. Par contre pour l'article A, il ya une erreur. Après le premier ajout, il est bien de 10 par contre, il est de 5 à la fin. Pour cette dernière ligne, il semble donc avoir pris comme stock de départ 4 et non 10.
J'espère que vous saurez m'aider. Je suis actuellement en stage et ma progression est bloquée par cette erreur.
Merci d'avance.
Voici la partie du code concernée :
Private Sub cmd_valid_Click()
'placement du contenu des zones de texte dans des variables
g = lbl_refnom.Caption
h = Label3.Caption
m = Now
o = txt_destin.Text
p = Label14.Caption
q = Cmb_visupro.Text
r = Cmb_visutype.Text
t = txt_prog.Text
u = txt_obs.Text
'lecture du fichier pour compter le nombre d'enregistrement pour ne pas réécrire dessus et prendre la dernière valeur du stock
Open "C:\fichier_fournitures" For Random Access Read As #1
Do While Not EOF(1)
Get #1, s + 1, b_action
If b_action.nomprod = q Then
stock_rest = b_action.stock
End If
s = s + 1
Loop
Close #1
'écriture des données dans le fichier à partir de la dernière ligne
Open "C:\fichier_fournitures" For Random Access Write As #1
b_action.ref_nomenc = g
b_action.ref_gibus = h
b_action.nomprod = q
b_action.stock = stock_rest + t
b_action.type = r
b_action.compte = p
b_action.progression = t
b_action.observation = u
b_action.destin = o
b_action.date = m
Put #1, s + 1, b_action
Close #1
txt_prog.Text = ""
txt_destin.Text = ""
txt_obs.Text = ""
End Sub