PREENCHER COMBOBOX

LOPESKUTI 08/08/2012 17:44:04
#407525
Olá a todos. Estou fazendo uma aplicação que irá controlar os visitantes de um evento.

Preciso criar um combobox onde conforme eu digito ele me mostra uma lista com todas as pessoas que comecem o nome com aquela letra:
Por exemplo: digito F e ele me lista todos que começam com F.

Estou tendo problemas com o seguinte código.

Private Sub Pesquisar()
Try
Dim pesquisa As DataTable = AcessoDB.ExecuteDataSet(String.Format([Ô]SELECT * FROM PESS WHERE PESS_NM LIKE [ô]{0}%[ô] [Ô], nomeComboBox.Text.Replace([Ô][ô][Ô], [Ô][ô][ô][Ô]))).Tables(0)

nomeComboBox.ValueMember = pesquisa.Rows(0)([Ô]PESS_NS[Ô])
nomeComboBox.DisplayMember = pesquisa.Rows(0)([Ô]PESS_NM[Ô]).ToString
SendKeys.Send([Ô]{F4}[Ô])

Tabelas.Codigo = nomeComboBox.ValueMember
Tabelas.Nome = nomeComboBox.DisplayMember.ToString
Tabelas.Empresa = pesquisa.Rows(0)([Ô]PESS_EMPR[Ô]).ToString
Tabelas.Cargo = pesquisa.Rows(0)([Ô]PESS_CARGO[Ô]).ToString
Tabelas.Email = pesquisa.Rows(0)([Ô]PESS_EMAIL[Ô]).ToString

empresaTextBox.Text = Tabelas.Empresa
cargoTextBox.Text = Tabelas.Cargo
emailTextBox.Text = Tabelas.Email
Catch ex As Exception
MessageBox.Show(ex.Message)
If ex.Message.ToString.Contains([Ô]There is no row[Ô]) Then
nomeComboBox.ResetText()
empresaTextBox.ResetText()
cargoTextBox.ResetText()
emailTextBox.ResetText()
nomeComboBox.Focus()
End If
End Try
End Sub

Alguém pode me ajudar?
Obrigado.
KERPLUNK 08/08/2012 17:48:24
#407526
Amigo, [Ô]estou tendo problemas com o seguinte código: (Código)[Ô], isso não ajuda em quase nada. O que não está conseguindo fazer? Apresenta algum erro? Qual?
LOPESKUTI 08/08/2012 17:56:13
#407527
Nesse caso ele fica enviando F4 sem parar até eu clicar em alguma outra textbox.

meu problema é aqui:

nomeComboBox.ValueMember = pesquisa.Rows(0)([Ô]PESS_NS[Ô])
nomeComboBox.DisplayMember = pesquisa.Rows(0)([Ô]PESS_NM[Ô]).ToString
SendKeys.Send([Ô]{F4}[Ô])

preciso que ele apenas liste todas com a tecla que eu teclei e eu selecione o correto
JABA 08/08/2012 18:43:31
#407528
Resposta escolhida
Talvez a repetição esteja acontecendo porque se ocorrer um erro no codigo dentro do bloco try ele gera uma excecao e, dentro dessa excecao, você está mando o focu voltar para o controle --> nomeComboBox(). Faça uma depuração do código e veja se está gerando um exceção. Verifique se é isso, por favor?

vlw
LOPESKUTI 09/08/2012 08:52:07
#407551
Não amigo. Ele não tá gerando uma exceção. Eu tirei o foco do controle e continua do mesmo jeito.
JABA 09/08/2012 12:45:18
#407580
Ok.

Coloque ai o codigo que está chamando a funcao --> Sub Pesquisar() (provavelmente você está chamando essa funcao dentro de um TextChanged e assim deve estar entrando em conflito com o SendKeys.Send([Ô]{F4}[Ô])) e se possível, todos os eventos interligados com ele.

Não seria melhor você chamar esse --> SendKeys.Send([Ô]{F4}[Ô]) quando a pesquisa for realmente concluida? coloque no final do bloco try e verifique se o problema persiste.

vlw



LOPESKUTI 09/08/2012 17:50:38
#407604
O pessoal do evento mudou algumas coisas e eu recomecei do zero com o cuidado de fazer parte por parte... O meu problema continua no mesmo ponto, mas está diferente.
No load do formulário eu quero ler todas as empresas cadastradas, pra isso eu tenho uma tabela no sql com dois campos chamados [Ô]EMPR_NS (número sequencial)[Ô] e[Ô] EMPR_NM (nome da empresa)[Ô].
Vou colocar o código pra explicar melhor:

Try
Dim convidados As DataTable = AcessoDB.ExecuteDataSet([Ô]SELECT * FROM EMPR[Ô]).Tables(0)
empresaComboBox.DataSource = convidados
empresaComboBox.ValueMember = [Ô]EMPR_NS[Ô]
empresaComboBox.DisplayMember = [Ô]EMPR_NM[Ô]
Tabelas.EMPR_NS = empresaComboBox.ValueMember
Tabelas.EMPR_NM = empresaComboBox.DisplayMember
Catch ex As Exception
MessageBox.Show(ex.Message)

End Try

Só que ele tá me voltando a mensagem de erro dizendo que o valor string não pode ser convertido pra integer no valuemember.
O problema é que eu já usei tudo quanto é jeito de converter e mesmo assim não foi.

Vlw
LOPESKUTI 09/08/2012 17:59:58
#407606
Consegui, valeu.
Segue o código corrigido:

Try
Dim convidados As DataTable = AcessoDB.ExecuteDataSet([Ô]SELECT * FROM EMPR[Ô]).Tables(0)
empresaComboBox.DataSource = convidados
empresaComboBox.ValueMember = [Ô]EMPR_NS[Ô]
empresaComboBox.DisplayMember = [Ô]EMPR_NM[Ô]
Tabelas.EMPR_NM = empresaComboBox.Text
Tabelas.EMPR_NS = empresaComboBox.SelectedValue
Catch ex As Exception
MessageBox.Show(ex.Message)
End Try
Label1.Text = Tabelas.EMPR_NM
Label2.Text = Tabelas.EMPR_NS
End Sub
JABA 09/08/2012 18:14:37
#407609
Favor, encerrar o tópico e não esqueça de pontuar quem lhe ajudou.

vlw
Tópico encerrado , respostas não são mais permitidas