Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Dilson_José

Autocompletar um combobox VB 2010.

Recommended Posts

Como realizar a tarefa de Digitando o Código do Cliente por exemplo e a combo do Departamento ser preenchida de acordo com o código do mesmo contido na tabela do Cliente? Na prática: Cliente xxx tem o departamento yyyy em sua tabela, a combodepartamento preenchida no Load do Form de acordo com a sua tabela tbDepartamentos com a descrição do mesmo. Não estou conseguindo realizar tal tarefa no VB 2010.

 

No VB 6 tinhamos a propriedade Itemdata e NewIndex, e no VB 2010 o que tem que ser feito para realiza-la.

 

Obrigado!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você tem que fazer um SELECT no banco pegando todos os departamentos que aquele cliente possui é isso ? Pois foi isso que entendi, vou tentar explicar seguindo essa linha.

 

 

Primeiro você precisará fazer um SELECT no BD

OBS: Não sei se vai precisar fazer um INNER JOIN estou supondo que você tenha o código ou o nome do cliente cadastrado na tabela DEPARTAMENTO. DEVE ESTAR COM ALguNS ERROS NO CÓDIGO ACREDIto QUE NO DATAADAPTER, PORQUE EU FIZ DE CABEÇA MAS É POR AÍ SE ESTIVER COM ALGUM ERRO você RESPONDE E SE DER CERTO TAMBÉM hehehe

 

Public Function GeraTabela () as datatable

sql = "select NOMEDEPARTAMENTO from DEPARTAMENTO where CODIGODOCLIENTE = " & textboxcomcódigoounomedocliente.text

Dim objDA as new OleDB.DataAdapterConnect(sql,'AQUI VOCÊ COLOCA A VARIÁVEL OU A STRING DE CONEXÃO COM O BANCO')

DIm objDS as new DATASET

Dim objDT as new DATATABLE

 

objDA.fill(ObjDS)

objDT = objds.table(0)

return objDT

 

 

AGORA A FUNÇÃO DENTRO DO FORM no EVENTO LOAD

 

combobox.datasource = GeraTabela()

combobox.displayMember = "NOMEDEPARTAMENTO"

 

Pronto é isso aí, deste modo você vai alimentar o combo box com as informações dos departamento respectivo á aquele cliente.

qualquer dúvida no código você me avisa

 

abrçao

Compartilhar este post


Link para o post
Compartilhar em outros sites

Durbano bom dia! Seguinte eu usei isto:

 

If gCN.State = ConnectionState.Open Then gCN.Close()
gCN.Open()

gSQL = "Select * from tbGrupo where IdGrupo = " & lIdGrupo
gRS.Open(gSQL, gCN, 1, 2)

cboGrupo.SelectedIndex = cboGrupo.FindStringExact(gRS.Fields("Nome").Value)
Exit Sub

 

Eu usei Cliente e departamento hipoteticamente mas o correto era Grupo do Usuário, ok? Valeu pela sua valiosa dica,

 

Obrigado!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Beleza, agora quem está com a dúvida sou eu ...

gRS.Open(gSQL, gCN, 1, 2)

 

esse dois últimos parâmetro eu não entendi, seria o número das colunas ??

 

Pelo que eu lí esse FindStringExact retorna apenas o primeiro NOME

 

Do jeito que você colocou ele retorna todas as strings da coluna NOME e preenche no combo box podendo ser mais que um???

cboGrupo.SelectedIndex = cboGrupo.FindStringExact(gRS.Fields("Nome").Value)

 

 

Valeu !!

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.