Vous ne pouvez pas utiliser la roulette de la souris pour faire défiler les enregistrements dans un formulaire Access 2007 ou Access 2010

Symptômes

En mode Formulaire dans Microsoft Office Access 2007 ou dans Microsoft Access 2010, lorsque vous essayez d’utiliser la roulette de la souris pour parcourir des enregistrements dans un formulaire, rien ne se passe. Toutefois, vous pouvez utiliser la roulette de la souris pour déplacer les enregistrements vers le haut ou vers le bas lorsque vous basculez le formulaire en mode Feuille de données.

Cause

Le comportement de la roulette de la souris en mode Formulaire a été modifié intentionnellement dans Access 2007 et Access 2010 pour réduire la confusion des utilisateurs. Dans les versions antérieures d’Access, la roulette de la souris déplaçait parfois la barre de défilement, ou la roulette de la souris déplaçait les enregistrements vers le haut ou vers le bas. Le comportement de la roulette de la souris est désormais cohérent et déplace uniquement la barre de défilement. Il n’existe aucune propriété pour modifier ce comportement.

Solution de contournement

Vous pouvez continuer à utiliser votre roulette de souris en mode Formulaire dans Access 2007 et Access 2010. Pour ce faire, activez votre base de données ou déplacez-la vers un emplacement approuvé. Ensuite, procédez comme suit :

  1. Ouvrez le formulaire en mode Création.

  2. Utilisez la combinaison de touches Alt+F11 ou cliquez sur Afficher le code dans le groupe Outils du ruban pour ouvrir la fenêtre de l’éditeur Microsoft Visual Basic.

  3. Collez le code suivant dans la fenêtre de code.

    Private Sub Form_MouseWheel(ByVal Page As Boolean, ByVal Count As Long)
    
    If Not Me.Dirty Then
    
    If (Count < 0) And (Me.CurrentRecord > 1) Then
    
    DoCmd.GoToRecord , , acPrevious 
    
    ElseIf (Count > 0) And (Me.CurrentRecord <= Me.Recordset.RecordCount) Then 
    
    DoCmd.GoToRecord , , acNext
    
    End If
    
    Else
    
    MsgBox "The record has changed. Save the current record before moving to another record."
    
    End If
    
    End Sub
    
  4. Enregistrez puis ouvrez votre formulaire en mode Formulaire.

Ce code force l’utilisateur à enregistrer un enregistrement dans lequel des modifications ont été apportées avant que l’utilisateur ne défile vers un autre enregistrement. L’une des main raisons de la modification du comportement de défilement était que les utilisateurs utilisaient la roulette de la souris pour faire défiler les enregistrements et enregistrer automatiquement et de manière inattendue leurs modifications dans leur enregistrement.