SISTEMA DE BUSCA DE PRODUTOS MAIS RAPIDO
Pessoal, tenho um PDV...
Nele tem um Textbox.... chamando txtCodBarra... o cursor fica ficando nele... quando passo algum produto no leitor que ler o codigo é exibido no textbox... ai é automaticamente adicionado na lista de produtos.... TUDO NORMAL PARA UM PDV
Quando o produto não tem Cod. de Barra... o usuario aperta F2 e é aberto um outro form com todos os produtos cadastrados... apos ele digitar as INICIAS do nome do produto o grid filta e mostrar somente os produtos que contenha aquelas inicias... achando o q queria, pressiono ENTER e seleciono o produto... Voltando assim para a tela anterior e adicionando o produto na LISTA DE PRODUTOS.
pois bem! TUDO FUNCIONANDO!
agora tô querendo uma forma mais rapida para buscar os produtos sem COD. BARRA sem ter que carregar outro form com todos os produtos...
Queria algo estilo GOOGLE...
no textbox quando eu digitasse, por exemplo AÇUCAR, baixo do texte aparecesse todos os nomes q tivesse AÇUCAR em alguma parte. exemplo:
AÇUCAR:
[txt-color=#e80000]Açucar [/txt-color]Cristal Refinado
Biscoito Recheiado com [txt-color=#e80000]Açucar[/txt-color]
Adoçante sem [txt-color=#e80000]Açucar [/txt-color]Royal
como eu faria isso?
Nele tem um Textbox.... chamando txtCodBarra... o cursor fica ficando nele... quando passo algum produto no leitor que ler o codigo é exibido no textbox... ai é automaticamente adicionado na lista de produtos.... TUDO NORMAL PARA UM PDV
Quando o produto não tem Cod. de Barra... o usuario aperta F2 e é aberto um outro form com todos os produtos cadastrados... apos ele digitar as INICIAS do nome do produto o grid filta e mostrar somente os produtos que contenha aquelas inicias... achando o q queria, pressiono ENTER e seleciono o produto... Voltando assim para a tela anterior e adicionando o produto na LISTA DE PRODUTOS.
pois bem! TUDO FUNCIONANDO!
agora tô querendo uma forma mais rapida para buscar os produtos sem COD. BARRA sem ter que carregar outro form com todos os produtos...
Queria algo estilo GOOGLE...
no textbox quando eu digitasse, por exemplo AÇUCAR, baixo do texte aparecesse todos os nomes q tivesse AÇUCAR em alguma parte. exemplo:
AÇUCAR:
[txt-color=#e80000]Açucar [/txt-color]Cristal Refinado
Biscoito Recheiado com [txt-color=#e80000]Açucar[/txt-color]
Adoçante sem [txt-color=#e80000]Açucar [/txt-color]Royal
como eu faria isso?
Bom dia WEBIER
Isso você consegue atráves de uma consulta SQL.
tbProduto é o nome da Tabela de Produtos
Descricao é o nomem do Campo que contém a descrição do produto
Foram nomes que eu criei ...
Isso você consegue atráves de uma consulta SQL.
[Ô]SELECT * FROM tbProduto WHERE Descricao LIKE %[Ô] & txtDescricao.Text & [Ô]% ORDER BY Descricao[Ô]
tbProduto é o nome da Tabela de Produtos
Descricao é o nomem do Campo que contém a descrição do produto
Foram nomes que eu criei ...
Usando comandos parametrizados ao invés de queries concatenadas, também vai ter um ganho de performance.
bom não sei se ajuda, mas eu trocaria o Text por um combo ou list. e colocaria uma select de busca pelo que foi digitado no proprio controle , no evento keypress do controle
dessa forma ficaria:
dessa forma toda vez que vc digitar uma nova letra ele filtra novamente no banco e atualiza a combo com os dados, acho que assim ficaria bem mais pratico e rapido
espero ter ajudado...
abraço
ou se preferir fazer a busca somente quando terminar de digitar a palavra inteira e precionar o enter ficaria assim:
qualquer coisa poste ai a duvida
dessa forma ficaria:
Private Sub Combo1_KeyPress(KeyAscii As Integer)
Var1 = Combo1.Text [ô]salva o que vc ja digitou na combo antes de dar o clear
Combo1.Clear
SQL = [Ô]SELECT NOME FROM CAD_PRODUTOS WHERE NOME Like [ô][Ô] & Mid(Comto1.Text) & [Ô]*[ô][Ô]
Set RS = Conexao.Execute(SQL)
Do While Not RS.EOF
Combo1.AddItem RS([Ô]NOME[Ô]) [ô]preenche a combo com os dados da busca
RS.MoveNext
Loop
Combo1.Text = Var1 [ô] devolve para a combo o que ja tinha digitado antes
SendKeys [Ô]{F4}[Ô] [ô] abre altomaticamente a combo depois de carregados os dados.
End Sub
dessa forma toda vez que vc digitar uma nova letra ele filtra novamente no banco e atualiza a combo com os dados, acho que assim ficaria bem mais pratico e rapido
espero ter ajudado...
abraço
ou se preferir fazer a busca somente quando terminar de digitar a palavra inteira e precionar o enter ficaria assim:
Private Sub Combo1_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then [ô] Verifica se foi precionado o ENTER
Var1 = Combo1.Text [ô]salva o que vc ja digitou na combo antes de dar o clear
Combo1.Clear
SQL = [Ô]SELECT NOME FROM CAD_PRODUTOS WHERE NOME Like [ô][Ô] & Mid(Comto1.Text) & [Ô]*[ô][Ô]
Set RS = Conexao.Execute(SQL)
Do While Not RS.EOF
Combo1.AddItem RS([Ô]NOME[Ô]) [ô]preenche a combo com os dados da busca
RS.MoveNext
Loop
Combo1.Text = Var1 [ô] devolve para a combo o que ja tinha digitado antes
SendKeys [Ô]{F4}[Ô] [ô] abre altomaticamente a combo depois de carregados os dados.
KeyAscii = 0 [ô] anula o beep que é emitido ao precionar o enter
Else
End If
End Sub
qualquer coisa poste ai a duvida
wieber, as dicas acima irão resolver o problema, porém a forma que esta usando é a correta, na realidade o ideal seria não haver produtos sem código de barras, não sem qual estabelecimento comercial está utilizando seu prog mas instrua a pessoa a criar códigos para produtos que não possuem código de barras, exemplo pães, bolos, etc
Pessoal obrigado pelas consultas...
Mas tipo, que objeto eu uso estilo pesquisa no google... quando vc digita lá aparece tipo combobox.... aparece abaixo as alternativas... como faço aquele estilo de exibição (conforme a imagem)
Mas tipo, que objeto eu uso estilo pesquisa no google... quando vc digita lá aparece tipo combobox.... aparece abaixo as alternativas... como faço aquele estilo de exibição (conforme a imagem)
Alguem ai?
Uma outra forma seria posicionar uma listbox invisivel embaixo de uma textbox, quando o usuario estiver digitando na textbox ela fica visivel com os resultados da pesquisa, o usuario saiu da texbox torna a oculta-la de novo.
Usa o autocomplete da combobox...
Tem uma propriedade chamada [Ô]AutoCompleteMode[Ô] alterar para Suggest.
Tem uma propriedade chamada [Ô]AutoCompleteMode[Ô] alterar para Suggest.
Tópico encerrado , respostas não são mais permitidas