Avvertenza:
moveto non agisce sugli indici ma sull'index.
a prima vista sembra che non cambi nulla, ma c'è un'enorme differenza.
se create un database inserendo sempre nuovi record e non ne cancellate mai nessuno, noterete che moveto si posiziona sempre sul record successivo, basta fare un - 1 e risolve.
ma cosa succede se cominciate a cancellare qualche record? il caos.
la differenza sta nel fatto che l'id viene assegnato in modo incrementale ad ogni nuovo record, si comincia da 1 a salire, immaginate di avere nel database 30 record da 1 a 30, poi ne cancellate 2, i 28 che restano conserveranno i loro id.
l'index è diverso parte da 0 fino alla somma dei record, in questo caso avrete index massimo 27 e se cercherete di far caricare il record 30 moveto punterà sul nulla.
la soluzione? usare due variabili, una per gli id in modo da poter modificare sempre e solo il record che vorrete, l'altra per gli index, in moda da far muovere il database al record giusto.
tipo:
Dim MyId as string ' per le modifiche o l eliminazione record
Dim MyIndex as integer 'per muovere il recordset al record giusto
MyId = MRsR!idcliente
MyIndex = MrsR.index