andrea.corciano ha scritto:
qualcuno di voi riesce ad illuminarmi?
Facci partire con almeno un lumicino acceso, usando i tag CODE, è dificilissimo leggere il codice quando il carattere e la formattazione sono quelli del testo normale. Occhio anche ai rientri.
Risposta in senso tecnico: credo che tutto sia collegato a come ti muovi all'interno del recordset.
Il modo giusto per "passare" tutti i record è questo
If Not rs.EOF Then 'così verifichi che il recorset non sia vuoto
rs.MoveFirst 'probabilmente non necessario
Do While Not rs.EOF
'tutto quello che devi fare
rs.MoveNext
Loop
End If
Per far funzionare il tuo codice dovresti anteporre un MoveLast a questa riga
If rs.RecordCount > 0 Then
perché solo in quel momento la proprietà RecordCount contiene davvero il totale dei record, non solo quelli a cui fino a quel momento ha avuto accesso, ricordandosi poi di ritornare all'inizio con un MoveFirst. Operazione "pesante" per grossi recordset e poi visto che esiste un sistema per non fare giri inutili perché complicarsi la vita?
NB: se non modifichi il contenuto del recordset (come mi sembra di vedere ad un'occhiata molto superficiale) aprilo in modalità sola lettura: ne guadagni in velocità e sicurezza.
Non mi è chiaro l'uso di Close: vedo delle chiusure del file prima della sua apertura.