Bonjour,
Je n'arrive pas à changer l'enregistrement courant d'un sous-formulaire à partir d'un autre formulaire.
-J'ai une liste d'usager dans un formulaire indépendant dont le contenu = "SELECT id, nom FROM tblUsagers".
-J'ai un sous-formulaire sfrmUsager dont la source est "SELECT * FROM tblUsagers".
Sur la mise à jour de la liste, le currentRecord du sous-formulaire change. Pas de problème.
-J'ai un bouton "Créer un usager" qui ouvre un autre formulaire en mode AddNew. Quand je ferme ce formulaire, je mets la liste usagers et le sous-formulaire à jour (c'est ok). Je veux aussi me positionner sur le nouvel enregistrement. C'est ok pour la liste. Mais pas pour le sous-formulaire.
Dans mon formulaire Créer un usager:
J'imagine que DoCmd.GoToRecord s'applique alors au formulaire Créer un usager, et non pas au formulaire qui contient sfrm.
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 Private Sub Form_AfterInsert() Dim lstUsager As ListBox Dim sfrm As SubForm 'Mettre la liste des usagers à jour Set lstUsager = Forms!frmMenuAccueil!lstUsagers lstUsager.Requery lstUsager.Value = Me.txtID.Value 'Se positionner sur le nouvel enregistrement (obtenir l'ID Auto-Number) 'Debug.Print lstUsager.ListIndex & " " & lstUsager.Value 'L'infos est OK. 'Mettre le sous-formulaire "Informations sur l'usager" à jour Set sfrm = Forms!frmMenuAccueil!sfrmUsager sfrm.Requery sfrm.SetFocus 'Se positionner sur le nouvel enregistrement DoCmd.GoToRecord , , acGoTo, (lstUsager.ListIndex + 1) 'Plante. 'Libérer la mémoire Set sfrm = Nothing Set lstUsager = Nothing End Sub
Existe-t-il une autre fonction que DoCmd.GotoRecord pour manipuler des enregistrements à partir d'un autre formulaire? J'ai essayé avec les paramètres de GoToRecord mais je ne dois pas bien m'y prendre non plus.
Merci!
Caroline
Partager