OVH Cloud OVH Cloud

Boucle qui multipli un enregistrement

3 réponses
Avatar
BerloSconi
Bonjour ;

j'ai deux tables liées par NumAuto , le premier contient un champ qui
s'appelle Nombre de Lot , je veux faire un boucle qui multipli le nombre
d'enregistrement automatiquement dans le deuxieme table par le nombre de lot
en commancent par 1.
example :
[Table1]! [Commande] = C1.
[Table1]! [Nombre de lot] = 3.

Resultat dans Table2
[Table1]! [Commande] = C1.
[Table2]! [Numéro lot] = 1.
[Table2]! [Numéro lot] = 1.
[Table2]! [Numéro lot] = 1.
[Table2]! [Numéro lot] = 2.
[Table2]! [Numéro lot] = 2.
[Table2]! [Numéro lot] = 2.
[Table2]! [Numéro lot] = 3
[Table2]! [Numéro lot] = 3.
.[Table2]! [Numéro lot] = 3.
Merci

3 réponses

Avatar
Nobodyisperfect
Bonjour BerloSconi

Avec le code ci-dessous, cela devrait te donner une piste ;O)

Référence DAO

Sub x()
Dim MyBase as Database
Dim MyRst1 as Recordset
Dim MyRst2 as Rescordset
Dim Compteur1 as Integer
Dim Compteur2 as Integer
Dim NomCommande as Variant

Set MyBase = CurrentDb
Set MyRst1 = MyBase.OpenRecordset("Table1")
Set MyRst2 = MyBase.OpenRecordset("Table2")

With MyRst1
.While Not.Eof
.Edit
NomCommande = !Commande
Compteur1 = !"Nombre de lot"
Compteur2 = 1
While Compteur2 <= Compteur1
MyRst2.AddNew
MyRst2!Commande = NomCommande
MyRst2!"Numéro lot" = Compteur2
MyRst2.Update
Compteur2=Compteur2+1
Wend
.Update
.MoveNext
.Wend
End With

Set MyRst1 = Nothing
Set MyRst2 = Nothing
MyBase.Close

End Sub


@+
Olivier
"BerloSconi" wrote in message
news:
Bonjour ;

j'ai deux tables liées par NumAuto , le premier contient un champ qui
s'appelle Nombre de Lot , je veux faire un boucle qui multipli le nombre
d'enregistrement automatiquement dans le deuxieme table par le nombre de
lot

en commancent par 1.
example :
[Table1]! [Commande] = C1.
[Table1]! [Nombre de lot] = 3.

Resultat dans Table2
[Table1]! [Commande] = C1.
[Table2]! [Numéro lot] = 1.
[Table2]! [Numéro lot] = 1.
[Table2]! [Numéro lot] = 1.
[Table2]! [Numéro lot] = 2.
[Table2]! [Numéro lot] = 2.
[Table2]! [Numéro lot] = 2.
[Table2]! [Numéro lot] = 3
[Table2]! [Numéro lot] = 3.
.[Table2]! [Numéro lot] = 3.
Merci




Avatar
Nobodyisperfect
Re BerloSconi,

Dans le code que je t'ai envoyé, il ne gère pas les données déjà
présentes dans la Table2 et je suppose que la relation entre la Table1 et
Table2 est de 1 à N.

@+
Olivier
Avatar
Nobodyisperfect
Voilà ton code !!!.

Sub ()

Dim MyBase As Database
Dim MyRst1 As Recordset
Dim MyRst2 As Recordset
Dim Compteur1 As Integer
Dim Compteur2 As Integer
Dim Compteur3 As Integer
Dim NomCommande As Variant

Set MyBase = CurrentDb
Set MyRst1 = MyBase.OpenRecordset("Table1")
Set MyRst2 = MyBase.OpenRecordset("Table2")

With MyRst1
While Not .EOF
.Edit
NomCommande = !Commande
Compteur1 = ![Nombre de lot]
Compteur2 = 1
Compteur3 = 1
While Compteur2 <= Compteur1
For i = 1 To Compteur1
MyRst2.AddNew
MyRst2!Commande = NomCommande
MyRst2![Numéro de lot] = Compteur3
MyRst2.Update
Next
Compteur3 = Compteur3 + 1
Compteur2 = Compteur2 + 1
Wend
.Update
.MoveNext
Wend
End With

Set MyRst1 = Nothing
Set MyRst2 = Nothing
MyBase.Close

"Nobodyisperfect" wrote in message
news:
Re BerloSconi,

Dans le code que je t'ai envoyé, il ne gère pas les données déjà
présentes dans la Table2 et je suppose que la relation entre la Table1 et
Table2 est de 1 à N.

@+
Olivier