ERRO AO USAR COLE?ÃO

PATYFF 11/06/2016 22:24:48
#463381
Pessoal me ajudem por favor, no primeiro código tudo roda normalmente:
Option Explicit
Dim a As New Collection

Private Sub Combo1_Click()
MsgBox a.Item(Combo1.ListIndex + 1)
End Sub

Private Sub Form_Load()
Dim i As Integer
For i = 0 To 5000
a.Add i
Combo1.AddItem i
Next
End Sub

Já nesse aqui onde pego o código do banco de dados aparece a mensagem de erro:
Option Explicit
Dim a As New Collection

Private Sub Combo1_Click()
MsgBox a.Item(Combo1.ListIndex + 1)
End Sub

Private Sub Form_Load()
ConnectDB
rs.Open [Ô]tblCad[Ô], db, 3, 3
Do Until rs.EOF
Combo1.AddItem rs(2)
a.Add rs(0)
rs.MoveNext
Loop
FechaBD
End Sub

Nunca trabalhei com coleção, acho que deve ter algo errado,
O curioso é que quando uso o comando
MsgBox a.Count

ele mostra o resultado certinho...
KERPLUNK 11/06/2016 22:36:28
#463383
Em que linha ocorre o erro?
PATYFF 11/06/2016 23:05:27
#463384
Na MsgBox a.Item(Combo1.ListIndex + 1)
KERPLUNK 11/06/2016 23:12:59
#463385
Adicione a coleção à inspeção de variáveis e verifique se um ítem com a chave do listbox existe.
DS2T 11/06/2016 23:25:48
#463387
Resposta escolhida
Simples, você tá adicionando o valor de um recordset por referência pra sua coleção.
A partir do momento que você fecha a conexão, aquele objeto deixa de existir. E se você tenta buscar ele não coleção, vai gerar o erro.

Tente mudar para isso:

a.Add cObj(rs.Fields([Ô]nomeCampo[Ô]).Value)

Abraços
PATYFF 12/06/2016 12:11:08
#463392
Gente obrigada, funcionou
Tópico encerrado , respostas não são mais permitidas