Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Flyfree

Listagem no listview muda a posição das colunas

Recommended Posts

Pessoal, já li o forum todo sobre listview e não encontrei solução, por isso estou pedindo ajuda.

 

é o seguinte...

 

Uso o listview para listar os campos do banco, na primeira listagem aparece as colunas corretamente nas posições, quando faço uma filtragem através de um combo, listando por nome por exemplo a listagem é feita mas o listview muda as posições das colunas, por exemplo, onde tinha que vir telefone vem endereço.

 

 

O código para listagem logo na abertura é esse:

 

este código é o que lista corretamente logo na abertura.

 

Private Sub enche_lista()

Dim j As Long: j = 0

Dim X As Single

Do While Not rs.EOF

j = j + 1

lst_contatos.ListItems.Add , "k" & j, " " & Format(rs!Código, "0000")

For X = 1 To 7

If Not IsNull(rs(X)) Then

lst_contatos.ListItems(j).SubItems(X) = Replace(rs(X), "§", "'")

Else

lst_contatos.ListItems(j).SubItems(X) = ""

End If

Next

rs.MoveNext

Loop

 

End Sub

 

 

Depois

Uso este código pra fazer a filtragem usando combo

 

Public Sub txtFiltro()

 

Dim ordernarpor As String

Dim DASC As String

 

If cmbOrdernarPor.ListIndex = -1 Then cmbOrdernarPor.ListIndex = 0

If cmbOrdem.ListIndex = -1 Then cmbOrdem.ListIndex = 0

 

Select Case cmbOrdernarPor.ListIndex

Case 0

ordernarpor = "código"

Case 1

ordernarpor = "nome"

Case 2

ordernarpor = "email"

End Select

 

Select Case cmbOrdem.ListIndex

Case 0

DASC = "asc"

Case 1

DASC = "desc"

 

End Select

 

verifica_rs

rs.Open "select * from contatos order by " & ordernarpor & " " & DASC, cn

preenche_lista

 

 

End Sub

 

 

Ai uso este outro para listar novamente só que é ai que muda a ordem das colunas.

e esse é o que faz a listagem, é este que está mudando.

 

 

Public Sub preenche_lista()

 

lst_contatos.ListItems.Clear

 

If rs.RecordCount = 0 Then Exit Sub

 

While Not rs.EOF

Set lst = lst_contatos.ListItems.Add(, , rs(0))

 

For i = 1 To 7

lst.SubItems(i) = rs(i)

Next i

rs.MoveNext

Wend

 

End Sub

 

 

 

Se tiver como me ajudarem ficarei agradecido.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pessoal, já descobri, esqueçam esse código, não tem nada a ver com o problema, é que em uma parte eu estava colocando a ordem das tabelas, na outra o código estava pegando a ordem diretamente do banco, foi só ordenar no banco e pronto.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.