Inquiridor
Problema com Campo para realizar pesquisa de dados

Pergunta
-
Criei um formulario de pesquisa que exibe os dados em uma listbox. Inseri no objeto caixa de texto uma forma de o usuario digitar o nome ou a inicial da pessoa, e somente os dados correspondentes a esse criterio serem exibidos na listbox.
Entretanto, não consigo fazer com que espaços sejam digitados na caixa de texto, ou seja, "Maria Aparecida" eu não consigo digitar e nem fazer a pesquisa.
No objeto texto inseri os seguintes codigos:
Private Sub Nomes_AfterUpdate()
ListadeNomes.Requery
End Sub
Private Sub Nomes_Change()
Me.Recalc
SendKeys "{F2}"
End Sub
no Listbox, na consulta inserio seguinte criterio:
Como [Forms]![FrmPEsquisa].[Nomes] & "*"
Funciona perfeitamente mas não aceita espaço.
Agradeço quem puder me ajudar.quinta-feira, 24 de setembro de 2009 19:44
Todas as Respostas
-
Tenta usar a função TRIM quando for fazer referência ao nome pesquisado...
Trim(Nomes)
Se solucionar marque como resposta...
Até..quarta-feira, 30 de setembro de 2009 20:35 -
Companheiro,
Não entendi como usar essa função no criterio da consulta acima. Como faço?
obrigado
quinta-feira, 1 de outubro de 2009 19:25 -
A função trim apenas remove os espaços do texto...
Porque você não faz assim..
No load do formulário ele carrega o campo nome da Tabela1 no list.....
E nas alterações que forem feitas no textbox ele filtra o list de acordo com o digitado....Private Sub Form_Load() Lista0.RowSource = "SELECT nome FROM Tabela1" End Sub
Qualquer dúvida post denovo..
Private Sub Texto2_Change() If Texto2.Text = "" Then Lista0.RowSource = "SELECT nome FROM Tabela1" Else Lista0.RowSource = "SELECT nome FROM Tabela1 WHERE nome Like '" & Texto2.Text & "*'" End If End Sub
Já testei aqui e tá funcionando..quinta-feira, 1 de outubro de 2009 20:46 -
Evangelista,
tentei implementar as alterações que vc postou. Elas permitem que eu digite no campo texto com espaço. Porém, o resultado (campo nomes) vai parar na coluna do ID, e o restante dos dados ficam em branco.Meu formulario de pesquisa é baseado numa consulta. Vc sabe o q pode ter acontecido.
E mais uma vez obrigado pela ajuda
sexta-feira, 2 de outubro de 2009 15:03 -
É porque no comando eu te passei puxa apenas uma coluna(no exemplo nome)
Faça assim para que todos os campos apareçam no list...lembrando que o list tem que ter o mesmo número de colunas que a tabela...
O * representa todos os campos...
Private Sub Form_Load()
Lista0.RowSource = "SELECT * FROM Consulta1"
End SubPrivate Sub Texto2_Change()
If Texto2.Text = "" Then
Lista0.RowSource = "SELECT * FROM Consulta1"
Else
Lista0.RowSource = "SELECT * FROM Consulta1 WHERE nome Like '" & Texto2.Text & "*'"
End If
End Sub
Ou especifique os campos que você quer que apareça..
Private Sub Form_Load()
Lista0.RowSource = "SELECT id,nome FROM Consulta1"
End SubPrivate Sub Texto2_Change()
If Texto2.Text = "" Then
Lista0.RowSource = "SELECT id,nome FROM Consulta1"
Else
Lista0.RowSource = "SELECT id,nome FROM Consulta1 WHERE nome Like '" & Texto2.Text & "*'"
End If
End Sub
Entendeu?
Se solucionar marque como resposta...sexta-feira, 2 de outubro de 2009 19:10 -
Deu certo sim. Ele permite que eu digita a condição com espaços. Entretanto, após digitar a condição eu não consigo atualizar a lista de novo. Havia inserido um botão para limpar com o seguinte codigo: Private Sub Comando2_Click()
Nomes.SetFocus
Nomes = Null
ListadeNomes.Requery
End Sub
Outra coisa, no where além do nome eu gostaria que ele me permita fazer o mesmo com outras colunas, mas não consegui criar uma estrutura de decisão correta. Ou, inserir uma caixa de combinação onde eu escolho qual coluna quero efetuar a pesquisa.
mas de qualquer forma muito obrigadoterça-feira, 13 de outubro de 2009 13:49