IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB.NET Discussion :

Afficher ligne Datagridview depuis ComboBox


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Invité
    Invité(e)
    Par défaut Afficher ligne Datagridview depuis ComboBox
    Bonjour,
    J'ai un datagridview que j'ai rempli avec un table access et j'ai rajouter un combobox pour rechercher une information dans mon dgv.

    Mon probleme est le suivant:
    j'ai reussi a remplir mon combobox mais quand je selectionne une valeur je n'arrive pas a afficher les lignes du dgv qui correspondent

    Voici mon code pour l'instant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
     
        Private Sub Form5_Load(sender As Object, e As EventArgs) Handles MyBase.Load
     
            Dim cn As New OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;" & "Data Source = Database2.accdb")
            cn.Open()
            Dim cmd As New OleDbCommand("select * from tblToolRequisition", cn)
     
            Dim AdapTContact As OleDb.OleDbDataAdapter
            Dim DtSet As New DataSet()
     
            AdapTContact = New OleDbDataAdapter(cmd)
     
            AdapTContact.Fill(DtSet, "tblToolRequisition")
     
            Dim Matable As DataTable
            Matable = DtSet.Tables("tblToolRequisition")
            DataGridView1.DataSource = Matable
     
            Dim dr As OleDbDataReader = cmd.ExecuteReader
            While dr.Read
                ComboBox1.Items.Add(dr(12).ToString)
            End While
     
            dr.Close()
            cn.Close()
     
        End Sub
     
        Private Sub ComboBox1_Click(sender As Object, e As EventArgs) Handles ComboBox1.Click
     
            Dim cn As New OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;" & "Data Source = Database2.accdb")
            cn.Open()
            Dim cmd As New OleDbCommand("select * from tblToolRequisition", cn)
            Dim dr As OleDbDataReader = cmd.ExecuteReader
            dr.Read()
            dr.Close()
     
        End Sub
    Merci d'avance pour vos reponses

  2. #2
    Membre Expert Avatar de Phil Rob
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2013
    Messages
    1 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2013
    Messages : 1 613
    Par défaut
    Bonjour,

    Je ne comprends pas ... : sous l'événement Click du Combo, tu entreprends un opération d'accès à la DB. Or si je lis bien ta question, le Combo devrait déjà être rempli et le Click d'une de ses valeurs devrait produire la sélection d'une ou plusieurs lignes d'un DataGridView.

    Partant d'un Combox rempli, pour répondre à ta question, il faudrait nous indiquer la correspondance qui existe entre le Combo et le DataGridView, par exemple :
    Le combo contient des localités et le DataGridView contient tous les employés, chacun avec son adresse complète dont la localité est dans une colonne nommée "Loc".
    Le travail serait alors de sélectionner tous les employés que habitent la localité choisie dans le Combo.


    Bref, avec quelques éclaircissements, on pourra peut-être t'aider ...

  3. #3
    Invité
    Invité(e)
    Par défaut
    J'ai entrepris une operation d'access a la data parce que je savais pas quoi faire

    Dans le DataGridView il y a le numero d'une piece (PN), le client et differentes autres informations pour chaque piece. dans le combobox il y a les PN.
    Ce que je voudrais serait de selectionner le PN et d'avoir la/les ligne concernee avec les informations.

  4. #4
    Membre Expert Avatar de Phil Rob
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2013
    Messages
    1 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2013
    Messages : 1 613
    Par défaut
    Veux-tu bien modifier ton code de remplissage du Combo comme ceci (au moins le Combo1, mais tu peux faire la même chose pour tous) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
            Dim Matable As DataTable
            Matable = DtSet.Tables("tblToolRequisition")
            DataGridView1.DataSource = Matable
     
    ComboBox1.DataSource = Matable
    ComboBox1.DisplayMember = "PN"
     
     
     
     '       Dim dr As OleDbDataReader = cmd.ExecuteReader
      '      While dr.Read
        '        ComboBox1.Items.Add(dr(12).ToString)
        '        ComboBox2.Items.Add(dr(11).ToString)
       '         ComboBox3.Items.Add(dr(4).ToString)
        '        ComboBox4.Items.Add(dr(16).ToString)
       '     End While
     
    ' ...
    et puis tu pourras réessayer mon code avec le nom de colonne (PN) d'abord et en revenir à l'indice 12 ensuite, si ça ne va toujours pas =
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
        Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ComboBox1.SelectedIndexChanged
            Dim IndexColonne As Integer
            Dim IndexLigne As Integer
            DataGridView1.ClearSelection()
            IndexColonne = DataGridView1.Columns("PN").Index
            For IndexLigne = 0 To DataGridView1.Rows.Count - 1
                If DataGridView1.Item(IndexColonne, IndexLigne).Value = ComboBox1.Text Then
                    DataGridView1Rows(IndexLigne).Selected = True
                End If
            Next
        End Sub

  5. #5
    Invité
    Invité(e)
    Par défaut
    Super ca marche maintenant

    Je voudrais pas abuser mais j'ai des doublons dans la combobox, j'aimerais savoir si c'est possible de d'avoir la combobox sans doublons et dans l'ordre alphabetique ?
    pour l'ordre j'ai essaye avec Sorted = True mais apres qund je choisis le client numero 3 par exemple, il me montre le PN numero 3 dans la liste
    pour les doublons j'ai vu qu'on peut utiliser
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "Select Distinct nom From Table Order By nom"
    mais comme j'ai utiliser
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
            ComboBox1.DataSource = Matable
            ComboBox1.DisplayMember = "PN"
    je vois pas comment faire

    si t'as une piste je t'en remercie

  6. #6
    Membre Expert Avatar de Phil Rob
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2013
    Messages
    1 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2013
    Messages : 1 613
    Par défaut
    Re,

    Je viens de comprendre (seulement ... mais peut-être...) pourquoi tu ne disposes pas des noms de colonnes dans le DataGridView :
    Veux-tu bien faire l'essai de compléter les "Fill" comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
            cn1.FillSchema(UneTable1, SchemaType.Source) ' Récupère les noms des tables et des champs. Certains SGBD ne permettent pas FillSchema, ealors il faut isoler cette ligne
            cn1.Fill(UneTable1)
     
            cn2.FillSchema(UneTable2, SchemaType.Source)
            cn2.Fill(UneTable2)
     
            cn3.FillSchema(UneTable3, SchemaType.Source)
            cn3.Fill(UneTable3)
     
            cn4.FillSchema(UneTable4, SchemaType.Source)
            cn4.Fill(UneTable4)
     
            cn5.FillSchema(UneTable5, SchemaType.Source)
            cn5.Fill(UneTable5)
    Après cela, tu devais pouvoir utiliser la procédure suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    Private Sub LesComboBox_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ComboBox1.SelectedIndexChanged, ComboBox2.SelectedIndexChanged, ComboBox3.SelectedIndexChanged, ComboBox4.SelectedIndexChanged
            Dim IndexColonne As Integer
            Dim IndexLigne As Integer
            DataGridView1.ClearSelection()
     
           IndexColonne = DataGridView1.Columns(sender.DisplayMember).Index
     
             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
    ...

  7. #7
    Invité
    Invité(e)
    Par défaut
    j'ai essayé et rien ne s'affiche ni dans le dgv ni dans les co,bobox

    Pour les "Fill"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
     
            cn1.FillSchema(UneTable1, SchemaType.Source)
            cn1.Fill(UneTable1)
     
            cn2.FillSchema(UneTable2, SchemaType.Source)
            cn2.Fill(UneTable2)
     
            cn3.FillSchema(UneTable3, SchemaType.Source)
            cn3.Fill(UneTable3)
     
            cn4.FillSchema(UneTable4, SchemaType.Source)
            cn4.Fill(UneTable4)
     
            cn5.FillSchema(UneTable5, SchemaType.Source)
            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"
    Et la procedure:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
    Private Sub LesComboBox_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ComboBox1.SelectedIndexChanged, ComboBox2.SelectedIndexChanged, ComboBox3.SelectedIndexChanged, ComboBox4.SelectedIndexChanged
            Dim IndexColonne As Integer
            Dim IndexLigne As Integer
            DataGridView1.ClearSelection()
     
            IndexColonne = DataGridView1.Columns(sender.DisplayMember).Index
     
            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

  8. #8
    Membre Expert Avatar de Phil Rob
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2013
    Messages
    1 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2013
    Messages : 1 613
    Par défaut
    Quelques liens DropBox :
    Le dossier de développement :
    https://www.dropbox.com/s/lsa440iu5c...ockFR.zip?dl=0
    Une petite video montrant le fonctionnement :
    https://www.dropbox.com/s/2y1q6s4q72...ockFR.mp4?dl=0

    Je te suggère de prendre la peine de lire d’abord tous les commentaires du programme, ils sont parfois plus instructifs que le programme lui-même.

    Au départ, ce petit programme didactique a été réalisé pour un forum espagnol, ce n’est que plus récemment que je l’ai francisé (trad. des noms de variables et de procédure, et des commentaires)
    La DB jointe n’a pas été traduite, mais un lexique est écrit dans les commentaires en début de programme.

    Attention, ce programme n’est pas garanti free-bug mais l’organisation et les méthodes proposées sont correctes.

    L’avantage de l’organisation proposée est bien sûr la lisibilité mais aussi la facilité (3 à 5 minutes de Recherche-Remplace, <CTRL<>H>) de passer d’un SGBD à autre. Dans son état actuel, le programme « attaque » une DB Access 2007, mais MySql, SqlExpress et Access 2003 « sont déjà en place ».

    La lisibilité, c’est aussi la facilité de maintenance.

    Les procédures clés sont :
    OuvrirDB ‘ contient out ce que tu avais hier dans QuoteCosting_Load, mais en quelques lignes seulement, des tâches étant
    confiées à d’autres procédures …
    Définition des chaines de connexions,
    ChargerDonnees() ‘ contient tous les « Select »
    MontrerDonnees() ‘ contient toutes les liaisons
    FermerDB

    Et puis toutes les autres :
    OuvrirConnexion
    CreerCommande
    CreerUneTable
    CreerIdentifiant ‘ gestion manuelle des Id (je veux garder la main )))
    Traitements_Click ‘ répond aux boutons BAjouter, BModifier et BSupprimer
    EnregistrerSuppression ‘ accès effectif en mode connecté à la DB
    EnregistrerModification ‘ id.
    EnregistrerAjout ‘ id.
    LectureCirculaire_Click ‘ répond aux boutons BDernier, BPrecedent, BSuivant et BPremier

    et quelques gestions annexes,
    telles les sélections dans le DataGridView sur base de Combo (ajoutées depuis hier ..?.. ) :
    RechercheSelonCombo_SelectedIndexChanged ‘ répond aux changements de 2 Combo

    et d’autres petits réglages …

    Pour quelques cas un peu nébuleux, je peux fournir des explications si besoin …

    Bonne séance cinéma, bonne lecture, bon amusement,

  9. #9
    Membre Expert Avatar de Phil Rob
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2013
    Messages
    1 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2013
    Messages : 1 613
    Par défaut
    Ceci devrait t'aider :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
        Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ComboBox1.SelectedIndexChanged
            Dim IndexColonne As Integer
            Dim IndexLigne As Integer
            DataGridView1.ClearSelection()
            IndexColonne = DataGridView1.Columns("PN").Index
            For IndexLigne = 0 To DataGridView1.Rows.Count - 1
                If DataGridView1.Item(IndexColonne, IndexLigne).Value = ComboBox1.Text Then
                    DataGridView1Rows(IndexLigne).Selected = True
                End If
            Next
        End Sub
    Bonne soirée,

  10. #10
    Invité
    Invité(e)
    Par défaut
    J'ai essaye mais il m'affiche l'erreur :

    System.NullReferenceException: 'Object reference not set to an instance of an object.'

    J'ai cherche comment faire mais rien ne marche

  11. #11
    Membre Expert Avatar de Phil Rob
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2013
    Messages
    1 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2013
    Messages : 1 613
    Par défaut
    Tu as trouvé le bon code ...

    Voici comment faire.
    Juste avant la requête qui livre les données pour le DataGridView, avant de créer la DataTable pour le DataSet nommé DtSet, tu dois faire une première requête Dim cmd As New OleDbCommand("select distinct PN from tblToolRequisition Order by PN asc", cn).
    Cette requête doit te donner un premier DataTable pour le DtSet.
    Une fois ce DataTable dans le DtSet, il faut changer son nom : Dts.Tables(0).TableName = "tblPN" par exemple.

    Seulement ensuite tu fais ce qu'il faut pour avoir la table tblToolRequisition.
    Note que tu peux ici réutiliser le cmd existant (sans New) :
    cmd = OleDbCommand("select * from tblToolRequisition", cn).

    Après tout cela, tu peux lier ton DataGridView comme c'est actuellement fait et enfin, lier le Combo1 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ComboBox1.DataSource =  DtSet.Tables("tblPN")
    ComboBox1.DisplayMember = "PN"
    Note encore que tu n'es pas obligé de passer par MaTable pour lier le DataGridView, tu peux faire directement :
    DataGridView1.DataSource = DtSet.Tables("tblToolRequisition")

  12. #12
    Invité
    Invité(e)
    Par défaut
    Genial merci j'essayerais demain

  13. #13
    Invité
    Invité(e)
    Par défaut
    Alors j'ai essayé de faire comme tu as dis et ça ne marche pas, j'ai crée de nouvelles commandes mais il ne m'affiche plus rien

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
     
            Dim cn As New OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;" & "Data Source = Database2.accdb")
            cn.Open()
            Dim cmd As New OleDbCommand("select * from tblToolRequisition", cn)
     
            Dim cmd1 As New OleDbCommand("select distinct PN from tblToolRequisition Order by PN asc", cn)
            Dim AdapTContact1 As OleDb.OleDbDataAdapter
            Dim DtSet1 As New DataSet()
     
            AdapTContact1 = New OleDbDataAdapter(cmd1)
     
            AdapTContact1.Fill(DtSet1, "tblToolRequisition")
            DtSet1.Tables(0).TableName = "tblPN"
     
            Dim AdapTContact As OleDb.OleDbDataAdapter
            Dim DtSet As New DataSet()
     
            AdapTContact = New OleDbDataAdapter(cmd)
     
            AdapTContact.Fill(DtSet, "tblToolRequisition")
     
            DataGridView1.DataSource = DtSet.Tables("tblToolRequisition")
     
            ComboBox1.DataSource = DtSet.Tables("tblPN")
            ComboBox1.DisplayMember = "PN"
    en fait je vois pas comment tu peux reutiliser chaque commandes telles que cmd, DtSet... surtout que j'ai 4 combobox

  14. #14
    Membre Expert Avatar de Phil Rob
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2013
    Messages
    1 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2013
    Messages : 1 613
    Par défaut
    Alors là, je ne comprends pas ... N'y a-t-il pas un autre problème ?
    Si le DataGridView et les Combo se remplissent quand tu mets les lignes FillSchema en commentaire, alors j'abandonne ce détail et tu dois garder la procédure LesComboBox_SelectedIndexChanged d'hier, celle avec le Select Case.

    Une dernière piste, ne laisser la ligne FillSchema que pour la table qui alimente le DataGridView (la 5ème je pense).

    Pour ce qui est de la procédure LesComboBox_SelectedIndexChanged, tu peux voir la mienne dans le programme MonStockFR. Dans ce programme, j'effectue aussi la lecture du schéma pour chaque table puisque cela est programmé dans la fonction CreerUneTable().

    ...

  15. #15
    Membre Expert Avatar de Phil Rob
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2013
    Messages
    1 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2013
    Messages : 1 613
    Par défaut
    Un de tes composants n'est pas nommé comme dans mon code, ou bien a colonne n'est pas correctement nommée, ...
    Note que si l'erreur vient du nom de la colonne, tu peux donner l'index toi-même (de 0 à Count-1, les "CN" sont dans la colonne d'indice ...).
    Tu peux aussi envoyer les codes utilisés et dire sur quelle ligne survient l'erreur.

  16. #16
    Invité
    Invité(e)
    Par défaut
    Le code de depart:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    Public Class Form5
     
        Private Sub Form5_Load(sender As Object, e As EventArgs) Handles MyBase.Load
     
            Dim cn As New OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;" & "Data Source = Database2.accdb")
            cn.Open()
            Dim cmd As New OleDbCommand("select * from tblToolRequisition", cn)
     
            Dim AdapTContact As OleDb.OleDbDataAdapter
            Dim DtSet As New DataSet()
     
            AdapTContact = New OleDbDataAdapter(cmd)
     
            AdapTContact.Fill(DtSet, "tblToolRequisition")
     
            Dim Matable As DataTable
            Matable = DtSet.Tables("tblToolRequisition")
            DataGridView1.DataSource = Matable
     
            Dim dr As OleDbDataReader = cmd.ExecuteReader
            While dr.Read
                ComboBox1.Items.Add(dr(12).ToString)
                ComboBox2.Items.Add(dr(11).ToString)
                ComboBox3.Items.Add(dr(4).ToString)
                ComboBox4.Items.Add(dr(16).ToString)
            End While
     
            dr.Close()
            cn.Close()
     
        End Sub
    C'est dans le code du combobox qu'il y a l'erreur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
      Private Sub ComboBox1_Click(sender As Object, e As EventArgs) Handles ComboBox1.Click
     
            Dim IndexColonne As Integer
            Dim IndexLigne As Integer
            DataGridView1.ClearSelection()
            IndexColonne = DataGridView1.Columns("PN").Index
            For IndexLigne = 0 To DataGridView1.Rows.Count - 1
                If DataGridView1.Item(IndexColonne, IndexLigne).Value = ComboBox1.Text Then
                    DataGridView1.Rows(IndexLigne).Selected = True
                End If
            Next
     
        End Sub
    A la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    IndexColonne = DataGridView1.Columns("PN").Index
    il m'indique l'erreur :System.NullReferenceException: 'Object reference not set to an instance of an object.'

  17. #17
    Membre Expert Avatar de Phil Rob
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2013
    Messages
    1 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2013
    Messages : 1 613
    Par défaut
    Veux-tu bien mettre tout ton code en commentaire et exécuter le mien à la place :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
            '******************************************************************************
            Dim ChaineConnexion As String = "Provider=Microsoft.ACE.OLEDB.12.0;" & "Data Source = Database2.accdb"
            '  cn.Open()  ''' Ne pas faire l'ouverture effective pour le DataAdapter, il s'en charge ...
            '  Dim cmd As New OleDbCommand("select distinct PN from tblToolRequisition Order by PN asc", cn)
     
            Dim DtSet As New DataSet()
     
            Dim UneTable As New DataTable
     
            Dim cn As New OleDbDataAdapter("select distinct PN from tblToolRequisition Order by PN asc", ChaineConnexion)
            '   cn.FillSchema(UneTable, SchemaType.Source)  '"'Pas toujours nécessaire
            cn.Fill(UneTable)
            DtSet.Tables.Add(UneTable)
            DtSet.Tables(0).TableName = "tblPN"
            Dim AdapTContact As OleDb.OleDbDataAdapter
     
            UneTable = New DataTable
     
            cn = New OleDbDataAdapter("select * from tblToolRequisition", ChaineConnexion)
            '   cn.FillSchema(UneTable, SchemaType.Source)  '"'Pas toujours nécessaire
            cn.Fill(UneTable)
            DtSet.Tables.Add(UneTable)
            '    DtSet.Tables(1).TableName = "tblToolRequisition"
     
            DataGridView1.DataSource = DtSet.Tables("tblToolRequisition")
     
            ComboBox1.DataSource = DtSet.Tables("tblPN")
            ComboBox1.DisplayMember = "PN"
     
            '******************************************************************************
    J'ai un peu difficile à tester, le code que j'utilise est réglé pour SqlExpress, mais surtout il est tout-à-fait structuré différemment du tien ...

  18. #18
    Invité
    Invité(e)
    Par défaut
    super ca marche mais je vois pas comment je peux rajouter les 3 autres combobox pcq cn correspond a PN

  19. #19
    Membre Expert Avatar de Phil Rob
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2013
    Messages
    1 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2013
    Messages : 1 613
    Par défaut
    Re ...
    Là, je confirme que ton DataGridView n'a pas de colonnes nommée "PN".
    Peux-tu me transmettre :
    1. le schéma de ta table dans la DB ou les noms des champs de "tblToolRequisition";
    2. la position de la colonne qui contient les valeurs de PN.

  20. #20
    Invité
    Invité(e)
    Par défaut
    Les noms des champs sont :
    Customer
    ToolCode
    Description
    Priority
    Operation
    PN

    Donc PN est la 6eme colonne

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 3 123 DernièreDernière

Discussions similaires

  1. [XL-2007] Ajout de lignes dans listes viex depuis combobox puis calculer
    Par stephadm dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 06/08/2011, 22h38
  2. Afficher des images depuis une table dans combobox
    Par sihammaster dans le forum VB.NET
    Réponses: 2
    Dernier message: 13/04/2010, 19h51
  3. DataGridView avec comboBox sur les lignes
    Par gentelmand dans le forum Windows Forms
    Réponses: 1
    Dernier message: 09/03/2009, 13h46
  4. Réponses: 13
    Dernier message: 14/04/2008, 14h30
  5. afficher une image depuis un combobox
    Par ghosthacker dans le forum MFC
    Réponses: 5
    Dernier message: 11/06/2007, 10h35

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo