cs_ramaro
Messages postés11Date d'inscriptionvendredi 4 février 2005StatutMembreDernière intervention31 juillet 2008
-
23 avril 2007 à 11:42
cs_ramaro
Messages postés11Date d'inscriptionvendredi 4 février 2005StatutMembreDernière intervention31 juillet 2008
-
23 avril 2007 à 13:26
bonjour à tous!
J'ai un problème sur l'appel d'un événement sur vb6. En faite, j'ai un listview et j'ai envie qu'au moment du chargement de la fenêtre il appel l'événement associé à mon listview "listview1_columnClick(columnheader)", mais apparemment il y a un problème sur l'affectation du paramètre "columnheader". est-ce que quelqu'un à une solution à mon problème? Ou ce que j'essaie de faire n'est pas possible (l'appel de l'événement).
Je précise que mon but c'est de trié ma liste view avec un column de type numérique, mais je remarque qu'il ne prend en charge que le type string.
j'essaie de faire un truc comme ceci dans ma requête ado : "select * from ma_table order by col_number" pour extraire les données d'une table dans la liste mais ça ne marche pas.
Est-ce que quelqu'un connais la raison pour que le liste view ne trie que les Strings?
cs_ramaro
Messages postés11Date d'inscriptionvendredi 4 février 2005StatutMembreDernière intervention31 juillet 2008 23 avril 2007 à 12:29
Oui, j'essai de trier la première colonne qui est de type numérique.
je crée un instance sur un enregistrement de ma base avec ado pour extraire les enregistrements.
With adoRub
.ConnectionString = G_connexion
.CommandType = adCmdText
.CursorLocation = adUseClient
.CursorType = adOpenKeyset
.RecordSource = "select* from tbl_rub order by id_rub"
.Refresh
End With
Me.AdoRub.Refresh
With Me.AdoRub.Recordset
lsw_Rub.ListItems.Clear
If .RecordCount > 0 Then
lngCountBenef = 0
.MoveFirst
While Not .EOF
If Not IsNull(!id_rub) Then
Set sItem = lsw_Rub.ListItems.Add(, , !id_rub)
Else
Set sItem = lsw_Rub.ListItems.Add(, , null)
End If
If Not IsNull(!strDesignation) Then
sItem.SubItems(1) = !strDesignation
Else
sItem.SubItems(1) = vbNullString
End If
If Not IsNull(!strType) Then
sItem.SubItems(2) = !strType
Else
sItem.SubItems(2) = vbNullString
End If
lngCountBenef = lngCountBenef + 1
.MoveNext
Wend
End If
End With
au lien davoir l'order 1,2,3,4,5,6,7,8,9,10,11,12 sur l' "id_rub"
j'ai ceci : 1,10,11,12 ...... 2,20,21....
cs_Exploreur
Messages postés4821Date d'inscriptionlundi 11 novembre 2002StatutMembreDernière intervention15 novembre 201615 23 avril 2007 à 13:07
Salut,
Attend voir, il y a eu déjà une question sur le forum et Darksidious y avait répondu..Il me semble qu'il faut que tu regardes si ton champ dans ta base et du type numérique..
cs_Exploreur
Messages postés4821Date d'inscriptionlundi 11 novembre 2002StatutMembreDernière intervention15 novembre 201615 23 avril 2007 à 13:24
Me revoilou, c'est bien cela, vérifie dans ta base de donnée que ton champ Id_Rub, soit bien déclaré en numérique...
Et dernière petite chose, il y a un truc que tu peux faire dans ton code pour l'optimisé c'est :
If Not IsNull(!strDesignation) Then
sItem.SubItems(1) = !strDesignation
Else
sItem.SubItems(1) = vbNullString
End If
En faisant cela tu vérifié donc que si ton champ designation dans ta base n'est pas vide, tu remplis un subitems de la listview, tu peux très bien remplacer ton code ci-dessus par :
If Not IsNull(!strDesignation) Then sItem.SubItems(1) = !strDesignation
Dans le cas ou ton champ désignation est vide, ben il se passe rien, et ton subitems sera quand même vide....
A+
Exploreur
Vous n’avez pas trouvé la réponse que vous recherchez ?
cs_ramaro
Messages postés11Date d'inscriptionvendredi 4 février 2005StatutMembreDernière intervention31 juillet 2008 23 avril 2007 à 13:26
c'est cool Exploreur mais ne donne plus la peine de chercher. l'astuce c'est la propriété sorted du liste view. on le met à false
pour qu'il ne trie pas au moment du chargement.
merçi encore