Claro que es posible, le preparé este ejemplo en un formulario continuo, consta de:
1 Botón para ir a la página siguiente (Se puede omitir si quiere usa la tecla Av Pág)
1 Botón para ir a la página anterior (Se puede omitir si quiere usa la tecla Re Pág)
1 Botón para Cerrar el formulario
1 Evento Al cargar del formulario
1 Módulo con una función para reemplazar Sendkeys de Access. Se puede omitir si utiliza Sendkeys de Access, pero se recomienda para evitar fallas.
Al abrir el formulario
Hago clic en el botón siguiente:
Observe que obtengo el siguiente grupo de 10 registros.
Para fijar el grupo de 10 programo el evento Al cargar
Private Sub Form_Load()
Me.InsideHeight = Me.Section(acDetail).Height * 13
End Sub
Puede cambiar el 13 por otro número de acuerdo con la cantidad de registros que quiera ver, pero esto varía según como muestre el Pie del formulario, en este ejemplo está reducido al mínimo, es decir, no mostraría ninguna información.
CÓDIGO DEL BOTÓN SIGUIENTE
Private Sub btnSiguiente_Click()
Call Sendkeys("{PGUP}")
End Sub
CÓDIGO DEL BOTÓN ANTERIOR
Private Sub btnAnterior_Click()
Call Sendkeys("{PGDN}")
End Sub
CÓDIGO DE LA FUNCIÓN
Option Compare Database
Option Explicit
Private Declare PtrSafe Function GetVersionEx Lib "kernel32.dll" Alias "GetVersionExA" (lpVersionInformation As OSVERSIONINFO) As Long
Private Declare PtrSafe Function GetModuleFileName Lib "kernel32" Alias "GetModuleFileNameA" (ByVal hModule As Long, ByVal lpFilename As String, ByVal nSize As Long) As Long
'get os version
Private Type OSVERSIONINFO
dwOSVersionInfoSize As Long
dwMajorVersion As Long
dwMinorVersion As Long
dwBuildNumber As Long
dwPlatformId As Long
szCSDVersion As String * 128
End Type
Function OsVersion() As Single
Dim os As OSVERSIONINFO
Dim retval As Long
os.dwOSVersionInfoSize = Len(os)
retval = GetVersionEx(os) ' read Windows's version information
OsVersion = Val(os.dwMajorVersion & "." & os.dwMinorVersion)
End Function
Public Function Sendkeys(sSend$, Optional bWait As Boolean = False)
Static bInit As Boolean, bVistaOrGreater As Boolean, wShell As Object
If Not bInit Then
bVistaOrGreater = (OsVersion() >= 6)
If bVistaOrGreater Then Set wShell = CreateObject("WScript.Shell")
bInit = True
End If
If Not bVistaOrGreater Then
VBA.Sendkeys sSend$, bWait
Else
wShell.Sendkeys sSend$, bWait
End If
End Function
Por falla en la página de TodoExpertos no pude pegar el código en la ventana <> del navegador.
NOTA: Realmente no hay necesidad de todo este código, sencillo, NO adicione botones y utilice el teclado, no hay que reinventar lo que ya existe, lo hice para cumplir con la respuesta.
Si quiere el ejemplo puede solicitarlo a [email protected], favor en el asunto la consulta.