rudybiss
Messages postés60Date d'inscriptionmercredi 22 septembre 2004StatutMembreDernière intervention20 juillet 2009
-
2 juin 2009 à 14:47
rudybiss
Messages postés60Date d'inscriptionmercredi 22 septembre 2004StatutMembreDernière intervention20 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.
Mayzz
Messages postés2813Date d'inscriptionmardi 15 avril 2003StatutMembreDernière intervention 2 juin 202028 2 juin 2009 à 19:22
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
rudybiss
Messages postés60Date d'inscriptionmercredi 22 septembre 2004StatutMembreDernière intervention20 juillet 2009 3 juin 2009 à 09:58
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"
rudybiss
Messages postés60Date d'inscriptionmercredi 22 septembre 2004StatutMembreDernière intervention20 juillet 2009 3 juin 2009 à 15:13
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!