Una famiglia di sistemi di gestione per database relazionali di Microsoft progettati per semplificare l'uso.
Ciao happyhacker95.
ti invio del codice che ho scritto e provato in access 2007, ma credo che non abbia alcun problema a funzionare anche nel 2003.
Option Compare Database Option Explicit
Dim PigiaAncora As Boolean
Private Sub Successivo_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) Dim InizioTempo As Single Const IntervalloRipetizione As Single = 0.1 ' in secondi
PigiaAncora = True ' imposto l'esecuzione del ciclo
Do While PigiaAncora
InizioTempo = timer
DoCmd.GoToRecord , , acNext
Do While (timer - InizioTempo) < IntervalloRipetizione
DoEvents
Loop
Loop
End Sub
Private Sub Successivo_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single) PigiaAncora = False End Sub
Si tratta di sfruttare gli eventi di MouseUp e MouseDown del tuo pulsante personalizzato (nel mio esempio chiamato Successivo per scorrere in avanti).
In pratica al click sul pulsante parte un ciclo di gotorecord che va avanti in maniera indefinita fino a che la variabile PigiaAncora è a True. PigiaAncora diventa false nel momento in cui si alza il pulsante del mouse (evento MouseUp). Evidentmente PigiaAncora deve essere a livello di modulo per poter essere condivisa dalle diverse routine.
Due cose importanti da notare:
- è importante regolare la velocità di ripetizione. Ogni ciclo di loop aspetta il tempo impostato in IntervalloRipetizione
- fondamentale l'istruzione Doevents, altrimenti il sistema, tutto preso dal fare il loop non fa avvenire l'evento di MouseUp
Devi aggiungere la gestione degli errori quando si arriva in cima o in fondo all'elenco.
Ciao. Edoardo