ERRO AO CARREGADOR COMBO REPENTINO

WEBIER 15/09/2014 11:29:16
#441219
Preencho meu combo com o seguinte codigo:

Sub PreencheProdutos()
Dim sSQL As String
Dim r As ADODB.Recordset
Dim var_cboTexto As String

sSQL = [Ô]SELECT DISTINCT descricao, codigo, fabricante, tamanho FROM produtos ORDER BY descricao;[Ô]
Set r = dbData.OpenRecordset(sSQL)

If cboDescricao.Text <> [Ô][Ô] Then var_cboTexto = cboDescricao.Text
cboDescricao.Clear
cboDescricao.Text = var_cboTexto

Do While Not r.EOF
If tipoEmpresa = 4 Then
cboDescricao.AddItem ValidateNull(r([Ô]descricao[Ô])) & [Ô] / [Ô] & ValidateNull(r([Ô]tamanho[Ô])) & [Ô] / [Ô] & ValidateNull(r([Ô]fabricante[Ô]))
Else
cboDescricao.AddItem ValidateNull(r([Ô]descricao[Ô]))
End If
cboDescricao.ItemData(cboDescricao.NewIndex) = r([Ô]codigo[Ô])
r.MoveNext
Loop

If r.State <> 0 Then r.Close
Set r = Nothing
End Sub


na linha:
cboDescricao.ItemData(cboDescricao.NewIndex) = r([Ô]codigo[Ô])

dar o seguinte erro:
Invalid property array index (Error 381)

O que é mais estranho, em outros banco de dados nao dar erro... já olhei a estrutura da tabela e os dados... e estão OK
O que poderia ser essa mensagem de erro?
MARCELO.TREZE 15/09/2014 11:39:48
#441220
Resposta escolhida
tente alterar isto

cboDescricao.ItemData(cboDescricao.NewIndex) =[txt-color=#0000f0] CInt([/txt-color]r([Ô]codigo[Ô])[txt-color=#0000f0])[/txt-color]
WEBIER 15/09/2014 12:05:11
#441222
Citação:

:
tente alterar isto

cboDescricao.ItemData(cboDescricao.NewIndex) =[txt-color=#0000f0] CInt([/txt-color]r([Ô]codigo[Ô])[txt-color=#0000f0])[/txt-color]



dar o erro overflow
OMAR2011 15/09/2014 12:24:04
#441223
Em primeiro lugar mostre como esta abrindo seu banco de dados.

Dim sSQL As String
Dim r As ADODB.Recordset [ô] [txt-color=#e80000]Isto aqui é Ado[/txt-color] Dim var_cboTexto As String

sSQL = [Ô]SELECT DISTINCT descricao, codigo, fabricante, tamanho FROM produtos ORDER BY descricao;[Ô]
Set r = dbData.OpenRecordset(sSQL) [ô] [txt-color=#e80000]Isto é Dao[/txt-color]Não vai dar certo
WEBIER 15/09/2014 12:35:29
#441224
Estou usando um banco de dado SQL Server
MARCELO.TREZE 15/09/2014 13:04:28
#441225
qual é o numero que esta armazenado no banco, pois o overlow se dara quando o campo código armazenar um numero tipo 24567890309
WEBIER 15/09/2014 13:28:42
#441226
o campo codigo possui 33.000 registro que vai do 1 até 33000
e o campo descrição somente texto...
FFCOUTO 15/09/2014 15:34:38
#441231
Webier, a lista só comporta 32767 itens que é o tamanho de um Integer.
Você terá de criar um filtro para listar uma quantidade menor. Não tem outra saída.
Abraços,
MARCELO.TREZE 15/09/2014 19:18:57
#441241
é isso mesmo você está preenchendo o combo com 33.000 registros?
Tópico encerrado , respostas não são mais permitidas