bonjour,
J'ai un script vba qui me permet d'ajouter (par clic bouton) un nombre d'enregistrements dans une table selon un chiffre présent dans un formulaire.
Si le formulaire indique "nombre de cartons" = 3 ; alors le script ajoute 2 lignes de plus dans la table.
Mon script fonctionne seulement sur un formulaire à enregistrement unique.
Je n'arrive pas à l'adapter avec une boucle qui vérifie tous les enregistrements du formulaire (et donc de la table).
La boucle fait son travail, mais ne rentre pas dans ma partie "addnew" lorsqu'elle rencontre la valeur "nombre de cartons" > 1.
Si quelqu'un pouvait m'aider, ce serait super!
Voici mon code avec la boucle qui ne fonctionne pas :
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
43
44
45
46
47
48
49 Option Compare Database Private Sub btn_ajouts_cartons_Click() ' Quelques variables Dim rst As DAO.Recordset Dim lngNum As Long Dim NbCarton As Integer 'NbCartons = rst("Nb_cartons").Value NbCartons = Me.Nb_cartons.Value ' Dim NbCartons As Long ' Ouvrir la table en lecture/écriture Set rst = CurrentDb.OpenRecordset("tbl_import", dbOpenDynaset) 'Boucler jusqu'à la fin de la table Do While Not rst.EOF If NbCartons > 1 Then 'Do While NbCartons > 1 ' Boucler sur le nombre de cartons For lngNum = 0 To Me.Nb_cartons - 2 ' Créer un enregistrement dans la table rst.AddNew ' Alimenter les champs rst("Titre") = Me.Titre rst("KundeNr") = Me.KundeNr rst("Exemplaires") = Me.Exemplaires rst("Ville") = Me.Ville rst("Nb_cartons") = Me.Nb_cartons rst("Quantite") = Me.Quantite rst("Nb_solde") = Me.Nb_solde rst("Tri") = Me.Tri ' Valider rst.Update Next End If rst.MoveNext Loop rst.Close Set rst = Nothing MsgBox "Opération terminée !", vbInformation End Sub
voici une image du formulaire:
Partager