No se puede usar la rueda del mouse para desplazarse por los registros de un formulario de Access 2007 o Access 2010

Síntomas

En la vista Formulario de Microsoft Office Access 2007 o en Microsoft Access 2010, al intentar usar la rueda del mouse para desplazarse por los registros de un formulario, no ocurre nada. Sin embargo, puede usar la rueda del mouse para mover los registros hacia arriba y hacia abajo cuando cambie el formulario a Vista hoja de datos.

Causa

El comportamiento de la rueda del mouse en la vista formulario se cambió intencionadamente en Access 2007 y en Access 2010 para reducir la confusión del usuario. En versiones anteriores de Access, la rueda del mouse a veces mueve la barra de desplazamiento o la rueda del mouse mueve los registros hacia arriba o hacia abajo. El comportamiento de la rueda del mouse ahora es coherente y solo mueve la barra de desplazamiento. No hay ninguna propiedad para cambiar este comportamiento.

Solución alternativa

Puede seguir usando la rueda del mouse en la vista Formulario en Access 2007 y en Access 2010. Para ello, habilite la base de datos o muévalo a una ubicación de confianza. Luego, haga lo siguiente:

  1. Abra el formulario en la vista Diseño.

  2. Use la combinación de teclas Alt+F11 o haga clic en Ver código en el grupo Herramientas de la cinta de opciones para abrir la ventana del editor de Microsoft Visual Basic.

  3. Pegue el código siguiente en la ventana de código.

    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. Guarde y abra el formulario en la vista Formulario.

Este código obliga al usuario a guardar un registro en el que se realizaron cambios antes de que el usuario se desplace a otro registro. Una de las principales razones para el cambio en el comportamiento del desplazamiento fue que los usuarios usarían la rueda del mouse para desplazarse por los registros y guardar de forma automática e inesperada sus cambios en su registro.