PDA

Visualizza la versione completa : VB & access ( dolori & dolori)


michele79
03-09-2002, 05:49
Ciao ho scritto il seguente codice....
ma non funziona: :bh: :bh: :bh:

Sub Connetti()


Dim ConAgenda As ADODB.Connection
Dim RstAgenda As ADODB.Recordset
Dim StrStringaConn As String
Dim i As Integer


percorsoDb = "c:\documenti\db1.mdb"
StrStringaConn = "Provider=Microsoft.Jet.OLEDB.4.0;"
StrStringaConn = StrStringaConn & "Data Source="
StrStringaConn = StrStringaConn & (percorsoDb)
StrStringaConn = StrStringaConn & ";Persist Security Info=False"

Set ConAgenda = New ADODB.Connection
Set RstAgenda = New ADODB.Recordset

ConAgenda.ConnectionString = StrStringaConn
ConAgenda.Open

Set RstAgenda = ConAgenda.Execute(" select nomi from tabella")
RstAgenda.MoveFirst
i = 0

While Not RstAgenda.EOF
List1.AddItem RstAgenda.Fields(i).Value
i = i + 1
RstAgenda.MoveNext
Wend

RstAgenda.Close
ConAgenda.Close


End Sub

L'errore avviene quando entra per la seconda volta nel ciclo WHILE, e precisamente nella riga:

List1.AddItem RstAgenda.Fields(i).Value

con il seguente messaggio d'errore

errore di run-time '3265' impossibile trovare l'oggetto nell'insieme corrispondente al nome o al numero di riferimento richiesto dall'applicazione. (sembra che il recordset si 'svuoti' al secondo passaggio!)

se tolgo la riga dove incremento la variabile "i" funziona !!!
Perch? :master: ho visto i suggerimenti dati sul forum e son tutti cosi'
Aiutatimi o do a fuoco al pc ! :dh:
Grazie ..... mille!!!!
Michele

PUNKABBESTIA
03-09-2002, 08:08
.... come sempre ha ragione lui perch tu gli dici di aggiungere alla list1 il valore del campo (i), non del campo1 del record (i), insomma devi fare cos:

While Not RstAgenda.EOF
List1.AddItem RstAgenda("Nomi")
RstAgenda.MoveNext
Wend

Loading