Bonjour, suite à mon dernier post, j'essaie d'intégrer une boucle dans le code:
En gros, pour le premier enregistrement du sous-formulaire, on se positionne sur un nouvel enregistrement du sous-sous-formulaire et on remplit un champ. Une fois que c'est fait, on passe à l'enregistrement suivant du sous-formulaire et on refait la même chose jus'qu'a ce qu'il n'y ait plus d'enregistrement.
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 Private Sub LiaisonCont_Click() Dim i As Integer Dim j As Integer If Forms!Filiere!PT.Form.Recordset.RecordCount > 0 Then i = 1 j = Forms!Filiere!PT.Form.Recordset.RecordCount Me.Onglets.Pages(4).SetFocus Me.PT.SetFocus Do Until i = j DoCmd.GoToRecord , "", acGoTo, i Me.PT!EtatPT.SetFocus DoCmd.GoToRecord , "", acNewRec Forms!Filiere!PT.Form!EtatPT.Form!IdCont = Forms!Filiere!Controle.Form!OBJECTID i = i + 1 Me.PT.SetFocus Loop End If End Sub
Mais seulement voilà, ca cafouille!
Dans le cas présent, le focus se positionne bien sur le sous-formulaire en question, mais rien ne se passe. Par contre, si je place la condition i=j après loop, c'est la boucle infernale, et les enregistrements se créent indéfiniment dans le sous-sous-formulaire.
J'ai beau retourner ça dans mon cerveau, je ne comprends pas ce qui cloche.
Quelqu'un a une idée?
Merci beaucoup
Partager