locked
Problema com Campo para realizar pesquisa de dados RRS feed

  • 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
    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
    Qualquer dúvida post denovo..
    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 Sub

    Private 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 Sub

    Private 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 obrigado
    terça-feira, 13 de outubro de 2009 13:49