Bonjour,
Sous Access 2002, je suis dans le cas d'un formulaire ayant un sous-formulaire affiché en mode feuille de donnée (les deux liés classiquement par leur champs père/fils) Le sous-formulaire contient 15 lignes dans la fenêtre, il arrive fréquemment qu'il y ait 25 ou 30 lignes à afficher, ce qui necessite une pagination ou l'utilisation de l'ascenceur pour avoir la dernière ligne à l'écran et bien sûr la nouvelle ligne de création.
J'ai essayé SelTop (placé dans un module niveau sous-formulaire). Cela affiche bien la dernière page du sous-formulaire avec la nouvelle ligne en bas de fenêtre en position 15 de la fenêtre, tout va bien si l'on ne fait que des ajouts de nouveaux enregistrements, par contre si l'on veut modifier une donnée d'un enregistrement du milieu de la fenêtre on ne peut la modifier directement, il faut faire en deux fois: 1- mettre le focus dessus par un premier clic et ensuite 2- faire la saisie.
Est-il possible d'améliorer ou de faire avec d'autres fonctions ? afin de pouvoir:
- avoir l'affichage de la dernière ligne en bas de page ou ailleurs dans la page
- pouvoir intervenir directement sur n'importe quel champ de la page comme on peut le faire quand on déplace les lignes soi même via l'ascenceur de droite
Merci d'avance pour toutes vos suggestions.
Ci-dessous code implémenté au niveau sous-formulaire
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 Private Sub Form_Current() Dim lng As Long 'obtient le nombre d'enregistrements lng = Me.RecordsetClone.RecordCount 'se positionne sur le n + 1 donc sur un nouvel enreg en bas de page If lng > 15 Then Me.SelTop = lng + 1 End If End Sub
Partager