AJUDA COM PREENCHIMENTO DE LIST

SACOFRITO 20/07/2010 11:27:06
#347899
Bom dia galera, preciso montar uma tela de pesquisa de produtos
Tenho uma text box e quero pegar oq for digitado nela, e ao clique pesquisar preencher list buscando a palavra que foi d igitada na tabela produto.

Oque ja fiz foi o seguinte

Private Sub txtDescricao_KeyPress(KeyAscii As Integer)
Dim varDesc As Integer

If KeyAscii = 39 Then KeyAscii = 0
If KeyAscii = 27 Then
op = MsgBox([Ô]DESEJA REALMENTE SAIR?[Ô], vbYesNo, [Ô]ATENÇÃO![Ô])
If op = vbYes Then
Unload Me
Else
Exit Sub
End If
End If
If KeyAscii = 13 Then
varDesc = Len(txtDescricao)
rsproduto.FindFirst Left(rsproduto!descricao, varDesc)
If Not rsproduto.NoMatch Then
enchelist
Else
MsgBox ([Ô]Lista de produtos não encontrado.[Ô] & Chr(10) & [Ô]Verifique se ele foi digitado corretamente!![Ô])

End If

End If
End Sub

Function enchelist()

List1.Clear
Do While Not rsproduto.EOF


Loop



Estou no caminho certo?
Como faço para terminar o preenchimento e a busca pela palavra dentro da descricao

Obrigado
EDERMIR 20/07/2010 21:39:00
#347987
Resposta escolhida
Sim o caminho é esse mas tem [Ô]atalhos[Ô].

utilize comando SQL para o preenchimento do recordset:
rsproduto.open [Ô]select * from tabela where descricao LIKE [ô]%[Ô] & text1.text & [Ô][ô][Ô]

Depois basta povoar seu list com o resultado.
SACOFRITO 21/07/2010 08:24:41
#348002
Obrigado pela a juda Edermir
ontem msm consegui uma ajuda com a instrução [Ô]like[Ô]
mas usei da seguitne forma


Function enchelist()
Set listproduto = db.OpenRecordset([Ô]SELECT * FROM produto WHERE DESCRICAO LIKE [ô]*[Ô] & txtDescricao & [Ô]*[ô] ORDER BY DESCRICAO[Ô], dbOpenDynaset)
List1.ListItems.Clear
Dim Item As ListItem
Do While Not listproduto.EOF

Set Item = List1.ListItems.Add

Item.Text = listproduto!codigo
[ô] SNCLIENTES.FindFirst [Ô]codigo =[Ô] & enche!CODCLI
Item.SubItems(1) = listproduto!DESCRICAO
Item.SubItems(2) = IIf(IsNull(listproduto!Modelo), [Ô][Ô], listproduto!Modelo)
Item.SubItems(3) = listproduto!precovenda
Item.SubItems(4) = IIf(IsNull(listproduto!ESTOQUE), 0, listproduto!ESTOQUE)
listproduto.MoveNext
Loop



End Function


Não i mporta oq tem antes ou depois

vlw
MARCELO.TREZE 21/07/2010 08:33:51
#348003
Pergunta vc está usando ADO ou DAO?
SACOFRITO 21/07/2010 11:55:36
#348027
Uso DAO
MARCELO.TREZE 21/07/2010 13:15:46
#348040
tente assim colega

Private Sub txtDescricao_KeyPress(KeyAscii As Integer)
Busca = [Ô]descricao like[ô][Ô] & txtDescricao.Text & [Ô]*[ô][Ô]
ListView1.ListItems.Clear [ô] limpa o list view para a nova pesquisa
REG_arq.FindFirst busca [ô] move para o primeiro registro
Do While REG_arq.NoMatch = False [ô]enquanto ele encontrar registros (NoMatch=False)
Set item = ListView1.ListItems.Add(, , lstproduto([Ô]codigo[Ô])) [ô] aqui sempre será o primeiro registro a ser exibido
Item.SubItems(1) = listproduto([Ô]descricao[Ô])
Item.SubItems(2) = IIf(IsNull(listproduto([Ô]Modelo[Ô])), [Ô][Ô], listproduto!Modelo)
Item.SubItems(3) = listproduto([Ô]precovenda[Ô])
Item.SubItems(4) = IIf(IsNull(listproduto([Ô]ESTOQUE[Ô])), 0, listproduto!ESTOQUE)
REG_arq.FindNext busca
LoopEnd Sub


SACOFRITO 21/07/2010 13:45:01
#348043
Ah, desculpe por nao fechar o tópico, Obrigado Marcelo, mas como postei logo ali em cima, ja consegui terminar esse form. a função enchelist está postada logo acima..
e qual função aqui do site eu faço para postar o código dessa maneira que voce postou?


obrigado
MARCELO.TREZE 21/07/2010 13:56:48
#348044
colega no quadro de resposta basta vc selecionar to do código e clicar no [Ô]C[Ô] que aparece no canto direito au lado de bold, italico, etc
SACOFRITO 21/07/2010 16:31:09
#348059
Obrigado, da proxima vez irei usar rs
Tópico encerrado , respostas não são mais permitidas