COMO ORDENAR UMA LISTVIEW POR NUMERO

USUARIO.EXCLUIDOS 02/04/2004 11:44:45
#18373
Faço esta ordenação mas ela ordena como texto e não como data ou numero!
Uso VB6
Alguem poderia me dizaer como fazer para a listaView ordenar pela data ou numero ?!

Private Sub lvwLog_ColumnClick(ByVal ColumnHeader As ColumnHeader)

lvwLog.Sorted = True ' Sort the List.

If Not blnOrdenacao Then
lvwLog.SortOrder = lvwDescending
blnOrdenacao = True
Else
lvwLog.SortOrder = lvwAscending
blnOrdenacao = False
End If

lvwLog.SortKey = ColumnHeader.Index - 1


End Sub
USUARIO.EXCLUIDOS 02/04/2004 11:47:25
#18374
Resposta escolhida
Parece que a listview so o ordena como string

Quantas casas decimais tem o numero pois se tua adicionar um numero de zeros antes deixando todos numeros de tamanho igual a ordenação fica OK

Outro metodo é usar um RECORSET desconectado e depois usar filter
USUARIO.EXCLUIDOS 02/04/2004 12:00:03
#18380
Dá se fazer via SQL

Como tu pega os valores de um banco...

Pois tu usa o DATA (DAO) ou a propriedade DATASOURCE(ADO) e com SQL tu ordena o que tu quiser
USUARIO.EXCLUIDOS 02/04/2004 14:09:16
#18426
Sabe usar um recordset desconectado do ADO

faça o seguinte com a HIERACFLEXGRID

Dim rs As New ADODB.Recordset
rs.Fields.Append "DATA", adDate
rs.Open
rs.AddNew
rs(0) = "12/12/1979"
rs.AddNew
rs(0) = "18/12/1979"
rs.AddNew
rs(0) = "14/12/1979"
rs.AddNew
rs(0) = "15/12/1979"
rs.AddNew
rs(0) = "11/12/1979"
rs.Sort = "data"
Set MSHFlexGrid1.DataSource = rs
USUARIO.EXCLUIDOS 02/06/2004 10:31:19
#27778
Faça o seguinte, crie uma coluna oculta no listview, vamos supor

NOME - DATA - DATAOCULTA
Flavio - 12/12/1979 19791212
JOAO - 1/1/1980 19800101

Entendeu a coluna oculta tem o mesmo dado da coluna data só no formato

YYYMMDD daí quando ordenar por nome use

listview1.sortkey 1

E por data en vez de 2 use 3

listview1.sortkey 3

e depios deixe a largura da coluna de tamanho zero para oculta-la
USUARIO.EXCLUIDOS 02/06/2004 10:45:57
#27788
Faça Format(Numero,"00000000")

Na coluna oculta, já fiz isto e funciona Ok
USUARIO.EXCLUIDOS 02/06/2004 10:50:26
#27793
Deixe o WIDTH da coluna = 0
Tópico encerrado , respostas não são mais permitidas