Spostamento tra record

di il
3 risposte

Spostamento tra record

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

  • Re: Spostamento tra record

    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.
  • Re: Spostamento tra record

    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]...
  • Re: Spostamento tra record

    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