RE:reiterar accion al mantener un click?
Hola
Hey disculpa creo que cuando lei tu mensaje estaba dormido porque no vi lo de que mientras se tenga precionado el boton que siguiera moviendose de registro.
Una forma seria programando los eventos mousedown y mouseup de los botones siguientes y anterior. la logica de eso seria asi:
Crear un procedimiento encargado de moverse al siguiente registro, en este procedimiento colocar un while que seria el encargado de ir recorriendo los registro, este while deberia llevar una bandera que seria la que le indique cuando salir del ciclo, esa bandera adquiere su valor al bajar el boton del mosuse sobre ese boton y al soltar el boton del mouse.
Al precionar el boton se asigna a la bandera un valor falso que le indicaria al ciclo while que no se salga, tambien seria aqui donde se llame al procedimineto que tenga el while
Al soltar el boton del mouse se le asigna el valor de true a la bandera para indicarle al ciclo que se debe detener
El codigo seria mas o menos asi.
NOTA ANTES DE CONTINUAR.
Este codigo lo hize en Visual Basic 6.0, no lo hize en Access por que en la maquina donde estoy no esta intalado, pero deberia funcionar en Access ya que son casi lo mismo a nivel de objetos y eventos.
------------------------Codigo-------------------------
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMS As Long)
Dim blnSalirCiclo As Boolean
Private Sub btnSiguiente_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
blnSalirCiclo = False
Siguiente
End Sub
Private Sub btnSiguiente_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
blnSalirCiclo = True
End Sub
Public Sub Siguiente()
While blnSalirCiclo = False
DoCmd.GoToRecord , , acNext
Sleep 10
DoEvents
Wend
End Sub
------------------------Fin Codigo-------------------------
Como vez esta hecha una declaracion al API de Windows eso es para poder hacer un pequeño tiempo de lapsus que se coloca dentro del while eso es para que los registros se delplazaen lentamente ya que si no se coloca pasarian tan rapído que pareceria que se hubiera precionado el boton ir al ultmio registro.
Luego esta preogramado el evento mouse down del boton en el que se inicializa la bandera y se llama al procedimineto encargado de ir pasando registro por registro.
Luego esta el evento mouseup en el que se le indica al ciclo while que debe salir
Por ultimo tenemos el procedimiento encargado de mover los registros en el cual esta el ciclo while, dentro de este while debes colocar todo el codigo correspondienete a moverse al siguiente registro, ya que yo solo coloque la orden de ir al siguiente falta que coloques la validacion correspondiente de si se encuentra en el ultimo registro que se haria con la propiedad eof del recordset que manejas.
Alli tambien esta el Sleep 20, el 20 indica 20 milisegundos asi que ese sera el lapsus para pasar al siguiente registro, luego viene la instruccion DoEvents que es para permitirle al programa responder a otros eventos y que no se quede bloqueado.
Bueno eso seria todo para el boton siguiente, para el de anterior seria repetir el metodo Siguiente pero decirle al while que se desplace al registro anterior, y programar los eventos correspondientes a ese boton.
Sin mas que decir espero que te sirva.
Saludos
http://www.theemulator.tk