Filtrer donées dans un datagridview
poupou61
Messages postés
62
Statut
Membre
-
Utilisateur anonyme -
Utilisateur anonyme -
Bonjour,
J'ai un datagridview qui affiche les données sur les commandes, et j'aimerais pouvoir "filtrer" l'affichage de ces données dans le datagridview grâce à une combobox contenant les raisons sociales des fournisseurs. et donc quand je sélectionne un fournisseur das ma combobox qu'il n'y ai que les commandes de ce fournisseur qui s'affichent dans le datagridview.
Pour l'instant, ma requête SQL pour afficher tout les fournisseurs c'est :
Et donc je suppose qu'il faut faire un truc du genre : "WHERE RaisonSocialeFour = ..." et que le "..." il faut le replacer dans le code et faire quelque chose avec ?
Petite contrainte supplémentaire, j'ai des boutons radio qui me sélectionnent les années des commandes. donc j'ai un bouton radio "2010" par exemple et la il n'y a que les commandes passées en 2010 qui s'afficheront, sa fonctionne très bien sa, mais j'ai peur que la combo et les boutons radio ensemble sa ne marche pas. Je me trompe ou pas ??
Ma requête et le code pour les boutons Radio :
Je bosse avec un dataset (je sais pas si sa change quelque chose, mais bon...
Désolé c'est un peu long.
Merci d'avance
J'ai un datagridview qui affiche les données sur les commandes, et j'aimerais pouvoir "filtrer" l'affichage de ces données dans le datagridview grâce à une combobox contenant les raisons sociales des fournisseurs. et donc quand je sélectionne un fournisseur das ma combobox qu'il n'y ai que les commandes de ce fournisseur qui s'affichent dans le datagridview.
Pour l'instant, ma requête SQL pour afficher tout les fournisseurs c'est :
SELECT Contenir_Commande.NumCommande, Contenir_Commande.NumProduit, Contenir_Commande.QuantiteCommander, Commande.DateCommmande, Fournisseur.RaisonSocialeFour FROM ((Contenir_Commande INNER JOIN Commande ON Contenir_Commande.NumCommande = Commande.NumCommande) INNER JOIN Fournisseur ON Commande.Numfournisseur = Fournisseur.NumFour)
Et donc je suppose qu'il faut faire un truc du genre : "WHERE RaisonSocialeFour = ..." et que le "..." il faut le replacer dans le code et faire quelque chose avec ?
Petite contrainte supplémentaire, j'ai des boutons radio qui me sélectionnent les années des commandes. donc j'ai un bouton radio "2010" par exemple et la il n'y a que les commandes passées en 2010 qui s'afficheront, sa fonctionne très bien sa, mais j'ai peur que la combo et les boutons radio ensemble sa ne marche pas. Je me trompe ou pas ??
Ma requête et le code pour les boutons Radio :
SELECT Contenir_Commande.NumCommande, Contenir_Commande.NumProduit, Contenir_Commande.QuantiteCommander, Commande.DateCommmande,
Fournisseur.RaisonSocialeFour
FROM ((Contenir_Commande INNER JOIN
Commande ON Contenir_Commande.NumCommande = Commande.NumCommande) INNER JOIN
Fournisseur ON Commande.Numfournisseur = Fournisseur.NumFour)
WHERE (Commande.DateCommmande BETWEEN #1/1/2010# AND #12/31/2010#)
Private Sub RdBtn2010_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RdBtn2010.CheckedChanged
Contenir_CommandeTableAdapter1.FillBy2010(MonDataSet1.Contenir_Commande)
DGVCde.DataSource = MonDataSet1.Contenir_Commande
End Sub
Je bosse avec un dataset (je sais pas si sa change quelque chose, mais bon...
Désolé c'est un peu long.
Merci d'avance
A voir également:
- Filtrer donées dans un datagridview
- Filtrer les doublons excel - Guide
- Filtrer par ordre croissant excel - Guide
- Vba filtrer selon valeur cellule ✓ - Forum Excel
- Comment filtrer sur excel - Forum Excel
- Le fichier contient un tableau présentant un extrait des livres les plus prêtés à paris en 2016. filtrez le tableau pour ne faire apparaître que les bandes dessinées ado. puis filtrez le tableau pour ne faire apparaître que celles dont l'auteur est zep. quel est le titre de la bande dessinée ado de zep qui a été la plus prêtée d'après ce tableau ? - Forum Loisirs / Divertissements
3 réponses
Bonjour,
Une solution serait de convertir ton dataset en collection
et d'appliquer les méthodes Linq (VB2008 et 2010)
Cdt
Lupin
Une solution serait de convertir ton dataset en collection
et d'appliquer les méthodes Linq (VB2008 et 2010)
Public Class Test
Sub Affiche()
Dim MaCollection as List(Of MonObjet)
Dim CollectionPartiel as List(Of MonObjet)
MaCollection = ConvertirDataSet(MonDataSet1)
CollectionPartiel = (From objX In MaCollection Select objX Where objX.Raison = combobox1.Text Order By objX.Name).ToList
DGVCde.DataSource = GetType(MonObjet)
DGVCde.DataSource = CollectionPartiel
End Sub
Function ConvertirDataset(ByVal LeDataSet as DataSet) As List(Of MonObjet)
'...
End Function
End Class
Public Class MonObjet
Private zNom As String
Private zRaison as string
'...
Public Property Nom() As String
Get
Return Me.zNom
End Get
Set(ByVal value As String)
Me.zNom = value
End Set
End Property
Public Property Raison() As String
Get
Return Me.zRaison
End Get
Set(ByVal value As String)
Me.zRaison = value
End Set
End Property
'...
End Class
Cdt
Lupin
re:
L'évènement ComboBox_SelectedIndexChanged ressemblera à ceci :
Cdt
Lupin
L'évènement ComboBox_SelectedIndexChanged ressemblera à ceci :
Private Sub cbx_Raison_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cbx_Raison.SelectedIndexChanged If (Not (String.IsNullOrEmpty(Me.cbx_Raison.Text))) Then Dim ListePartiel As List(Of MonObjet) Dim Raison As String = Me.cbx_Raison.Text.ToUpper ListePartiel = (From EntY As MonObjet In ListeLocale Select EntY Where EntY.Raison.ToUpper = Raison).ToList Me.DGV_Sortie.DataSource = Nothing InitialiseDGV(Me.DGV_Sortie) Me.DGV_Sortie.DataSource = ListePartiel Else Me.DGV_Sortie.DataSource = Nothing InitialiseDGV(Me.DGV_Sortie) Me.DGV_Sortie.DataSource = ListeLocale End If End Sub
Cdt
Lupin