PREENCHER COMBOBOX
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.
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.
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?
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
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
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
vlw
Não amigo. Ele não tá gerando uma exceção. Eu tirei o foco do controle e continua do mesmo jeito.
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
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
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
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
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
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
Favor, encerrar o tópico e não esqueça de pontuar quem lhe ajudou.
vlw
vlw
Tópico encerrado , respostas não são mais permitidas