begin process at 2013 05 23 22:30:05
  Trouver un code source :
 
dans
 
Accueil > Forum > 

VB.NET et VB 2005

 > 

Base de données

 > 

ADO.NET

 > 

Eliminer valeurs deja selectionnées lignes precedentes combobox dans Datagridview


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Eliminer valeurs deja selectionnées lignes precedentes combobox dans Datagridview

mercredi 5 septembre 2012 à 17:06:41 | Eliminer valeurs deja selectionnées lignes precedentes combobox dans Datagridview

zlordofhardstyle

Bonjour ,

je possède un datagridview dont une colonne est de type combobox . Ce combobox est remplit par des valeurs via une requête . je souhaite que , une fois une valeur du combobox est sélectionnée dans un row i , le combobox de la ligne suivante i+1 du datagrid n'obtiendra que les valeurs non sélectionnées avant .. c'est à dire , qu'il faut parcourir toutes les lignes précédentes , extraire les valeurs sélectionnées , et les stocker dans un tableau .. ou quelque shose de ce genre

Merci de m'aider
mercredi 5 septembre 2012 à 17:14:28 | Re : Eliminer valeurs deja selectionnées lignes precedentes combobox dans Datagridview

jack

Administrateur CodeS-SourceS
Salut

Et qu'as-tu écrit, essayé de faire ?

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés
Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
mercredi 5 septembre 2012 à 17:24:03 | Re : Eliminer valeurs deja selectionnées lignes precedentes combobox dans Datagridview

zlordofhardstyle

ce que j'ai fait :

la procédure qui permet de charger le combobox :

Code Visual Basic :
Public Sub verifier_article()
        cn.Open()
        Dim liste() As String
        ReDim liste(ind)
        For i = 0 To ind
            liste(i) = DataGridView1(1, i).Value
        Next
        Dim cmd As New SqlCommand
        Dim dr As SqlDataReader
        cmd.Connection = cn
        cmd.CommandText = "select designationArticle from Article where designationArticle not IN ('" & String.Join("','", liste) & "')"
        Dim Dgvc As New DataGridViewComboBoxCell
        dr = cmd.ExecuteReader
        If dr.HasRows Then
            While dr.Read
                Dgvc.Items.Add(dr(0))
            End While
            DataGridView1.Item(1, ind) = Dgvc
        End If
        dr.Close()
        cn.Close()
    End Sub


ou ind est une variable initialisée à 0 et s'incremente à chaque ajout d'une nouvelle ligne du datagridview :

Code Visual Basic :
 Private Sub DataGridView1_UserAddedRow(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewRowEventArgs)
        ind = ind + 1
        verifier_article()
    End Sub


merci
mercredi 5 septembre 2012 à 18:37:36 | Re : Eliminer valeurs deja selectionnées lignes precedentes combobox dans Datagridview

cmarcotte

Bonjour,

Un truc par là.
mercredi 5 septembre 2012 à 20:55:18 | Re : Eliminer valeurs deja selectionnées lignes precedentes combobox dans Datagridview

zlordofhardstyle

bonsoir ,

merci de répondre

bon j'ai essayé un truc du genre :

Code Visual Basic :
 Public Sub charger_article()
        Dim listFirst As List(Of String) = New List(Of String)
        Dim listSecond As List(Of String) = New List(Of String)
        cn.Open()
        Dim cmd As New SqlCommand
        Dim dr As SqlDataReader
        cmd.Connection = cn
        cmd.CommandText = "select designationArticle from Article"
        Dim Dgvc As New DataGridViewComboBoxCell
        dr = cmd.ExecuteReader
        If dr.HasRows Then
            While dr.Read
                listFirst.Add(dr(0))
                ' Dgvc.Items.Add(dr(0))
            End While
        End If
        For i = 0 To DataGridView1.Rows.Count - 2
            listSecond.Add(DataGridView1(1, i).Value)
        Next
        Dim different As IEnumerable(Of String) = listFirst.Except(listSecond)
        Dgvc.Items.Add(different.ToList)
        DataGridView1.Item(1, ind) = Dgvc
        dr.Close()
        cn.Close()
    End Sub


mais à la sélection du combobox ça m'affiche : (Collection)

une idée ??

Merci

mercredi 5 septembre 2012 à 21:21:28 | Re : Eliminer valeurs deja selectionnées lignes precedentes combobox dans Datagridview

jack

