PESQUISA SQL, ENCONTRAR QUALQUER PALAVRA NO CAMPO
Preciso de uma ajudinha para fazer uma consulta sql que procure em um campo especÃfico a palavra buscada.
Por exemplo:
no banco de dados access existe um campo chamado [Ô]Pedido[Ô], nesse campo podem existir vários itens como [Ô]1-chave de fenda,3-martelo,1-alicate[Ô] ou seja, são os pedidos do cliente.
O que preciso é que no momento que buscar [Ô]alicate[Ô] a pesquisa retorne todos os clientes que compraram alicate.
Estou tentando dessa forma, mas não retorna nada na consulta.
If Text1 <> [Ô][Ô] Then
Data1.Recordset.FindFirst [Ô]Pedido =[ô][Ô] & (Text1.Text) & [Ô][ô][Ô]
If Data1.Recordset.NoMatch = True Then
MsgBox [Ô]NÃO ENCONTRADO[Ô], vbCritical + vbOKOnly, [Ô]Codigo invalido[Ô]
Text1.SetFocus
Exit Sub
Else
Text2.Text = Data1.Recordset([Ô]Cliente[Ô])
Text1.Text = Data1.Recordset([Ô]Pedido[Ô])
Text3.Text = Data1.Recordset([Ô]Data[Ô])
List1.AddItem Text1.Text & Text2.Text & Text3.Text
Exit Sub
End If
End If
Obrigado.
Por exemplo:
no banco de dados access existe um campo chamado [Ô]Pedido[Ô], nesse campo podem existir vários itens como [Ô]1-chave de fenda,3-martelo,1-alicate[Ô] ou seja, são os pedidos do cliente.
O que preciso é que no momento que buscar [Ô]alicate[Ô] a pesquisa retorne todos os clientes que compraram alicate.
Estou tentando dessa forma, mas não retorna nada na consulta.
If Text1 <> [Ô][Ô] Then
Data1.Recordset.FindFirst [Ô]Pedido =[ô][Ô] & (Text1.Text) & [Ô][ô][Ô]
If Data1.Recordset.NoMatch = True Then
MsgBox [Ô]NÃO ENCONTRADO[Ô], vbCritical + vbOKOnly, [Ô]Codigo invalido[Ô]
Text1.SetFocus
Exit Sub
Else
Text2.Text = Data1.Recordset([Ô]Cliente[Ô])
Text1.Text = Data1.Recordset([Ô]Pedido[Ô])
Text3.Text = Data1.Recordset([Ô]Data[Ô])
List1.AddItem Text1.Text & Text2.Text & Text3.Text
Exit Sub
End If
End If
Obrigado.
objeto DataContro colega, num faz isso com gente não e nem com você.
colega faça uma conexao com ado usando query vai ser melhor.
mas seria assim
trocar
por
colega faça uma conexao com ado usando query vai ser melhor.
mas seria assim
trocar
Data1.Recordset.FindFirst [Ô]Pedido =[ô][Ô] & (Text1.Text) & [Ô][ô][Ô]
por
Data1.RecordSource = [Ô]SELECT * FROM tabela WHERE pedido=[ô][Ô] & (Text1.Text) & [Ô][ô][Ô]
Obrigado Marcelo, mas ainda não retorna nada. Acabei modificando a consulta, agora está assim:
Data1.RecordSource = [Ô]SELECT * FROM tabela1 WHERE pedido=[ô][Ô] & (Text1.Text) & [Ô]*[ô][Ô]
Data1.Refresh
Do Until Data1.Recordset.EOF
List1.AddItem Data1.Recordset([Ô]pedido[Ô])
Data1.Recordset.MoveNext
Loop
Contudo ainda não está funcionando.
Esse é um código fonte antigo que estou dando uma mexida, tem objeto data aos montes, no momento tenho que acabar usando como está.
Data1.RecordSource = [Ô]SELECT * FROM tabela1 WHERE pedido=[ô][Ô] & (Text1.Text) & [Ô]*[ô][Ô]
Data1.Refresh
Do Until Data1.Recordset.EOF
List1.AddItem Data1.Recordset([Ô]pedido[Ô])
Data1.Recordset.MoveNext
Loop
Contudo ainda não está funcionando.
Esse é um código fonte antigo que estou dando uma mexida, tem objeto data aos montes, no momento tenho que acabar usando como está.
Tire o asterisco (*) da consulta, se você desejar pesquisar por parte da palavra
use o like com %
ex:
porém tente antes o código como postado abaixo
use o like com %
ex:
Data1.RecordSource = [Ô]SELECT * FROM tabela1 WHERE pedido LIKE [ô][Ô] & (Text1.Text) & [Ô]%[ô][Ô]
porém tente antes o código como postado abaixo
Data1.RecordSource = [Ô]SELECT * FROM tabela1 WHERE pedido=[ô][Ô] & (Text1.Text) & [Ô][ô][Ô]
Data1.Recordset.MoveFirst
Do Until Data1.Recordset.EOF
List1.AddItem Data1.Recordset([Ô]pedido[Ô])
Data1.Recordset.MoveNext
Loop
Deve está usando Access.
Vamos lá.
Não especificou se o campo da tabela [txt-color=#e80000]PEDIDO[/txt-color] é número ou texto.
Para número.
Data1.RecordSource = [Ô]SELECT * FROM tabela1 WHERE pedido=[Ô] & (Text1.Text) & [Ô][Ô]
Para texto.
Data1.RecordSource = [Ô]SELECT * FROM tabela1 WHERE pedido=[ô][Ô] & (Text1.Text) & [Ô][ô][Ô]
Pode ser esse detalhe.
Tente.
Valeu.
Vamos lá.
Não especificou se o campo da tabela [txt-color=#e80000]PEDIDO[/txt-color] é número ou texto.
Para número.
Data1.RecordSource = [Ô]SELECT * FROM tabela1 WHERE pedido=[Ô] & (Text1.Text) & [Ô][Ô]
Para texto.
Data1.RecordSource = [Ô]SELECT * FROM tabela1 WHERE pedido=[ô][Ô] & (Text1.Text) & [Ô][ô][Ô]
Pode ser esse detalhe.
Tente.
Valeu.
Sinceramente se você tem um campo texto e nele salvou todos os itens do pedido separados por vÃrgula e pior ainda, aparentemente com a quantidade junto separado por um traço, então eu diria que você começou muito errado.
A primeiro coisa que você precisa ai é se livrar deste campo e criar uma nova tabela para receber os itens do pedido, afinal se você tem um banco de dados relacional você deve usar ele da forma correta.
A primeiro coisa que você precisa ai é se livrar deste campo e criar uma nova tabela para receber os itens do pedido, afinal se você tem um banco de dados relacional você deve usar ele da forma correta.
Blackpic,
Se você deseja encontrar a palavra em qualquer lugar do campo, use o LIKE e também com o sÃmbolo de % dos dois lados Textbox, ex:
Se você deseja encontrar a palavra em qualquer lugar do campo, use o LIKE e também com o sÃmbolo de % dos dois lados Textbox, ex:
[Ô]SELECT NOME FROM PESSOAS WHERE NOME LIKE [ô]%[Ô] & Text1.Text & [Ô]%[ô][Ô]
Estive fora uns dias por isso acabei não respondendo ao tópico. Agradeço a todos que se interessaram em me ajudar até agora.
Como o colega OCELOT falou eu acabei esbarrando em um erro que deveria ter sido analisado antes.
O que está acontecendo é que tenho várias text[ô]s que são agrupadas e mostradas em outra text. Justamente nessa text é que estou tentando fazer a busca. Vou tentar de outro modo.
Obrigado outra vez.
Abraço.
Como o colega OCELOT falou eu acabei esbarrando em um erro que deveria ter sido analisado antes.
O que está acontecendo é que tenho várias text[ô]s que são agrupadas e mostradas em outra text. Justamente nessa text é que estou tentando fazer a busca. Vou tentar de outro modo.
Obrigado outra vez.
Abraço.
Tópico encerrado , respostas não são mais permitidas