Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Recordset che non vede che il file è finito. (EOF)

110 views
Skip to first unread message

Mario Pug

unread,
Mar 20, 2021, 2:58:09 PM3/20/21
to
Salve, non è la prima volta che mi capita.
Apro un DAO.recordset
......
if rs.EOF then
....
Non vede che è finito e va avanti.

Nella finestra immediata lo interrogo
?rs.recordcount
2 (corretto)
Provo a spostarmi con i Move ...
con MoveNext vede che non ci sono più record!...
Ah allora lo vedi che è finito!.....

Ho provato con .BOF... niente
Ho provato con lo strumento di Ripristino Database..... niente

@Alex

unread,
Mar 20, 2021, 3:39:02 PM3/20/21
to
Posta bene il codice perché temo tunnon consideri che per avere EOF serve forzare il Movenwxt dopo l'ultimo...
Il codice per ciclare è questo:

Do until rs.eof
...
Rs.movenext
Loop

Vedrai che questo non ti da problemi.

@Alex

Mario Pug

unread,
Mar 21, 2021, 6:32:37 AM3/21/21
to
Do until rs.eof
> ...
> Rs.movenext
> Loop
>
> Vedrai che questo non ti da problemi.
>
> @Alex

Buongiorno Alex... si MoveNext è inserito nel codice.
Non posso postare tutto il codice dal DO al LOOP perchè troppo lungo e inutile
ma al termine del ciclo mi serve che faccia qualcosa...
DO
................
If rs.Eof then
rsAnagrafica.Close
Me.RegOK = -1
MsgBox "Operazione completata con successo", , "Messaggio di conferma"
Exit Sub
End If
rs.MoveNext
Loop

Mario Pug

unread,
Mar 21, 2021, 7:15:02 AM3/21/21
to
CMQ Funziona.
Con Do Until rs.EOF
poi riconosce
if rs.EOF Then....

Mah! :-)

Mario Pug

unread,
Mar 21, 2021, 7:23:12 AM3/21/21
to
Scusa no!... Ho parlato troppo presto.
Continua a non vedere If rs.EOF then

Posso aggiungere che la sorgente dei dati è una stringa SQL
SQL = "SELECT* FROM Genesi WHERE TITOLARI = 1"
Set rs = db.OpenRecordset(SQL, dbOpenDynaset)





Mario Pug

unread,
Mar 21, 2021, 12:06:03 PM3/21/21
to
Ho dovuto imbrogliarlo con un contatore
...ma non è normale!...

Dim Contatore as integer
DO
................
contatore = contatore +1
If Contatore = rs.RecordCount then

Mario Pug

unread,
Mar 21, 2021, 12:12:24 PM3/21/21
to
Quando ho scritto "DO" negli ultimi post intendevo scrivere
Do Until rs.Eof

da quando ho aggiunto UNTIL
anziché spostarsi avanti con moveNext e restituirmi quindi il messaggio
"Nessun record corrente"
Usciva dalla routine
ma non riconosceva comunque la fine del file.
quindi non eseguiva il codice all'interno di If
Alla fine ho dovuto aggiungere il contatore accoppiato al RecordCount

@Alex

unread,
Mar 22, 2021, 2:43:38 AM3/22/21
to
Mario, mi pare ovvio che tu stia commettendo qualche errore... il codice in se sono 3 righe del LOOP, tutto quello che ci metti dentro non importa...
Fai una prova a scorrere il recordset in modo normale, poi vedi... di fatto senza il codice non resta che dire che stai sicuramente commettendo un errore di cui non ti rendi conto.

@Alex
0 new messages