Newsgroup: it.comp.appl.access
Titolo: DO WHILE NOT RS.EOF non funziona

Dim Rs as DAO.Recordset
Set Rs = CurrentDb.OpenRecordset(myTabella, dbOpenDynaset)
Do While Not Rs.EOF
    bla..bla
Loop
Quando il RS č stato analizzato, il ciclo riinizia dandomi ovviamente errore
perché, ripetendo le stesse operazioni, si tenta di duplicare la chiave
primaria.
Qualcuno mi puň dire perché dopo aver analizzato tutto il RS il programma
non prosegue con le istruzioni successive?
Non posso utilizzare cicli For..Next perché il numero di iterazioni puň
variare.
Ho risolto intercettando l'errore 3022 (duplicaz. chiave primaria), ma la
soluzione mi sembra un po' "sporca".
Grazie.
kaloma


Che vuol dire analizzato?
SunRex

 kaloma
Kaloma io sono convinto che la tua Tabella Risieda su un SERVER SQL
al quale accedi via ODBC vero...??????
Nel caso no sia così non hai letto nemmeno l'HELP che non è grossa fatica.
dbOpenDynaset è riferito a Tabelle ODBC
nel tuo caso devi usare dbOpenTable.
@Alex.

 nel tuo caso devi usare dbOpenTable.
No. dbOpenDynaset è applicabile a ogno DAO recordset.
Non conosco il testo italiano del help per OpenRecordset
ma normalmente si tratta delle traduzioni del originale
"dbOpenDynaset
Opens a dynaset-type Recordset object, which is similar
to an ODBC keyset cursor."
Forse è un maltinteso a causa di questo paragone.
Vuol dire che dbOpenDynaset è simile a un ODBC
keyset cursor, perché con tutti e due si puo fare circa
le stesse operazioni.
-- 
cu
Karl
*********
Access-FAQ (tedesco): 
http://www.donkarl.com

 ha scritto nel messaggio
news:c87jf5$5rn$1...@lacerta.tiscalinet.it...

Chiedo venia. Ho letto l'help, ma mi è sfuggito questo "piccolo" particolare
del collegamento tramite ODBC.
La sintassi l'ho copiata/interpretata da vari aiuti o suggerimenti apparsi
in precedenza su questo NG (mia grossa fonte di informazioni & risoluzione
problemi).
Grazie comunque a tutti per l'aiuto (anche per la "tiratina d'orecchi"...)!
Ciao.
kaloma

     bla..bla
manca solo un
Rs.MoveNext
Altrimenti forse sara più chiaro di rivelare il tuo vero blabla.
-- 
HTH


 ha scritto nel messaggio
news:2gpdgvF...@uni-berlin.de...

C'è...c'è! C'è anche Rs.MoveNext.
Vedi, Karl, mi funziona tutto bene. Solo che il ciclo, invece di finire,
ricomincia causandomi l'errore descritto in precedenza.
Mi sono riguardato l'help su suggerimento di Alex Baraldi e devo dire che,
per quanto ne capisco io, hai ragione tu quando, nel precedente post hai
fatto quelle affermazioni sul dynaset.
D'altronde, io ho provato a sostituire dbOpensDynaset con dbOpenTable e a
rivedere tutte le istruzioni (bla...bla); l'errore però compare ugualmente,
per cui sono arrivato alla decisione di lasciare il tutto com'è visto che
tutta la struttura dell'applicazione in fin dei conti funziona.
Ti ringrazio per l'aiuto, ma penso che approffondirò l'argomento in seguito
con più calma.
Ciao
kaloma

 Access-FAQ (tedesco): 
http://www.donkarl.com
Se mi confermi che è utilizzabile anche per fonti non ODBC credo ci sia
una traduzione dell'Help un poco corretta o forse io l'ho male interpretata.
Per chiarezza la allego:
dbOpenDynaset :    Apre un oggetto Recordset
                              di tipo dynaset simile ad una tabella
                              del set di record corrente di tipo keyset di
ODBC.
Ciao KARL.
@Alex.


Il problema mi pare di capire ( e l'ho anche verificato) e' dovuto al fatto
che access continua ad aggiornare il recordset con i nuovi record.
Non mi sovviene se esite una costante per aprire il recordset in modo
pseudostatico.
In ogni modo mi vengono in mente due soluzioni alternative:
1) aprire due recordset : uno snapshot e l'altro dinamico
2) aprire il recordset dinamico andare all'ultimo record memorizzare il
recordcount ed usare questo per ciclare
Ciao Nicola