Défilement de la roulette
Roulette ou pas roulette ?
Dans un formulaire en mode unique ou continu, la roulette de la souris permet de visionner rapidement les enregistrements.
Le problème survient lorsqu'un enregistrement se trouve en saisie ou en édition. Tout mouvement de la roulette fait passer sur un enregistrement voisin en sauvant celui en saisie. Ce dernier n'est peut être pas complet ou pire, perturbe dangereusement l'utilisateur non averti.
On se souhaiterai une simple commande pour inhiber l'effet de cette roulette, mais elle n'existe pas.
On aura donc recours à quelques lignes de code pour retrouver un fonctionnement plus sain.
- au dessus de la première Sub, on déclare une variable publique
Option Compare Database Option Explicit '/ controle pour défilement Public MouseWheelCancel As Boolean
- dans l'événement "Sur roulement de la souris" on met cette variable à Vrai
Private Sub Form_MouseWheel(ByVal Page As Boolean, ByVal Count As Long) MouseWheelCancel = True End Sub
- dans l'événement "Avant MAJ", on annule et l'on remet la variable à Faux
Private Sub Form_BeforeUpdate(Cancel As Integer) Cancel = MouseWheelCancel MouseWheelCancel = False End Sub