Administrateur CodeS-SourceS
Perso, je ferais :
J'ajouterais toutes les références dans chaque Combo, comme ça, procédure standard
Dès qu'il y a saisie/choix dans une des Combo :
Boucle sur toutes les Combos :
Si ce n'est pas ma propre Combo, je supprime la référence sélectionnée de la Combo.
Pour supprimer une référence dans une Combo, il faudra peut-être encore une boucle sur tous les items et, dès que je l'ai trouvée, je la supprime.
Si la référence est unique dans la liste, je fais aussi un Exit For de la boucle, et je poursuis avec la première boucle des Combos.
mercredi 5 septembre 2012 à 22:05:20 | Re : Eliminer valeurs deja selectionnées lignes precedentes combobox dans Datagridview

zlordofhardstyle

bonsoir ,
ta solution est possible , sauf que ça va prendre du temps , vu que je serais obligé de refaire tout le travail . Merci
Sinon , j'arrive bien à éliminer les valeurs trouvées , MAIS pas à la prochaine ligne
n + 1 , ça s'élimine à l'enregistrement n + 2 , donc la valeur peut être sélectionnée 2 FOIS .. je ne sais pas pourquoi .

REPOST Du code :

Code Visual Basic :
 cn.Open()
        Dim liste() As String
         ReDim liste(DataGridView1.Rows.Count)
        For i = 0 To DataGridView1.Rows.Count - 3
            liste(i) = (DataGridView1(1, i).Value)
            MsgBox(liste(i))
        Next
        Dim cmd As New SqlCommand
        Dim dr As SqlDataReader
        cmd.Connection = cn
        cmd.CommandText = "select designationArticle from Article where designationArticle not IN ('" & String.Join("','", liste) & "')"
        Dim Dgvc As New DataGridViewComboBoxCell
        dr = cmd.ExecuteReader
        If dr.HasRows Then
            While dr.Read
                'listSecond.Add(dr(0))
                Dgvc.Items.Add(dr(0))
            End While
            DataGridView1.Item(1, ind) = Dgvc
        End If
        dr.Close()
        cn.Close()


la fonction est appelée au chargement du formulaire et à l’événement DataGridView1_UserAddedRow .

Merci
jeudi 6 septembre 2012 à 00:15:59 | Re : Eliminer valeurs deja selectionnées lignes precedentes combobox dans Datagridview

zlordofhardstyle




voici comment ça donne .. Comme vous pouvez le constater , on a la possibilité de sélectionner une valeur deux fois , chose qui ne devrait pas être .
jeudi 6 septembre 2012 à 09:23:00 | Re : Eliminer valeurs deja selectionnées lignes precedentes combobox dans Datagridview

zlordofhardstyle

Bonjour ,
peut être que je devrais pas faire appel à la fonction à l’événement USERADDEDROW .. ??

HELP

merci


Cette discussion est classée dans : combobox, lignes, valeurs, datagridview, eliminer


Répondre à ce message

Sujets en rapport avec ce message

DataGridView et ComboBox [ par HermesCB ] HermesCB Bonjour à tous VB.NET 2008 Petit problème, j'ai créé un DataGridView avec un ComboBox incorporé dans une colonne, Ce ComboBox peu prendre p combobox et datagridview [ par youma85 ] salut, svp comment  utiliser un combobox dans une datagridview et  qu'est ce que je peux utilisé pour savoir que si une valeur du combobox a été chois Update d'un datagrid en VB 2005/2008 [ par Cyclone ] Salut à tous;j'utilise une datagridview connectée à une base de données access. Lorsque j'ajoute de nouveaux enregistrements, ou que j'en supprime, la Combobox et source du graphique [ par pely ] Bonjour, Dans un Userform, j'ai deux ComboBox qui prennent des valeurs (des mois) dans une colonne de mon tableau excel (feuille Extraction). Si j COMBINER COMBOBOX [ par YVO22 ] Bonsoir à tous,Je cherche à combiner deux combobox d'un userform pour exploitation dans excel.Dans le premier combobox, je voudrais pouvoir afficher d Excel: suppression des doublons dans une colonne et copie de cellules [ par grossequiche ] Bonjour à tous,Je cherche un coup de main pour automatiser la mise en forme d'un document excel. Peut-être une macro?Dans la colonne A il y a certaine Nbre de Lignes dans un ComboBox [ par nagstef ] Bonjour !!Je voudrais savoir s'il existe un moyen de déterminer le nombre de lignes affichées dans un combo ?Apparement, par défaut, c'est 8 !Existe-t Probleme de datagridview (vb2005) [ par tbrault ] Bonjour a tous. J'ai un petit probléme avec mon controle datagridview.En fait je souhaiterais savoir si il existe un moyen de masquer  toutes les lign


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2013
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 2,543 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales