Newsgroup: it.comp.lang.visual-basic
Titolo: Errore di run-time 3021

Ciao ragazzi,
devo eliminare un record  da un database access con controllo AdoData.
il codice che uso e' questo:
Private Sub CmdElimina_Click()
 
'  On Error Resume Next
   Set Rs = Adodc1.Recordset
   Rs.MoveFirst
   For u = 0 To Rs.RecordCount - 1
***    r = Rs!tipo
       Select Case r
          Case "Nessuna", "Mensile", "Annuale"
             r = r & vbTab
       End Select
       If r & vbTab & Rs!Data & vbTab & Rs!Ora & vbTab & vbTab &_  
            Rs!descrizione = Lista.List(Lista.ListIndex) Then Exit For
            Rs.MoveNext
   Next u
   msg = "Eliminare l'evento del " & Rs!Data & " alle " & Rs!Ora &_ 
vbCrLf
   msg = msg & Rs!descrizione
   a = MsgBox(msg, vbYesNo, "Eliminazione Evento")
   If a = 6 Then
        Rs.Delete
        Rs.Update
        Adodc1.Refresh
        PopolaLista                'Aggiorna la lista
        CmdOkGrid_Click      'Chiude la maschera
    End If
End Sub
il problema e' questo:
Se uso il programma da vb tutto fila liscio e funziona tutto
perfettamente, 
se compilo il sorgente e lancio l'eseguibile mi da'.
errore di run-time '3021':
il record corrente corrisponde all'inizio o alla fine del
file oppure e' stato eliminato..........
ed Il record non viene eliminato.
Ho visto che l'errore lo genera la riga con *** 
(se rendo attivo On Error Resume Next, non compaiono messaggi d'errore
e la msgbox di conferma  mi segnala il giusto record ma comunque il
record non lo cancella). 
qualcuno sa dirmi come posso uscirne?
		Ciao, Mario.


UNA FATICA IMMANE.....
per non fare un
TuaConnessione.Execute "DELETE * FROM TuaTabella WHERE
tuaCondizione" !!!
Talvolta mi viene da pensare che bene ha fatto M$ a eliminare tutto
con il .net e a costringere i programmatori a lavorare disconnesso!
evabbe...buon proseguimento di feste!

 con il .net e a costringere i programmatori a lavorare disconnesso!
Chissà che bei casini saranno in grado di combinare con .NET!
Tutto il mondo è paese.
-- 
Ciao Fede
By Chicco Production
http://bcp.freetools.it

evabbe...buon proseguimento di feste!
anche a te e ancora grazie.    Mario.

 anche a te e ancora grazie.    Mario.
E comunque....
ADOdatacontrol è solo un "controllicchio" che "dovrebbe" agevolarti
nello scrivere codice!
In realtà alla fine ti complica la vita invece di semplificartela!
Prendi un libro e leggi ADO...studia studia...in un post non impari
una cippa...e se metto del codice e scateni il copia ed incolla...non
capisci cosa incolli ...e siamo alle solite!
La logica che dovresti prendere è la seguente:
ADO.(net...anche...volendo!)
Creo un oggetto connection...
(Oggetto che COLLEGA il database)
creo un oggetto Command
(oggetto che ESEGUE un comando sul database)
il command mi può "ritornare un risultato"...
il risultato è un oggetto Recordset
L'oggetto Recordset lo spippolo quanto mi pare...anche con la
connessione al database staccata...
Faccio un update....
il database si aggiorna!
Il problema è poi anche un altro....
puoi lavorare connesso SEMPRE al server ....o STACCANDOTI dal server e
collegandoti ogni tanto per aggiornare i dati...
(il server è l'oggetto che ti "serve" i dati...in questo caso access)
Le griglie anche nel vb6 lavorano in genere client...e tanti problemi
ci sono proprio nel capire quando usare connessione con cursori lato
client e cursori lato server
Come vedi...se non prendi un libro e ti rifai da una parte...non ne
cavi le gambe!
Inoltre...ADO è sviscerato...STRA' sviscerato!
Basta fare un po di ricerca con "Google gruppi" anche in questo
NG....trovi montagne di discussioni!
Buon lavoro!

cavi le gambe!
Grazie Wodka40, ho risolto il problema togliendo il controllo e
gestendo il database da codice. Mario.