J'ai oublié de préciser, mon formulaire possède 2 onglets.
Sur le premier onglet j'ai déjà une fonction de suivi des champs avec mon sous formulaire qui fonctionne.
Sur l'événement activation du sous formulaire j'ai :
1 2 3 4 5 6 7 8
| Private Sub Form_Current() 'Permet aux champs extincteurs du formulaire Modif Client de se positionner
' sur le même enregistrement que le sous formulaire
Dim Rs As Object
Set Rs = Forms![Modif Clients].Recordset.Clone
Rs.FindFirst "[Liste extincteurs]![N°] = " & Str(Nz(Me![N°], 0))
If Not Rs.EOF Then Forms![Modif Clients].Bookmark = Rs.Bookmark
End Sub |
et sur le bouton suivant j'ai :
1 2 3 4 5 6 7 8 9
| Private Sub Suivant_Click()
DoCmd.GoToRecord , , acNext
Dim Rs As Object
Set Rs = Me.Requête_Modif_Clients_sous_formulaire.Form.Recordset.Clone
Rs.FindFirst "[N°] = " & Str(Nz(Me![N°], 0))
If Not Rs.EOF Then Me.Requête_Modif_Clients_sous_formulaire.Form.Bookmark = Rs.Bookmark
End Sub |
Donc pour cet onglet cela fonctionne.
Pour le second onglet j'ai une différence. La première est que je ne peux pas travailler directement avec le sous formulaire et les champs (ceux ci ne provenant pas de la requête de mon formulaire).
J'ai donc créé 2 sous formulaire dans mon onglet dont un avec les boutons suivant et précédent. SF1 avec les données à visualiser et SF2 les données pour modification avec les boutons Suivant et Précédent
Si je clique sur ces boutons je fais bien défiler les données de mon sous formulaire SF2.
Le problème arrive quand j'ajoute le même code que pour mon onglet suivant.
Cela fait bugger le code du premier onglet. Pourtant j'utilise une autre variable RS2 au lieu de RS :
1 2 3 4 5 6 7 8
| Private Sub Form_Current() 'sur SF1
Dim Rs2 As Object
Set Rs2 = Forms![SF2].Recordset.Clone
Rs2.FindFirst "[N°Obs] = " & Str(Nz(Me![N°Obs], 0))
If Not Rs2.EOF Then Forms![SF2].Bookmark = Rs.Bookmark
End Sub |
J'obtiens cette erreur dès que je clique sur le bouton suivant (ou précédent de mon premier onglet qui n'a rien à voir avec mon second onglet :
Erreur d'exécution '2450'
Impossible de trouver le formulaire SF2 auquel il est fait référence...
Je viens de modifier le code du bouton suivant en forçant le nom du sous formulaire
DoCmd.GoToRecord , ("SF1"), acNext
Mais j'ai une erreur qui me dit :
L'objet SF1 n'est pas ouvert
alors qu'il s'agit du sous formulaire de mon formulaire ![:koi:](https://www.developpez.net/forums/images/smilies/koi.gif)
Marcopololo
Partager