Ciao.. voglio innanzitutto far presente ai moderatori che nono sono in crossposting, infatti c'è una mia discussione con titolo "problema con movenext" aperta ieri che ha un titolo simile a questa ma il contenuto è diverso.. magari quella potete anche cancellarla 
Allora io mi connetto con ado al mio database e apro il recordset in questo modo:
codice:
Private Sub Form_Load()
'connessione al datbase
Set cnonn = New ADODB.Connection
cnonn.CursorLocation = adUseServer
cnonn.Open "Provider=Microsoft.Jet.OLEDB.3.51;Data Source=ONN97.mdb"
'recordset
Set rsonn = New ADODB.Recordset
rsonn.CursorLocation = adUseServer
rsonn.Open "SELECT * FROM Clienti;", _
cnonn, adOpenKeyset, adLockOptimistic, adCmdText
...
poi creo questa funzione:
codice:
Private Function scrivivalue()
t_socion = rsonn.Fields("socio_n").Value
t_brevetto = rsonn.Fields("brevetto").Value
t_nome = rsonn.Fields("nome").Value
t_cognome = rsonn.Fields("Cognome").Value
t_turno = rsonn.Fields("turno").Value
t_natoa = rsonn.Fields("nato_a").Value
t_datanascita = rsonn.Fields("data_nascita").Value
t_quota = rsonn.Fields("quotaversata").Value
t_scadenza = rsonn.Fields("scadenza").Value
t_ora = rsonn.Fields("ora").Value
End Function
ed al click sul pulsante "avanti" (per scorrere i record) associo queste righe:
codice:
Private Sub avanti_Click()
rsonn.MoveNext
scrivivalue
If rsonn.EOF Then
rsonn.MoveFirst
scrivivalue
label_i.Visible = False
indietro.Enabled = True
avanti.Enabled = False
label_a.Visible = True
label_a.Caption = "FINE RECORD"
End If
End Sub
il problema stà nel fatto che non mi riconosce If rsonn.EOF Then infatti quando arrivo alla fine dei record mi dà questo errore:
Il record corrente corrisponde all'inizio o alla fine oppure è stato eliminato. Per eseguire l'operazione richiesta è necessario disporre di un record corrente ed il debug mi segna in giallo t_socion = rsonn.Fields("socio_n").Value nella funzione "scrivivalue"
Qualcuno per favore mi sà dire il perchè? eppure l'if sembra giusto 
Ciao