Bonjour,
Dans un formulaire, à l'aide d'un bouton ajout, j'ajoute des articles dans un sous formulaire donc voici le code:
il est possible que l'on ai fait un ajout de ligne par erreur et que l'on veuille la supprimer.
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
39
40
41
42 'Bouton servant à ajouter un article dans le sous formulaire temporaire SF_CdeTempo Private Sub FTAjoutArticle_Click() 'Condition d'avoir du budget If (Int(BudgetDispo.Value) < 0) Then MsgBox "Attention, Le solde Budget ne permet pas de commande" End If Dim base As Database: Dim ligne As Recordset: Dim requete As String: Dim TotalPrix As Single: Dim total_EurosCde As Single 'Calcul du quotient Prix article X nombre commandé TotalPrix = Abs(FTEuros.Value) * Abs(FTQComptoir.Value) Set base = Application.CurrentDb requete = "INSERT INTO T_CdeTempo (Article,Taille, ACder, CodeArticle, Total) VALUES ('" & Rech_Article & "', '" & Rech_Taille & "', " & FTQComptoir & ", '" & CodeArt & "', " & TotalPrix & ")" base.Execute requete Set ligne = base.OpenRecordset("SELECT Total FROM T_CdeTempo", dbOpenDynaset) ligne.MoveFirst Do total_EurosCde = total_EurosCde + Abs(ligne.Fields("Total").Value) ligne.MoveNext Loop Until ligne.EOF BudgetConso.Value = total_EurosCde If (Int(SoldeBudget.Value) < 0) Then MsgBox "Attention, Dépassement du budget financier alloué, Veuillez supprimer des articles et ensuite cliquer sur le bouton correctif de la Commande Magasin " End If ligne.Close base.Close Set ligne = Nothing Set base = Nothing DoCmd.Requery End Sub
Etant débutant, le moyen le plus facile pour moi est de faire un clic droit sur l'article, puis DELETE. Comme la somme dépensée ne sera plus correcte, l'appui sur un bouton correctif permet de recalculer. Tout va bien tant qu'il existe des lignes, mais si je supprime la seule ligne encodée et que je fais correctif, ma boucle ne peux fonctionner.
Une solution existe afin que si pas de ligne dans la boucle, recalculer quand même la somme...
ci-dessous le code utilisé pour le bouton correctif:
Merci de votre aide
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 'Correctif en cas d'annulation sur Cde tempo Private Sub Miseajour_points_Modif_table_tempo_Click() Dim base As Database: Dim ligne As Recordset Dim requete As String: Dim Total As Integer: Dim total_EurosCde, EurosCde As Single Set base = Application.CurrentDb Set ligne = base.OpenRecordset("SELECT * FROM T_CdeTempo", dbOpenDynaset) ligne.MoveFirst Do EurosCde = ligne.Fields("Total") If EurosCde = 0 Then MsgBox "Plus aucun articles dans votre commande" Else total_EurosCde = total_EurosCde + Abs(ligne.Fields("Total").Value) ligne.MoveNext Loop Until ligne.EOF BudgetConso.Value = total_EurosCde If (Int(SoldeBudget.Value) < 0) Then MsgBox "Attention, vous êtes toujours en dépassement du budget financier alloué, Veuillez encore supprimer des articles et ensuite cliquer sur le bouton correctif de la Commande Magasin " End If Exit Sub End If ligne.Close base.Close Set ligne = Nothing Set base = Nothing DoCmd.Requery End Sub
Partager