Gestione errore ultimo record

di il
5 risposte

Gestione errore ultimo record

Buongiorno

mi servirebbe un aiuto per gestire un errore che viene visualizzato in ina maschera nello spostamento tra records.

In particolare ho una maschera in cui vado ad inserire dei dati, e che passa automaticamente da controllo a controllo e da un record al successivo alla pressione di enter solo che quando arrivo all'ultimo record del set si genera (logicamente) un errore , impossibilità di passare al record specificato (next).

quindi dovrei , nel codice inserire delle istruzioni per far si che questo errore venga gestito, come posso fare? queste sono le istruzioni che ho inserito su LostFocus del controllo che voglio abbandonare per passare al successivo.

    DoCmd.RunCommand acCmdRefresh
    DoCmd.GoToRecord , "", acNext
    DoCmd.GoToControl "QuantitàDiScarico"


End sub
Ringrazio anticipatamente chi mi può dare una mano.

(come potrete ben inture non sono un informatico).

5 Risposte

  • Re: Gestione errore ultimo record

    giacomocd ha scritto:


    ...
    quindi dovrei , nel codice inserire delle istruzioni per far si che questo errore venga gestito, come posso fare? ...
    Cosa vorresti fare quando c'è quell'errore? Restare nel record corrente? inserire un record nuovo? Sai come funziona, in generale, una gestione degli errori?
  • Re: Gestione errore ultimo record

    .......No non ho ben chiaro come funzioni la gestione degli errori, credo che si debba inserire una regola, che nel caso si verifichi quell'errore , farà fare ciò per cui è programmata,
    A me sarebbe sufficiente rimanere nel record corrente, solitamente l'ultimo inserito, nel mio caso l'errore viene generato quando arrivo all' ultimo record, e, non esistendo un " next" .....ecco il messaggio, e nel caso in cui si fosse già presentato l'allert, cancellarlo.
  • Re: Gestione errore ultimo record

    giacomocd ha scritto:


    .......No non ho ben chiaro come funzioni la gestione degli errori, credo che si debba inserire una regola, che nel caso si verifichi quell'errore , farà fare ciò per cui è programmata,
    E' una lacuna da colmare il più presto possibile

    giacomocd ha scritto:


    A me sarebbe sufficiente rimanere nel record corrente, solitamente l'ultimo inserito...
    http://www.access-programmers.co.uk/forums/showthread.php?t=104478
    https://bytes.com/topic/access/answers/197831-error-checking-docmd-gotorecord-acnext-when-last-record
    In queste pagine dovresti trovare il sistema per rimanere nel record corrente quando non ce ne sono più.
  • Re: Gestione errore ultimo record

    Il Refresh lo fai per un motivo particolare che non ci spieghi...?
    Toglilo non serve.

    Concettualmente devi controllare di non essere già in fondo... e questo si fa con il TEST di EOF nel Recordet, oppure si intercetta l'errore che ne deriva e lo si Skippa.
    L'errore che viene generato è 2105, quindi sarebbe semplice.
    Come ti diceva Phil la gestione errori è la prima cosa da imparare prima di scrivere 1 riga di codice.

    Io mi ero fatto una cosa simile come Navigazione... leggi le istruzioni e prova:
    
    CODICE
    
    ' Creare 5 Pulsanti e nell'Evento Click scrivere:
    
    ' L'Indice passato alla chiamata DEVE corrispondere a quello previsto nell'enumerazioni delle costanti membri di Access.AcRecord che possiamo verificare dal VISUALIZZATORE OGGETTI
    
    ' Definizione dei CommandButton
    
    Pulsante First:
    Su Click: =MoveMeTo(2)
    
    Pulsante Previous:
    Su Click: =MoveMeTo(0)
    
    Pulsante Next:
    Su Click: =MoveMeTo(1)
    
    Pulsante Last:
    Su Click: =MoveMeTo(3)
    
    Pulsante New:
    Su Click: =MoveMeTo(5)
    
    ' Quindi la Funzione di navigazione sarà:
    
    Private Function MoveMeTo(index As Access.AcRecord)
    
       On Error GoTo Error
       ' Gestione dei Pulsanti di spostamento
       ' Suggerimento di Giorgio Rancati per rendere efficace
       ' l'azione anche nelle SubForm
       DoCmd.GoToRecord acActiveDataObject, , index
       ' DoCmd.GoToRecord acDataForm, Me.Name, index
          
       Exit Function
    Error:
       Select Case Err.Number
          Case 2105
             ' Gestisce il fuori Recordset
             Resume Next
          Case Else
             MsgBox Err.Number & " " & Err.Description
       End Select
    End Function
  • Re: Gestione errore ultimo record

    Ok risolto

    Grazie per la dritta!!!
Devi accedere o registrarti per scrivere nel forum
5 risposte