none
rafraichir ma combobox RRS feed

  • Question

  • Bonjour,

    j'ai déja posé cette question sans réponse. Comment afficher l'enregistrement qui vient d'être ajouter dans ma combobox ou l'enlever de cette derniére. En bref comment la rafraichir ci dessous mon code. Sous visual basic 2010 base de donnée acces.

      Imports System.Data
    Imports System.Data.OleDb
    Public Class Fichier
          Dim Place_Enregistrement As Integer
        Dim Max_Enregistrements As Integer
        Dim con As New OleDb.OleDbConnection
        Dim ds As New situation_referenceDataSet
        Dim Val_ID As Integer

        Private Sub Fichier_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
            con.ConnectionString = "PROVIDER=Microsoft.Jet.OLEDB.4.0;Data Source =" & "C:\Speed plan\Plan tricotage\situation reference.mdb"
            Connexion()
        End Sub

        Private Sub Connexion()
            Dim cmd As OleDb.OleDbCommand
            Dim sql_tout_afficher As String
            sql_tout_afficher = "SELECT * FROM `tab client`"
            cmd = New OleDb.OleDbCommand(sql_tout_afficher, con)
            cmd.Connection.Open()
            Dim da As OleDb.OleDbDataAdapter = New OleDb.OleDbDataAdapter
            da.SelectCommand = cmd
            da.Fill(ds, "tab client")
            cmd.Connection.Close()
            Max_Enregistrements = ds.Tables("tab client").Rows.Count
            Place_Enregistrement = 0
               Navigation()
        End Sub

       Private Sub Navigation()

    JE PENSE QUE LE PROBLEME EST ICI IL MA MANQUE QUELQUE CHOSE POUR RAFRAICHIR MA LISTE APRES AJOUT OU SUPPRESION

            'TODO: cette ligne de code charge les données dans la table 'Situation_referenceDataSet.tab_client'
            Me.Tab_clientTableAdapter.Fill(Me.Situation_referenceDataSet.tab_client)
        End Sub

        Private Sub AjoutClient_Click(sender As System.Object, e As System.EventArgs) Handles AjoutClient.Click
            Dim cmd As OleDb.OleDbCommand
            Dim sql_ajouter As String
            sql_ajouter = "INSERT INTO `tab client` (`client`) VALUES(Val_Client)"
            cmd = New OleDb.OleDbCommand(sql_ajouter, con)
            cmd.Parameters.AddWithValue("Val_Client", TextBox1.Text)
            cmd.Connection.Open()
            cmd.ExecuteReader()
            cmd.Connection.Close()
            MsgBox("Le nouveau Client : " & TextBox1.Text & " a bien été enregistré.")
            ds.Clear()
            Connexion()
        End Sub

        Private Sub SupClient_Click(sender As System.Object, e As System.EventArgs) Handles SupClient.Click
            Dim cmd As OleDb.OleDbCommand
            Dim sql_supprimer As String
            sql_supprimer = "DELETE from `tab client` where (`client`) LIKE '" & ListClient.Text & "'"
            cmd = New OleDb.OleDbCommand(sql_supprimer, con)
            cmd.Connection.Open()
            cmd.ExecuteReader()
            cmd.Connection.Close()
            MsgBox("Le contact a bien été supprimé.")
            ds.Clear()
            Connexion()
        End Sub 
    End Class

    Merci pour votre aide


    Zoltan Biro

    jeudi 14 juin 2012 17:32

Réponses

  • merci à tous

    J'ai trouvé la solution ci-dessous le code dans private sub navigation() complété :

    J'ai rajouté la déclaration de variable :

        Dim Dtt As DataTable

        Private Sub Navigation()
              Me.Tab_clientTableAdapter.Fill(Me.Situation_referenceDataSet.tab_client)
            Listclient.Items.Clear()
            For Each Ligne In Dtt.DefaultView
                Listclient.Items.Add(Ligne.Item(1))
            Next Ligne
            Listclient.SelectedIndex = 0
        End Sub

    je vous remercie encore et mes excuses pour avoir donné un intitulé à ma demande ne correspondant pas tout à fait à la solution que j'attendais.

    Zoltan


    Zoltan Biro

    vendredi 15 juin 2012 11:46

