Combobox [Résolu]

Messages postés
60
Date d'inscription
mercredi 22 septembre 2004
Dernière intervention
20 juillet 2009
- 2 juin 2009 à 14:47 - Dernière réponse :
Messages postés
60
Date d'inscription
mercredi 22 septembre 2004
Dernière intervention
20 juillet 2009
- 3 juin 2009 à 15:13
Bonjour à tous!
Je développe une application et je rencontre quelques petites difficultés.Voila j'ai deux tables conseiller (code_conseiller,nom,prenom) et programme(code_programme,code_conseiller,libelle programme).Dans le formulaire de programme j'ai un combobox qui me permet de sélectionner le code conseiller.Alors j'aimerai qu'à la selection du code conseiller,qu'il m'affiche le nom correspondant au code.Alors j'ai fais ceci:
dans le module j'ai mis ceci:

Option Explicit On
Module select_nom_cons

    Public WasDelete As Boolean

    Public Function Selection(ByVal cmb_cod_cons As ComboBox) As String
        Selection = RTrim(cmb_cod_cons.SelectedValue)
    End Function
    Public Sub Tri(ByVal cmb_cod_cons As ComboBox)

        Dim iStart As Integer
        Dim iSense As String

        iStart = cmb_cod_cons.SelectionStart
        iSense = Selection(cmb_cod_cons)
        If iSense <> "" And Not WasDelete Then
            cmb_cod_cons.Text = iSense
            cmb_cod_cons.SelectionStart = iStart
            cmb_cod_cons.SelectionLength = Len(cmb_cod_cons.Text) - iStart
        End If

    End Sub
    Public Sub PressClavier(ByVal cmb_cod_cons As ComboBox, ByVal KeyAscii As Integer)

        If KeyAscii = 13 And cmb_cod_cons.Text <> "" Then
            Selection(cmb_cod_cons)
        ElseIf KeyAscii = 8 Then
            WasDelete = True
        Else
            WasDelete = False
        End If

    End Sub

End Module

et dans le combobox j'ai mis ceci:

Private Sub cmb_cod_cons_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmb_cod_cons.SelectedIndexChanged
        Tri(cmb_cod_cons)
        'definition de notre table
        Dim Matable As DataTable
        Matable = DtSet.Tables("conseiller")

        'cree un objet dataview pour filtrer les enregistrements
        Dim filtre1 As New DataView(Matable)

        'filtre selon le matricule de l'employé
        filtre1.RowFilter = "Code_conseiller like'*" & cmb_cod_cons.SelectedValue & "*'"

        'affiche les valeurs
        lbl_nom_cons.Text = filtre1.Item(0)(4)
      
    End Sub

Au chargement du formulaire programme,j'ai cette erreur:

La conversion du type 'DataRowView' en type 'String' n'est pas valide . et il me souligne cette ligne dans le module: Selection = RTrim(cmb_cod_cons.SelectedValue)

Alors j'aimerai savoir où est ce que j'ai commis l'erreur?Je suis dessus depuis le matin et ça commence à me donner de la migraine.

Merci pour votre aide.
Afficher la suite 

Votre réponse

4 réponses

Meilleure réponse
Messages postés
2859
Date d'inscription
mardi 15 avril 2003
Dernière intervention
26 novembre 2013
- 3 juin 2009 à 13:36
3
Merci
Je voulais plutot dire cela :

Public Function Selection(ByVal cmb_cod_cons As ComboBox) As String
        Return cmb_cod_cons.SelectedValue.ToString()
End Function

ou encore

Public Function Selection(ByVal cmb_cod_cons As ComboBox) As String
        Return cmb_cod_cons.SelectedItem.ToString()
End Function

@+ Mayzz.

                                                                                                                                        
Si le déboguage est l'art d'enlever les bogue

Merci Mayzz 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 87 internautes ce mois-ci

Commenter la réponse de Mayzz
Messages postés
2859
Date d'inscription
mardi 15 avril 2003
Dernière intervention
26 novembre 2013
- 2 juin 2009 à 19:22
0
Merci
Bonjour,

Le problème vien du fait que les valeurs de ton combo sont des DataRow (des objet Row, donc des lignes de table complète) et que ce type ne peut être convertis en String, vérifie les la propriété ValueMember de ton ComboBox, elle doit correspondre à un nom de colonne. Aussi fais la conversion en String de la valeur du ComboBox cmb_cod_cons.SelectedValue.ToString

@+ Mayzz

                                                                                                                                        
Si le déboguage est l'art d'enlever les bogue
Commenter la réponse de Mayzz
Messages postés
60
Date d'inscription
mercredi 22 septembre 2004
Dernière intervention
20 juillet 2009
- 3 juin 2009 à 09:58
0
Merci
Re!
Le problème reste le même malgré la ligne de code que j'ai rajouté dans mon code.Je te montre comment je déclare ma combobox:

        'on rempli le dataset pour le combobox
        AdapTcodeconseiller.Fill(DtSet, "conseiller")

        'remplissage du combobox avec le dataset
        Dim Matable1 As DataTable
        Matable1 = DtSet.Tables("conseiller")
        cmb_cod_cons.DataSource = Matable1
        cmb_cod_cons.DisplayMember = "Code_conseiller" 'Nom de la colonne de table que tu veux afficher dans le combo
        cmb_cod_cons.ValueMember = "Code_conseiller" 'Valeur de l'élément SelectedValue (Utiliser pour retourner les ID lors de la sélection d'un membre par ex.)
        cmb_cod_cons.SelectedValue.ToString()

Alors dis moi,il n'y a t-il pas un autre moyen ou méthode pour réaliser ce que je veux faire?

P/S:A titre d'information,j'utilise access et Code_conseiller est de type "texte"

Merci.
Commenter la réponse de rudybiss
Messages postés
60
Date d'inscription
mercredi 22 septembre 2004
Dernière intervention
20 juillet 2009
- 3 juin 2009 à 15:13
0
Merci
Salut!
Merci pour ton aide.c'est mieux en ce moment.J'aimerai aussi te demander une chose si cela ne te gène pas.En effet j'aimerai comparer deux textbox qui ont des valeurs numériques,donc je fais ceci:

If (IsNumeric(txt_montant.Text) > IsNumeric(txt_montant_allot.Text)) Then
            MsgBox("Le montant du stickers est supérieur à celui de son allotment", MsgBoxStyle.Information, "Vérification des montants")
End if

Mais il ne fais rien!Alors je me demande que dois faire pour qu'il fasse la vérification?
Merci d'avance!
Commenter la réponse de rudybiss

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.