Voilà, c'est résolu, enfin, j'avais mal placé mon "END IF", du coup à chaque fois que j'appliquais cette formule, access se plantais. Merci à ceux qui m'ont donné un ptit coup de main.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38 Private Sub UpStock_Click() Dim Enr As DAO.Recordset Dim strLink As String Dim Cancel As Integer strLink = SauvegarderActualiser If Valider = "Non" Then If msgbox("Etes-vous sur de votre commande ?", vbQuestion + vbYesNo, "Mise à jour du stock") = vbYes Then Set Enr = CurrentDb.OpenRecordset("Détail du bordereau d'execution") Do Until Enr.EOF = True If Enr("N° Bordereau") = [N° Bordereau] Then Enr.Edit If Enr("NbRestant") = 0 Then Enr("ACommander") = Enr("Quantité") Else If Enr("NbRestant") - Enr("Quantité") >= 0 Then Enr("ACommander") = 0 Enr("NbRestant") = Enr("NbRestant") - Enr("Quantité") Else Enr("ACommander") = Enr("Quantité") - Enr("NbRestant") 'Pour éviter d'avoir un nombre négatif dans le stock Enr("NbRestant") = 0 End If End If Enr.Update End If Enr.MoveNext Loop Enr.Close Valider = "Oui" strLink = SauvegarderActualiser Else Me.Undo Cancel = True End If Else msgbox "Vous ne pouvez mettre à jour le stock qu'une seule fois !" End If End Sub
Partager