paradize99
Messages postés11Date d'inscriptionvendredi 22 mars 2019StatutMembreDernière intervention22 mai 2019
-
Modifié le 22 mars 2019 à 15:51
Whismeril
Messages postés18290Date d'inscriptionmardi 11 mars 2003StatutContributeurDernière intervention24 mars 2023
-
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
A voir également:
Supprimer ligne datagridview selon selection combobox
paradize99
Messages postés11Date d'inscriptionvendredi 22 mars 2019StatutMembreDernière intervention22 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
22 mars 2019 à 15:50