none
Remplir une ComboBox avec une table Access RRS feed

  • Question

  • Toujours en rapport avec mon problème précédent (FillStyle) je souhaite maintenant remplir automatiquement une ComboBox avec les éléments d'une table Access avec laquelle une liaison est établie. La table s'appelle "Matériaux" et elle contient les champs suivants : "Nature" (String), "Couleur" (String), "FillCouleur" (String). (En fait, elle en comportera beaucoup plus, mais ces 3 grandeurs servent d'exemple).

    Voici le code actuel de remplissage de la ComboBox :

     Public Class Nature
            Public Property Nature As String
            Public Property Lambda As Single
            Public Property Couleur As Color
            Public Property Style As FillStyle
            Public Property FillCouleur As Color
        End Class
        Private Sub Principale_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
            Dim StyleRemplissage As String
            StyleRemplissage = "DashedVertical"
            Dim Valeur As FillStyle = CType([Enum].Parse(GetType(FillStyle), StyleRemplissage, True), FillStyle)
            Dim Nature() As Nature = {
                New Nature With {.Nature = "Aluminium", .Couleur = Color.PowderBlue, .Style = Valeur, .FillCouleur = Color.Red},
                New Nature With {.Nature = "Brique creuse", .Couleur = Color.Bisque, .Style = FillStyle.DashedVertical, .FillCouleur = Color.PowderBlue},
                New Nature With {.Nature = "Brique pleine", .Couleur = Color.Pink, .Style = FillStyle.DashedHorizontal, .FillCouleur = Color.PowderBlue},
                New Nature With {.Nature = "Placoplâtre", .Couleur = Color.BlanchedAlmond, .Style = FillStyle.LightUpwardDiagonal, .FillCouleur = Color.PowderBlue},
                New Nature With {.Nature = "Air", .Couleur = Color.LightCyan, .Style = FillStyle.LightDownwardDiagonal, .FillCouleur = Color.PowderBlue}
       }
            ComboBox1.DropDownStyle = ComboBoxStyle.DropDownList
            ComboBox1.Items.AddRange(Nature)
            ComboBox1.DisplayMember = "Nature"
            ComboBox1.SelectedIndex = 0
        End Sub
        Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
            Dim u As New UserControl1
            NuméroLame = NuméroLame + 1
            u.Nom.Text = "Lame" & Str(NuméroLame)
            u.BackColor = CType(ComboBox1.SelectedItem, Nature).Couleur
            u.RectangleShape1.FillColor = CType(ComboBox1.SelectedItem, Nature).FillCouleur
            u.RectangleShape1.FillStyle = CType(ComboBox1.SelectedItem, Nature).Style
            FlowLayoutPanel1.Controls.Add(u)
            u.Nature.Text = ComboBox1.Text
        End Sub


        Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ComboBox1.SelectedIndexChanged


        End Sub


        Private Sub ExitToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ExitToolStripMenuItem.Click
            End
        End Sub


    End Class

    Informations complémentaires :

    Les lignes suivantes (comprises dans le code ci-dessus) m'ont simplement servi à vérifier la solution qui vient de m'être donnée pour la conversion d'une valeur de type "String" en type "FillColor":

    Dim StyleRemplissage As String
            StyleRemplissage = "DashedVertical"
            Dim Valeur As FillStyle = CType([Enum].Parse(GetType(FillStyle), StyleRemplissage, True), FillStyle)
            Dim Nature() As Nature = {
                New Nature With {.Nature = "Aluminium", .Couleur = Color.PowderBlue, .Style = Valeur, .FillCouleur = Color.Red},...


    Pierre Allemand

    vendredi 30 mars 2012 09:57

Réponses

Toutes les réponses

  • Bonjour,

    Ce serait un peu long à expliquer. Par contre une très bonne référence est ce site :

    http://plasserre.developpez.com/cours/vb-net/?page=bases-donnees2

    Tout y est expliqué : comment se connecter, comment lire les données, etc.

    En faisant un copier/coller et en modifiant le code pour l'adapter à votre situation, vous pourriez vous connecter à votre base de données en quelques minutes.


    Jacques

    vendredi 30 mars 2012 10:17
  • Merci pour cette référence : j'ai parcouru rapidement ce cours, et je constate qu'il correspond exactement à ce que je recherchais : il explique comment  écrire le code, pourquoi l'écrire et aussi l'écrire. je n'aurais pas imaginé mieux, même en rêve...

    Cerise sur le gâteau, il comporte aussi une bibliographie critique, chose rare dans notre monde actuel où il est mal vu de critiquer...

    On est loin, très loin de l'aide de Microsoft, certes très complète, mais en pratique inexploitable pour un utilisateur non confirmé comme je le suis. En effet, cette aide commence par une liste de domaines uniquement définis par leur nom, c'est à dire strictement incompréhensibles pour le non initié. Ça me fait penser à une personne qui veut acheter des chaussures et qui rentre dans un magasin : elle est accueillie par un robot qui lui demande avec sa voix synthétique "voulez-vous acheter des articles de notre département XRTWZ45TT ou bien de notre département JHYT12JKKU ou bien encore de notre département TYRDXXW45II ?"

    La personne choisit un département au hasard, et le robot lui indique très poliment le couloir à prendre. Arrivée au fond du couloir, nouveau robot, nouvelle question : "Souhaitez-vous des produits de la section FFRTEX45 ou bien de la section FFGRET56 ou bien encore de la section YYTFEZ12 ?"

    Nouveau choix au hasard : le robot présent alors une liste de 35 478 articles...

    L'aide de Microsoft, c'est un peu ça : celui qui ne connait strictement rien à la différence entre .NET, Studio et Framework est bloqué dès le début de sa recherche... 

    (C'était mon petit coup de gueule vespéral dû au stress...)


    Pierre Allemand


    vendredi 30 mars 2012 12:33