monopole
Messages postés44Date d'inscriptionjeudi 9 juin 2005StatutMembreDernière intervention29 janvier 2009
-
11 nov. 2008 à 02:57
monopole
Messages postés44Date d'inscriptionjeudi 9 juin 2005StatutMembreDernière intervention29 janvier 2009
-
12 nov. 2008 à 02:35
Bonjour,
je migre mes applications depuis le vb 6.0 vers le vb.net , j ai un petit problem avec un combobox qui ffiche les donnees corectement mais quand je valide ma commande sql j aimerai bien que les donnees s enregistre en temps que des newindex (( 0, 1 ou 2 )) mais pas le text (( --select -- , conformes ou non conformes )), peut etre l un de vous peut m aider.
voila mon code en vb 6.0 :
==========================
Private Sub Filletat(ByVal Id)
cmbetat.Clear
End Sub
============================
le probleme qui existe c est que je n arrive pas a convertire le FindInData() :
=================================================
Private Sub FindInData(lst As Control, ByVal lData As Long)
Dim i As Long
On Error GoTo ErrorRtn
If lst.ListCount < 1 Then Exit Sub
For i = 0 To lst.ListCount
If i = lst.ListCount Then
lst.ListIndex = -1
Exit For
End If
If lst.ItemData(i) = lData Then
If lst.ListIndex = i Then
lst.ListIndex = -1
lst.ListIndex = i
Else
lst.ListIndex = i
End If
Exit For
End If
Next i
ExitRtn:
Exit Sub
jmf0
Messages postés1566Date d'inscriptionmardi 26 décembre 2000StatutMembreDernière intervention 5 avril 20138 11 nov. 2008 à 08:08
Bonjour,
déjà, ce que tu as écrit en VB6 est pour le moins surprenant !
Private Sub FindInData(lst As Control, ByVal lData As Long)
Dim i As Long
On Error GoTo ErrorRtn ' je ne vois pas du tout quelle erreur est susceptible d'intervenir avec ce que tu veux ensuite faire
If lst.ListCount < 1 Then Exit Sub
For i = 0 To lst.ListCount
If i = lst.ListCount Then
lst.ListIndex = -1 ' il te suffirait de mettre ceci après le Next !
Exit For ' ben tu parles ! exit for ! bien itutile puisque to lst.ListCount (qui devrait d'ailleurs être to lst.ListCount - 1
End If
If lst.ItemData(i) = lData Then
' Késako ???????? au bout du compte et dans tous les cas de figure : lst.listindex = i
If lst.ListIndex = i Then
lst.ListIndex = -1
lst.ListIndex = i
Else
lst.ListIndex = i
End If
Exit For
End If
Next i
' et alors là !!!!!! (c'est le pompon)
ExitRtn:
Exit Sub
ErrorRtn:
GoTo ExitRtn
End Sub
Tu devrais commencer, avant de traduire en VB.Net, par revoir ce que tu as écrit là en VB6 !
us_30
Messages postés2065Date d'inscriptionlundi 11 avril 2005StatutMembreDernière intervention14 mars 201610 11 nov. 2008 à 17:17
Bonjour,
Perso, je ne vois pas l'intérêt de faire une procédure... mais bon... à priori, j'aurai plutôt écris ceci :
Private Sub FindInData(lst As Control, ByVal lData As Long)
Dim i As Long<strike>
</strike> For i = 0 To lst.ListCount
If lst.ItemData(i) = lData Then
lst.ListIndex = i
Exit Sub
End If
Next i
lst.ListIndex = -1
End Sub
monopole
Messages postés44Date d'inscriptionjeudi 9 juin 2005StatutMembreDernière intervention29 janvier 2009 12 nov. 2008 à 02:35
bonjour , merci de votre reponse mais j essaye d etre claire pour avoir votre aide , quand je fait la selection du combobox je valide la requete afin que les donnees seront enregistrer dans une table sql, j aimerai bien que les donnees inseret depuis le combobox seront les selectindex soit 0,1, ou 2 mais pas le texte afficher pour l utilisateur.
voila le probleme excactement sur vb.net>>
=================
Private
Sub Filletat(ByVal Id)
cmbetat.Items.Clear()
cmbetat.Items.Add("-- Select --")
cmbetat.Items(cmbetat.SelectedIndex) = 0
cmbetat.Items.Add("Conformes")
cmbetat.Items(cmbetat.SelectedIndex) = 1
cmbetat.Items.Add("Non Conformes Traites")
cmbetat.Items(cmbetat.SelectedIndex) = 2
FindInData(cmbetat, IIf(IsDBNull(Id), 0, Id))
End
Sub
== a la ligne rouge je recois ce message d erreur :
InvalidArgument=Value of '-1' is not valid for 'index'. Parameter name: index
sachant que ma procedure est comme suivant :
Private
Sub FindInData(ByVal lst As Control, ByVal lData AsLong)Dim i AsLong