COMBOBOX ITEMDATA - PROBLEMA

 Tópico anterior Próximo tópico Novo tópico

COMBOBOX ITEMDATA - PROBLEMA

VB / VBA

 Compartilhe  Compartilhe  Compartilhe
#484597 - 24/09/2018 09:57:14

WESLEYWWS
LAVRAS
Cadast. em:Junho/2009


Citação:
:
WESLEYWWS o problema pode estar no momento em que vc pega o valor do itemdata do combo, darei um exemplo do que aconteceu comigo a  muito tempo, lembro pq fiquei um tempão procurando, porque eu tinha vários combos que se carregavam com dados do banco e todos estavam corretos e em apenas um estava dando o problema e fiquei procurando o que estava de errado com o código.

Para preencher o meu combo
    CboCliente.Clear
    CboCliente.AddItem ""
    While Not Rs.EOF
        CboCliente.AddItem Rs(1)
        CboCliente.ItemData(CboCliente.NewIndex) = Rs(0)
        Rs.MoveNext
    Wend

pegar o valor do itemdata
correto:    TxtCodCliente.Text = CboCliente.ItemData(CboCliente.ListIndex)
errado:    TxtCodCliente.Text = CboCliente.ItemData(CboCliente.Text) ' era como que estava o meu código e ai vinha tudo zero


Depois disso aprendi a criar uma função única para preencher combo e o problema acabou rsrsrs

Más o seu problema pode ser algo assim, no momento de pegar o valor do itemdata do seu combo

E também vale sempre olhar, td bem que vc já disse que mudou, a propriedade do itemdata do combo e se certifique que não esteja zerada para os itens, pois a medida que a gente coloca algum item na list, ele cria o valor do itemdata = 0 para esse item, talvez vc tenha alterado somente os valores acima de 9 ou algo assim, más como comentei é só para ver


Se popular o ComboBox dinamicamente via código, funciona sem problemas, pois sempre utilizo o ListIndex para percorrer os itens do ComboBox

Uma coisa que notei é o seguinte:

Tenho vários ComboBox no sistema cujo ItemData tem valores de 1 a 9 e eles não dão problema. Acontece que se eu abrir eles e visualizar os valores do ItemData, ao executar a aplicação, aquele comboBox passa a dar problema, ou seja, o problema só ocorrer se eu abrir o ItemData. Não precisa nem alterar nada, só de abrir, ele zera os itens cujo valor enta entre 1 e 10.

Isto me levou a crer em algum problema com a IDE do VB6 ou algum plugin instalado. Já removi tudo, reinstalei o VB6 e nada!



#484599 - 24/09/2018 15:40:00

ALVAROVB2009
GUARULHOS
Cadast. em:Maio/2009


Então esse é o problema que cometei
"a propriedade do itemdata do combo e se certifique que não esteja zerada para os itens, pois a medida que a gente coloca algum item na list, ele cria o valor do itemdata = 0 para esse item"  

Procure alterar o valor zerado do itemdata e colocar os valores desejados por vc, igual o list, vc colocar o que quer
Más o que vc poderia fazer mesmo, era sempre carregar os combos via sistema, nada de deixar eles vindo carregados, isso evita uma dor de cabeça no futuro, igual a que vc esta tendo


Teoria é quando se sabe tudo, e nada funciona. Prática e quando tudo funciona e ninguém sabe porque.
"Aquele que quer aprender gosta que lhe digam quando esta errado;
só o tolo não gosta de ser corrigido -"Prov.12:1


#484610 - 25/09/2018 10:22:37

WESLEYWWS
LAVRAS
Cadast. em:Junho/2009


Citação:
:
Então esse é o problema que cometei
"a propriedade do itemdata do combo e se certifique que não esteja zerada para os itens, pois a medida que a gente coloca algum item na list, ele cria o valor do itemdata = 0 para esse item"  

Procure alterar o valor zerado do itemdata e colocar os valores desejados por vc, igual o list, vc colocar o que quer
Más o que vc poderia fazer mesmo, era sempre carregar os combos via sistema, nada de deixar eles vindo carregados, isso evita uma dor de cabeça no futuro, igual a que vc esta tendo


Este foi o primeiro teste que fiz quando detectei o problema. Pode setar os valores nos itens que estão zerados, que mesmo assim, ele insiste em continuar como zero.



#484725 - 01/10/2018 22:08:59

ALVAROVB2009
GUARULHOS
Cadast. em:Maio/2009


Conseguiu resolver???

Caso não
Já tentou alimentar o combo no carregamento do form?

    CboCliente.Clear
    CboCliente.AddItem ""
    While Not Rs.EOF
        CboCliente.AddItem "Janeiro"
        CboCliente.ItemData(CboCliente.NewIndex) =1
        CboCliente.AddItem "Fevereiro"
        CboCliente.ItemData(CboCliente.NewIndex) =2
        CboCliente.AddItem "Março"
        CboCliente.ItemData(CboCliente.NewIndex) =3
.
.
.
.
    Wend

Com isso pode ter o controle de onde se carrega e ai talvez achar onde ele poder estar carregando o combo e zerando o itemdata

Vc poderia criar uma função onde carregaria todos os combos e ai deixaria tudo localizado em um módulo,

Teoria é quando se sabe tudo, e nada funciona. Prática e quando tudo funciona e ninguém sabe porque.
"Aquele que quer aprender gosta que lhe digam quando esta errado;
só o tolo não gosta de ser corrigido -"Prov.12:1


#484736 - 02/10/2018 14:11:30

WESLEYWWS
LAVRAS
Cadast. em:Junho/2009


Citação:
:
Conseguiu resolver???

Caso não
Já tentou alimentar o combo no carregamento do form?

    CboCliente.Clear
    CboCliente.AddItem ""
    While Not Rs.EOF
        CboCliente.AddItem "Janeiro"
        CboCliente.ItemData(CboCliente.NewIndex) =1
        CboCliente.AddItem "Fevereiro"
        CboCliente.ItemData(CboCliente.NewIndex) =2
        CboCliente.AddItem "Março"
        CboCliente.ItemData(CboCliente.NewIndex) =3
.
.
.
.
    Wend

Com isso pode ter o controle de onde se carrega e ai talvez achar onde ele poder estar carregando o combo e zerando o itemdata

Vc poderia criar uma função onde carregaria todos os combos e ai deixaria tudo localizado em um módulo,


Carregar o combo dinamicamente via código funciona, sem nenhum problema. Tenho vários assim no sistema. Minha implicação é justamente com estes que estão com valores fixos já pre-definidos.



 Tópico anterior Próximo tópico Novo tópico


Para responder este tópico o login é requerido
Se você já possui uma conta de usuário por favor faça seu login
Se você não possui uma conta de usuário use a opção Criar usuário