Supprimer ligne datagridview selon selection combobox

Résolu
paradize99 Messages postés 11 Date d'inscription vendredi 22 mars 2019 Statut Membre Dernière intervention 22 mai 2019 - Modifié le 22 mars 2019 à 15:51
Whismeril Messages postés 19021 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 16 avril 2024 - 22 mai 2019 à 15:46
Bonjour,
J'ai creer un datagridview depuis une table access avec des combobox permettant de filtrer les donnees seulement qund je selectionne par exemple un client avec la combobox il me surligne la ligne mais laisse les autres alors que j'aimerais voir uniquement les lignes concernees.
Malgre mes recherches sur differents forums, impossible de trouver

Voici le code qui permet de remplir le dgv et les combobox et de selectionner
        
connexion = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\ITDEV\Project\Tool_Processing\Tool_Processing\ToolDatabaseVB_be.accdb"
        cn = New OleDbConnection(connexion)

        Dim DtSet As New DataSet()

        Dim UneTable1 As New DataTable
        Dim UneTable2 As New DataTable
        Dim UneTable3 As New DataTable
        Dim UneTable4 As New DataTable
        Dim UneTable5 As New DataTable

        Dim cn1 As New OleDbDataAdapter("select distinct PN from tblToolRequisition Order by PN asc", cn)  ' tblPN
        Dim cn2 As New OleDbDataAdapter("select distinct UCASE(CustomerName) as CustomerName from tblToolRequisition", cn) ' tblCustomer
        Dim cn3 As New OleDbDataAdapter("select distinct ToolDRG from tblToolRequisition Order by ToolDRG asc", cn) ' tblTool
        Dim cn4 As New OleDbDataAdapter("select distinct RequistionNum from tblToolRequisition Order by RequistionNum asc", cn) ' tblRequisition
        Dim cn5 As New OleDbDataAdapter("Select ReqDate, RequistionNum, Priority, UCASE(CustomerName) as CustomerName, PN, PartRev, ToolDRG, ToolRev, Description, Quantity, DueDate, RequiredBy, StatusID, DeptName,Operation, ToolNotes, ASSYID from tblToolRequisition", cn)

        cn1.Fill(UneTable1)
        cn2.Fill(UneTable2)
        cn3.Fill(UneTable3)
        cn4.Fill(UneTable4)
        cn5.Fill(UneTable5)

        DtSet.Tables.Add(UneTable1)
        DtSet.Tables.Add(UneTable2)
        DtSet.Tables.Add(UneTable3)
        DtSet.Tables.Add(UneTable4)
        DtSet.Tables.Add(UneTable5)

        DtSet.Tables(0).TableName = "tblPN"
        DtSet.Tables(1).TableName = "tblCustomer"
        DtSet.Tables(2).TableName = "tblTool"
        DtSet.Tables(3).TableName = "tblRequisition"
        DtSet.Tables(4).TableName = "tblToolRequisition"

        DataGridView1.DataSource = DtSet.Tables("tblToolRequisition")

        ComboBox1.DataSource = DtSet.Tables("tblPN")
        ComboBox1.DisplayMember = "PN"

        ComboBox2.DataSource = DtSet.Tables("tblCustomer")
        ComboBox2.DisplayMember = "CustomerName"

        ComboBox3.DataSource = DtSet.Tables("tblTool")
        ComboBox3.DisplayMember = "ToolDRG"

        ComboBox4.DataSource = DtSet.Tables("tblRequisition")
        ComboBox4.DisplayMember = "RequistionNum"
    
Private Sub LesComboBox_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ComboBox1.SelectedIndexChanged, ComboBox2.SelectedIndexChanged, ComboBox3.SelectedIndexChanged
        Dim IndexColonne As Integer
        Dim IndexLigne As Integer
        DataGridView1.ClearSelection()

        Select Case sender.name
            Case "ComboBox1"
                IndexColonne = 4
            Case "ComboBox2"
                IndexColonne = 3
            Case "ComboBox3"
                IndexColonne = 6
            Case "ComboBox4"
                IndexColonne = 1
        End Select
        For IndexLigne = 0 To DataGridView1.Rows.Count - 1
            Try
                If DataGridView1.Item(IndexColonne, IndexLigne).Value = sender.Text Then
                    DataGridView1.Rows(IndexLigne).Selected = True
                End If
            Catch
            End Try
        Next
    End Sub


Merci d'avance pour vos reponses

6 réponses

Whismeril Messages postés 19021 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 16 avril 2024 656
22 mars 2019 à 15:45
Bonjour
Je ne voies pas le rapport entre ton titre et le corps de la question, alors je vais répondre au corps.

Entre le dataset et le datagridview mets un bindingsource.
Lui peut être filtré comme tu le souhaites
0
paradize99 Messages postés 11 Date d'inscription vendredi 22 mars 2019 Statut Membre Dernière intervention 22 mai 2019
22 mars 2019 à 15:50
desole je me suis emmelee les pinceaux entre 2 questions
0
paradize99 Messages postés 11 Date d'inscription vendredi 22 mars 2019 Statut Membre Dernière intervention 22 mai 2019
22 mars 2019 à 15:54
J'ai essayé de mettre un binding source mais quand j'avais essayé je ne pouvais plus filtrer les combobox
0
ManuAntibes Messages postés 491 Date d'inscription mardi 24 octobre 2000 Statut Membre Dernière intervention 18 novembre 2021 5
22 mars 2019 à 21:24
salut
avec quoi programmes tu (visual studio, vb express …)?
0
paradize99 Messages postés 11 Date d'inscription vendredi 22 mars 2019 Statut Membre Dernière intervention 22 mai 2019
22 mars 2019 à 21:34
avec visual studio 2017
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
paradize99 Messages postés 11 Date d'inscription vendredi 22 mars 2019 Statut Membre Dernière intervention 22 mai 2019
22 mai 2019 à 14:26
Bonjour, entre temps j'ai trouvé, voici le code si ca interesse qq

    Private Sub ComboBox1_SelectedValueChanged(sender As Object, e As EventArgs) Handles ComboBox1.SelectedValueChanged

        Dim MyTable As New System.Data.DataTable
        Dim DtSet As New DataSet
        Dim cmd As New OleDbDataAdapter("select * from tblToolRequisition where PN='" & ComboBox1.Text & "'", cn)

        cmd.Fill(MyTable)

        DtSet.Tables.Add(MyTable)

        DtSet.Tables(0).TableName = "tblToolRequisition"
        DataGridView3.DataSource = DtSet.Tables("tblToolRequisition")

    End Sub
0
Whismeril Messages postés 19021 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 16 avril 2024 656
22 mai 2019 à 15:46
Et t'as essayé le binding source?
Moins de lignes de code, et plus rapide puisque tu n'appelles pas la bdd....
0
Rejoignez-nous