none
Pesquisa datagrid filtrando duas ou mais colunas vb.net RRS feed

  • Pergunta



  • Tenho um datagrid como 5 colunas com 1000 registros.

    Pesquisar na conula2 e na coluna3 usando textbox1 e textbox2 onde:

    A pesquisa será verdadeira as duas strings da mesma linha forem iguais as dos textbos

    textbox1 pesquisa coluna2 e...

    textbox2 pesquisa coluna3

    Exemplo:

    Se o textbox1.text for igual a string da coluna dois e,

    o textbox2 for igual a string da coluna3 da mesma linha"cell"

    preenche o textbox3 com as strings da cell das duas colunas.

    Preciso desta pesquisa no meu projeto e não sei como fazer. Se alguém ai puder me ajudar...
    domingo, 13 de janeiro de 2013 00:32

Respostas

  • Public Class Form1
        Dim Lista1 As New AutoCompleteStringCollection
        Dim Lista2 As New AutoCompleteStringCollection
        Dim Lista3 As New AutoCompleteStringCollection
        Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
            TextBox1.AutoCompleteMode = AutoCompleteMode.Suggest
            TextBox1.AutoCompleteSource = AutoCompleteSource.CustomSource
            TextBox2.AutoCompleteMode = AutoCompleteMode.Suggest
            TextBox2.AutoCompleteSource = AutoCompleteSource.CustomSource
            TextBox3.AutoCompleteMode = AutoCompleteMode.Suggest
            TextBox3.AutoCompleteSource = AutoCompleteSource.CustomSource
            For i As Integer = 0 To DataGridView1.Rows.Count - 1
                Lista1.Add(DataGridView1.Rows(i).Cells(1).Value)
                Lista2.Add(DataGridView1.Rows(i).Cells(2).Value)
                If DataGridView1.Rows(i).Cells(1).Value = DataGridView1.Rows(i).Cells(2).Value Then
                    Lista3.Add(DataGridView1.Rows(i).Cells(1).Value)
                End If
            Next
            TextBox1.AutoCompleteCustomSource = Lista1
            TextBox2.AutoCompleteCustomSource = Lista2
            TextBox3.AutoCompleteCustomSource = Lista3
        End Sub
    End Class

    Feito e testado ;)  espero que ajude


    AleSaggiorato

    • Marcado como Resposta AAB D domingo, 13 de janeiro de 2013 15:05
    domingo, 13 de janeiro de 2013 10:02

Todas as Respostas

  • Public Class Form1
        Dim Lista1 As New AutoCompleteStringCollection
        Dim Lista2 As New AutoCompleteStringCollection
        Dim Lista3 As New AutoCompleteStringCollection
        Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
            TextBox1.AutoCompleteMode = AutoCompleteMode.Suggest
            TextBox1.AutoCompleteSource = AutoCompleteSource.CustomSource
            TextBox2.AutoCompleteMode = AutoCompleteMode.Suggest
            TextBox2.AutoCompleteSource = AutoCompleteSource.CustomSource
            TextBox3.AutoCompleteMode = AutoCompleteMode.Suggest
            TextBox3.AutoCompleteSource = AutoCompleteSource.CustomSource
            For i As Integer = 0 To DataGridView1.Rows.Count - 1
                Lista1.Add(DataGridView1.Rows(i).Cells(1).Value)
                Lista2.Add(DataGridView1.Rows(i).Cells(2).Value)
                If DataGridView1.Rows(i).Cells(1).Value = DataGridView1.Rows(i).Cells(2).Value Then
                    Lista3.Add(DataGridView1.Rows(i).Cells(1).Value)
                End If
            Next
            TextBox1.AutoCompleteCustomSource = Lista1
            TextBox2.AutoCompleteCustomSource = Lista2
            TextBox3.AutoCompleteCustomSource = Lista3
        End Sub
    End Class

    Feito e testado ;)  espero que ajude


    AleSaggiorato

    • Marcado como Resposta AAB D domingo, 13 de janeiro de 2013 15:05
    domingo, 13 de janeiro de 2013 10:02
  • Public Class Form1
        Dim Lista1 As New AutoCompleteStringCollection
        Dim Lista2 As New AutoCompleteStringCollection
        Dim Lista3 As New AutoCompleteStringCollection
        Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
            TextBox1.AutoCompleteMode = AutoCompleteMode.Suggest
            TextBox1.AutoCompleteSource = AutoCompleteSource.CustomSource
            TextBox2.AutoCompleteMode = AutoCompleteMode.Suggest
            TextBox2.AutoCompleteSource = AutoCompleteSource.CustomSource
            TextBox3.AutoCompleteMode = AutoCompleteMode.Suggest
            TextBox3.AutoCompleteSource = AutoCompleteSource.CustomSource
            For i As Integer = 0 To DataGridView1.Rows.Count - 1
                Lista1.Add(DataGridView1.Rows(i).Cells(1).Value)
                Lista2.Add(DataGridView1.Rows(i).Cells(2).Value)
                If DataGridView1.Rows(i).Cells(1).Value = DataGridView1.Rows(i).Cells(2).Value Then
                    Lista3.Add(DataGridView1.Rows(i).Cells(1).Value)
                End If
            Next
            TextBox1.AutoCompleteCustomSource = Lista1
            TextBox2.AutoCompleteCustomSource = Lista2
            TextBox3.AutoCompleteCustomSource = Lista3
        End Sub
    End Class

    Feito e testado ;)  espero que ajude


    AleSaggiorato

    Obrigado  AleSaggiorato pela ajuda.

    Conferir o teu código e vi que faltava algo na minha pergunta mais vc me ajudou muito.

    Confira abaixa o que o teu código revisado faz...

    Rem ele faz a comparação, e se for verdadeiro, pega o texto da "cell da coluna3 " e mostra na textbox3.text

            REM solsolvi assim...

            For i = 0 To DataGridView1.Rows.Count - 1
                If DataGridView1.Rows(i).Cells(1).Value = TextBox1.Text And DataGrid1.Rows(i).Cells(2).Value = TextBox2.Text Then
                    TextBox3.Text = DataGridView1.Rows(i).Cells(3).Value

                End If
            Next
    domingo, 13 de janeiro de 2013 15:06
  • Continuo com o mesmo proble.

    O código que postei ai eu testei num datagrid que criei e preenchi no form mesmo, dai a pesquisa funciona...mais quando preencho o datagrid com dados do banco.mdb não funciona, da erro.

    Alguem ai pode me ajudar em...porque que não estou conseguindo pesquisar em tres colunas do grid, e comparar as tres celunas se o conteúdo é igual quando o datagrid é preenchido com dados do banco.mdb.

    Já fiz um monte de reviravolta aqui e não consegui...


    • Editado AAB D terça-feira, 15 de janeiro de 2013 21:03
    terça-feira, 15 de janeiro de 2013 21:02
  • Já consegui fzr a pesquisa, só tive que mudar algumas coisas no código...confiram...

    For i = 0 To DataGrid1.Rows.Count - 1
                If DataGrid1.Rows(i).Cells(1).Value = textbox1.Text.ToString And _
                DataGrid1.Rows(i).Cells(2).Value = textbox2.Text.ToString And _
                DataGrid1.Rows(i).Cells(3).Value = textbox3.Text.ToString Then

              Me.DataGrid1.SelectionMode = DataGridViewSelectionMode.FullRowSelect
                        Me.DataGrid1.FirstDisplayedScrollingRowIndex = i
                        Me.DataGrid1.Rows(i).Selected = True

                        textbox4.Text = DataGrid1.Rows(i).Cells(5).Value

                       textbox5.Text = DataGrid1.Rows(i).Cells(6).Value
                       textbox6.Text = DataGrid1.Rows(i).Cells(7).Value
                       textbox7.Text = DataGrid1.Rows(i).Cells(8).Value
                Else
                   'textbox4.Text = "?"
                   'textbox5.Text = "?"
                    'textbox6.Text = "?"
                    'textbox7.Text = "?"
                End If
                Exit Sub
            Next

    Não foi fácil mais consegui

    Meu projeto só faltava isto, agora esta completinho...ABRAÇOS
    terça-feira, 22 de janeiro de 2013 14:46