Spostamento tra record

di alexps81 il
3 risposte
Buongiorno a tutti, per favore chiedo un piccolo aiuto.
Tramite l'evento KEYDOWN codifico che la freccia direzionale in giù (vbkeydown) mi faccia spostare tra i record. La stessa cosa avviene con il vbkeyup. Il problema nasce quando provo ad andare oltre l'ultimo record o oltre il primo record, in quando il db va in debug.
Per spostarmi tra i record utilizzo GoToRecord, , acNext e GoToRecord, , acPrevious
Qualcuno può aiutarmi a risolvere il problema?
Grazie

3 Risposte

  • alexps81 ha scritto:


    Buongiorno a tutti, per favore chiedo un piccolo aiuto.
    Tramite l'evento KEYDOWN codifico che la freccia direzionale in giù (vbkeydown) mi faccia spostare tra i record. La stessa cosa avviene con il vbkeyup. Il problema nasce quando provo ad andare oltre l'ultimo record o oltre il primo record, in quando il db va in debug.
    Per spostarmi tra i record utilizzo GoToRecord, , acNext e GoToRecord, , acPrevious
    Qualcuno può aiutarmi a risolvere il problema?
    Grazie
    Intercetta l'errore e scrivi il codice che fa eseguire lo spostamento che ti interessa: ripartire dal primo record se sei alla fine o andare all'ultimo se sei all'inizio... vedi tu.
    Se il codice errore è unico (a memoria non lo ricordo) discrima l'esecuzione in base al risultato di recordset.absoluteposition +1 o -1
    Qui trovi uno spunto: error checking for DoCmd.GoToRecord acNext when it is the last record
    Edit: guarda direttamente quello che ha scritto @Alex, è meglio.
  • Prima del primo cosa c'è...? NULLA, quindi non può eseguirla...!
    Dopo l'ultimo cosa c'è...? NULLA, quindi non può eseguirla...!

    Mi sembra evidente che, prima di effettuare il comando [GoToRecord] devi verificare di non essere già al PRIMO se vuoi eseguire un [acPrevious], oppure di non essere all'ultimo se vuoi eseguire un [acNext]...
  • Grazie mille per le risposte.
    Ho seguito il suggerimento di @Alex e finalmente sono riuscito a risolvere il problema.
    In pratica in un modulo ho inserito la function descritta nel link poi nell'evento KEYDOWN della form ho codificato
    "IF KEYCODE = VBKEYDOWN THEN MOVEMETO (1)" ---> per spostarsi in giù
    "IF KEYCODE = VBKEYUP THEN MOVEMETO (0)" ---> per spostarsi in su

    Grazi ancora
Devi accedere o registrarti per scrivere nel forum
3 risposte