Toutes les réponses

  • Bonjour,

    Je n'arrive pas à localiser dans votre code le moment où vous liez vos données à votre ComboBox.

    Pourriez vous s'il vous plaît nous montrer cette partie du code ?

    Cordialement.

    vendredi 15 juin 2012 07:31
    Auteur de réponse
  • Bonjour madagascarzb,

    En réponse je me fie à ton titre et ton intro, parce que ton code… la BDD n'a pas d'utilité directe pour gérer une comboBox.

    Tu écris :

    Rafraichir ma combobox

    *

    J'ai déjà posé cette question sans réponse.

    Comment afficher l'enregistrement qui vient d'être ajouter dans ma combobox ou l'enlever de cette dernière.

    En bref comment la rafraichir ci dessous mon code. Sous visual basic 2010 base de donnée acces.

    REPONSE

    Voici le code commenté et testé :

    Option Explicit On
    Public Class Form1
      
      Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
        ' Chargement du combo pour le test
        ComboBox1.Items.Clear() ' RAFRAICHISSEMENT STRICTO SENSU
        ComboBox1.Items.Add("Maître")
        ComboBox1.Items.Add("Corbeau")
        ComboBox1.Items.Add("sur")
        ComboBox1.Items.Add("un")
        ComboBox1.Items.Add("bel")
        ComboBox1.Items.Add("arbre")
        ComboBox1.SelectedIndex = 0 ' AFFICHE 1 ER ELEMENT
      End Sub
    
    
      Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
        ' Ce bouton effectue les commandes que tu veux.
        ' Ajout d'un élément, sauf indication contraire, en fin
        ComboBox1.Items.Add("perché.")
        ComboBox1.SelectedIndex = ComboBox1.Items.Count - 1 ' AFFICHE LE RAJOUT
      End Sub
    
      Sub Button2_Click(sender As System.Object, e As System.EventArgs) Handles Button2.Click
        ' Supprime l'élément "bel" n°4 (depuis 0)
        Dim numeroAsupprimer As Integer = 4
        ComboBox1.Items.RemoveAt(numeroAsupprimer)
        ComboBox1.SelectedIndex = numeroAsupprimer - 1 ' AFFICHE CELUI AU DESSUS DE LA SUPPRESSION
        '
        ' Nota bene
        ' Il faut tenir compte des cas spécifiques, comme plus aucun 
        ' élément dans la liste, ou affichage d'un élément inexistant...
      End Sub
    
    End Class

    Cordialement.



    Joseph Attila PUSZTAY
    EhJoe       Logiciels       Romans       Ecrire



    • Proposé comme réponse EhJoe vendredi 15 juin 2012 08:17
    • Modifié EhJoe vendredi 15 juin 2012 08:46 correction n°1
    vendredi 15 juin 2012 08:16
  • Bonjour Mourad,

    Tout d'abord merci pour votre interessement à mon probléme.

    - ma combobox et intitulé Listclient que j'ai lié non pas avec le code mais avec la propriété data source ou j'ai mis TabClientBindingSource et display menber ou j'ai mis client.

    - la liaison et faite bans mon private sub navigation() là ou je pense qu'il y a un porbléme

    Private Sub Navigation()

    JE PENSE QUE LE PROBLEME EST ICI IL MA MANQUE QUELQUE CHOSE POUR RAFRAICHIR MA LISTE APRES AJOUT OU SUPPRESION

            'TODO: cette ligne de code charge les données dans la table 'Situation_referenceDataSet.tab_client'
            Me.Tab_clientTableAdapter.Fill(Me.Situation_referenceDataSet.tab_client)
        End Sub

    Voila comment ce passe la chose je lance mon prog et du fait et ma listClient box affiche les données par l'intermédiaire des choses décrite ci-dessus et lorsque j'aoute, supprime ou modifie un enregistrement ma listclient bos ne ce met a jour que si je sort et reviens dans le prog. En espérant avoir été clair et encore merci. J'ai hate de m'en sortir cela fait maintenant 2 semaine que je cherche le moyen de mettre à jour cette listclient box.

    Maintenant j'utilise peut être une mauvaise méthode je ne sais pas.

    Zoltan

     


    Zoltan Biro

    vendredi 15 juin 2012 08:20
  • Bonjour Ehjoe,

    Dans ta réponse ce que tu me décris je sais faire. Mais mon probléme c'est de faire cela en liaison avec les ajouts, modification, suppresion avec ma base donnée acces. En Effet lorsque j'ajoute, efface ou modifie un enrgistrement il faut que je sorte du prog puis revenir pour avoir ou ne plus avoir l'élément dans ma combobox.

    Merci quand même pour ta réponse

    Zoltan


    Zoltan Biro

    vendredi 15 juin 2012 08:31
  • Bonjour, ter,

    Dans une ComboBox il n'y a pas de rafraîchissement à faire dans tes manipulations (ComboBox1.Items.Clear), ceci se fait automatiquement après un ajout ou un effacement d'élément(s) !

    Alors si ton problème concerne les directives d'une BDD, faudrait peut être ne pas écrire en question : "rafraichir ma combobox", mais faire une autre question qui ne soit pas hors sujet avec un titre du genre "Comment lire un élément d'une BDD ?", par exemple, ou quelque chose de ce genre...

    Cordialement.



    Joseph Attila PUSZTAY
    EhJoe       Logiciels       Romans       Ecrire


    vendredi 15 juin 2012 08:33
  • Ehjoe,

    Ok c'est noté, alors ma question deviens comment mettre à jour ma combobox lié avec une base de donnée acces lorsque j'aoute, supprime ou modifie l'enregistrement.

    Merci

    Cordialement

    Zoltan


    Zoltan Biro

    vendredi 15 juin 2012 08:38
  • Bonjour Zoltan,

    Heu, comme tu sais écrire dans un Combo, le problème vient uniquement de l'extraction des données de la BDD, car cceci tu sais le faire :

    dim element as string = maBDD.élément_X ' (faux code d'exemple)

    ComboBox1.items.add(element)

    Ton problème est que (element) ne contient pas la donné qui devrait y être, c'est donc exclusivement un problème de gestion de BDD, car ensuite ta donnée pourra aller dans un Combo, une List ou du TextBox, donc rien à voir stricto sensu avec le Combo sus-évoqué...

    Ainsi la question se résume sans doute à : "Comment lire un élément de ma  BDD ?"

    Cordialement.



    Joseph Attila PUSZTAY
    EhJoe       Logiciels       Romans       Ecrire



    • Modifié EhJoe vendredi 15 juin 2012 08:47 modif n°1
    vendredi 15 juin 2012 08:46
  • Bonjour,

    Essayer de modifier votre méthode Navigation de la façon suivante :

    Private Sub Navigation()
    
    'JE PENSE QUE LE PROBLEME EST ICI IL MA MANQUE QUELQUE CHOSE POUR RAFRAICHIR MA LISTE APRES AJOUT OU SUPPRESION
    
            'TODO: cette ligne de code charge les données dans la table 'Situation_referenceDataSet.tab_client'
            Me.Tab_clientTableAdapter.Fill(Me.Situation_referenceDataSet.tab_client)
    
            Me.TabClientBindingSource.DataSource = Nothing
    
            Me.TabClientBindingSource.DataSource = Me.Situation_referenceDataSet.tab_client
    
    End Sub

    Cordialement

    vendredi 15 juin 2012 10:12
    Auteur de réponse
  • merci à tous

    J'ai trouvé la solution ci-dessous le code dans private sub navigation() complété :

    J'ai rajouté la déclaration de variable :

        Dim Dtt As DataTable

        Private Sub Navigation()
              Me.Tab_clientTableAdapter.Fill(Me.Situation_referenceDataSet.tab_client)
            Listclient.Items.Clear()
            For Each Ligne In Dtt.DefaultView
                Listclient.Items.Add(Ligne.Item(1))
            Next Ligne
            Listclient.SelectedIndex = 0
        End Sub

    je vous remercie encore et mes excuses pour avoir donné un intitulé à ma demande ne correspondant pas tout à fait à la solution que j'attendais.

    Zoltan


    Zoltan Biro

    vendredi 15 juin 2012 11:46
  • Je pourrai avoir un petit points pour cela lol


    Zoltan Biro

    vendredi 15 juin 2012 11:46
  • Zoltan, ton premier point :o)

    Cordialement.



    Joseph Attila PUSZTAY
    EhJoe       Logiciels       Romans       Ecrire


    vendredi 15 juin 2012 11:52
  • EhJoe,

    Merci beaucoup pour ce point honorifique

    Bien à toi

    Zoltan


    Zoltan Biro

    vendredi 15 juin 2012 12:59