Ir para conteúdo
Fórum Script Brasil
  • 0

Pesquisar no Data Grid


Almarante

Pergunta

Oi Pessoal Dando uma olhada no forum, vi um tópico " Selecionar no BD com aplicativo VB6 usando letras iniciais"

Então tentei fazer conforme Codigo Abaixo, mas eu só sei programar da forma que está ai. Bom deu erro na linha do data grid

no addItem"METODO OU MEMBRO DE DADOS NÃO ENCONTRADO"

Não sei se dá certo com o data grid, se der me ajudem!

Private Sub txtpesquisa_Change()
X = Len(txtpesquisa.text)
AdoClientes.ConnectionString = "Provider=Microsoft.jet.OLEDB.4.0;Data Source=" & stCaminhoBD
AdoClientes.RecordSource = "select * from Clientes WHERE MID(Nome,0,x)='" & Mid(txtpesquisa.text, 0, X) & "'"
AdoClientes.Refresh
AdoClientes.Recordset.Filter = "Tipo = " & 1
Do While AdoClientes.Recordset.EOF = False
DataGrid1.AddItem
AdoClientes.Recordset = cbopesquisa.text
AdoClientes.Recordset.MoveNext
Loop
End Sub

txtpesquisa é onde digita o nome a serpesquisado

cbopesquisa éonde escolhe a coluna que quer pesquisar.

Link para o comentário
Compartilhar em outros sites

7 respostass a esta questão

Posts Recomendados

  • 0

hum, mas o q você queria fazer com essa linha do AddItem()?? acho q você pegou o exemplo do outro tópico ne?? mas aquilo era pra listbox, se você quer setar os dados no datagrid, deve ser só assim:

Set DataGrid1.DataSource = AdoCliente.Recordset

nem precisa de while.

e quanto ao cbopesquisa, ele vai guardar o nome da coluna?? se for isso, você teria q usa-lo na hora de fazer o select.

mas teria q ficar de olho, pois se você tentar Mid() em campo numerico, acho q ele deve dar erro (em se tratando de access, talvez ele faca a conversao automatica. não tenho certeza, mas ainda assim, deve ficar estrando Mid() em numero).

fora isso, em vez de Mid(), o mais legal nesse caso é usar o Like (como tb comentei no outro tópico), porque o Like deve realizar muito menos operacoes do q o Mid() (ou seja, vai selecionar rapido, ganhando tempo quando você for mexer com bancos bem gdes).

Link para o comentário
Compartilhar em outros sites

  • 0

Olá Almarante !

Óia eu aqui :rolleyes:

Seguinte...para te ajudar, seria bom e importante você dizer o que deseja fazer...pois naquela ocasião eu estava querendo filtrar os dados do banco por "Datas"...e estava fazendo da maneira errada :blush: ... pois estava "capturando" o inicio de cada consulta, tipo, somente os 5 primeiros caractéres:

Valor = Mid(Text1.Text , 1, 5)  ' só para ilustrar
Outra coisa...se você está a fazer uma busca, não faça no Grid, e sim no banco de dados com script's SQL (SELECT, WHERE, BETWEEN... e por aí vai :closedeyes: ), entaõ pode-se usar o Grid para apresentar o resultado...assim como uma ListBox ou outros objetos. Então, esquecendo o script que você postou, informe-nos que tipo de consulta você quer fazer para assim nós podermos te ajudar :D Só lembrando, que na medida do possível, pois também estou iniciando, mas gosto de compartilhar o que aprendí ( já que 60% de minha dúvidas são sanadas aqui :blush: ). Mais uma coisinha...só para teste...coloca estas duas linhas nesse script que você postou...
Filtro = txtpesquisa.Text & "%"
AdoClientes.RecordSource = "select * from Clientes WHERE Nome LIKE '" & Filtro & "'"
Coloque no lugar de:
AdoClientes.RecordSource = "select * from Clientes WHERE MID(Nome,0,x)='" & Mid(txtpesquisa.text, 0, X) & "'"

Entre a "AdoClientes.ConnectionString" e o "AdoClientes.Refresh"...e comente o que deu ;)

Té mais !

Link para o comentário
Compartilhar em outros sites

  • 0
Mais uma coisinha...só para teste...coloca estas duas linhas nesse script que você postou...

Filtro = txtpesquisa.Text & "%"
AdoClientes.RecordSource = "select * from Clientes WHERE Nome LIKE '" & Filtro & "'"[/code] mas se for access, o caractere curinga tem q ser "*" e não "%", certo?? EDITADO: e aquela linha q eu passei era pra colocar no lugar de:
[code]Do While AdoClientes.Recordset.EOF = False
DataGrid1.AddItem
AdoClientes.Recordset = cbopesquisa.text
AdoClientes.Recordset.MoveNext
Loop

Editado por kuroi
Link para o comentário
Compartilhar em outros sites

  • 0

Kuroi ! é estranho mesmo...aqui testei com "%" e "*" no Access e funfou legal :blink:

agora no SQL só foi com o "*" :rolleyes:

Vai entender...

é como dizem..."Se feder é química, se mexer-se é biologia...se calcula-se é matemática...mas se não feder, mexer ou calcular-se...é informática ! "

Coisa de louco :wacko:

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,5k
×
×
  • Criar Novo...