PDA

Visualizza la versione completa : Qualche dritta ben accetta


ddtdavide
28-05-2002, 11:40
Nello script sottostante, in VB, vi un "errore" che non mi permette di passare al record successivo della tabella av_actres. Ho notato che se io non faccio eseguire la sub estrarre() il problema non si verifica. Immagino anche il perch si verifica questo errore, ma non so come risolverlo. Qualche dritta ben accetta?

Private Sub Form_Load()
Call Connetti_Stringa
SQL = " select * from av_actres where proj = '" & prog & "' and ver = '0'"
Set rs = CreateObject("ADODB.Recordset")
rs.Open SQL, conn
Do Until rs.EOF = True
codcombo = rs("rn")
Call estrarre
rs.MoveNext
Loop
End Sub

Sub estrarre()
SQL = " select * from av_resource where category = 'COSTS' AND rn = '" & codcombo & "'"
Set rs = CreateObject("ADODB.Recordset")
rs.Open SQL, conn
Voci_Spesa_trova.List1.AddItem rs("ds")
codice = rs("rc01")
If inserito = False Then
SQL = " select * from av_element where category ='MPS RBS' AND ELEMENT = '" & codice & "'"
Set rs = CreateObject("ADODB.Recordset")
rs.Open SQL, conn
Voci_Spesa_trova.Bicombo1.AddItem rs("ELEMENT"), rs("ds")
inserito = True
End If
End Sub

darkblOOd
28-05-2002, 12:10
ma che hai combinato ?
Mentre cicli in un recordset, dall'interno dello stesso ciclo chiami una procedura che ti cambia DUE VOLTE lo stesso recordset?
Come pretendi che funzioni una volta che, terminata la prima chiamata alla procedura, torni nel loop con il recordset non + referenziato?

:confused:

Boldan
28-05-2002, 12:14
Da quello che vedo sembra che tu stia utilizzando lo stesso oggetto rs per istanziare pi volte la classe recordset. Se vuoi poter fare un'opreazione del genere, i casi sono 2:
o svuiti l'oggetto precedentemente istanziato con Set rs = Nothing, proma di istanziarne un altro, oppure utilizzi un altro oggetto ad esempio rs2.

Spero di essere stato abbastanza chiaro...
Ciao!!:ciauz:

darkblOOd
28-05-2002, 12:29
"LA SECONDA CHE HAI DETTO"
Parola di Quelo (ricordate Quelo?)

Loading