Ir para conteúdo
Fórum Script Brasil
  • 0

Inverter leitura da tabela


Matheus-vb6

Pergunta

Boa noite gente...

Estou fazendo um código que vai ler os dados de uma tabela e passar para um grid, porém ele está listando assim:

004

012

056

E eu gostaria de uma ordem decrescente...

056

012

004

o código que usei foi esse

With grid
For L = 0 To lstQuantidade.ListCount - 1
texto = Split(lstQuantidade.List(L), "@#$$#@@")
.Rows = .Rows + 1
.TextMatrix(L + 1, 0) = texto(0)
.TextMatrix(L + 1, 1) = texto(1)
Next L
End With

Seria algum step no for?

Abraços :D

Link para o comentário
Compartilhar em outros sites

4 respostass a esta questão

Posts Recomendados

  • 0

Fala Matheus ! :)

Qual o Grid ? FlexGrid ou DataGrid ?

Quanto ao carregamento invertido você pode fazer isso na consulta, adicionando ao final da query a coluna que define a "Numeração" dos dados...tipo se, a coluna de auto-numeração for "Controle" por exemplo, você colocaria assim:

Dim ConSQL as String
ConSQL = "SELECT * FROM TABELA ORDER BY CONTROLE DESC"
O "DESC" no final da query traz os dados em ordem decrescente... e o "ASC" em ordem crescente. Na dúvida posta o script aê ;) VALEU !!! *** EDITADO *** Êita ! ví agora que é FlexGrid :P Aqui uma Sub que uso para preencher um FlexGrid de uma aplicação que tenho:
Sub Preencher_Grid()
Dim sQuery  As String
sQuery = "SELECT * FROM CLIENTES ORDER BY MATRICULA ASC"
Abb  ' <= Função que abre a conexão com o BD.
Set Rs = New ADODB.Recordset
Rs.CursorLocation = adUseClient
Rs.Open sQuery, Con, adOpenKeyset, adLockReadOnly

With FGrid1
           .TextMatrix(0, 0) = "Admissão :"
           .TextMatrix(0, 1) = "Matrícula :"
           .TextMatrix(0, 2) = "Nome :"
           .TextMatrix(0, 3) = "Função :"
           .TextMatrix(0, 4) = "Turno :"
           .ColWidth(0) = 1200
           .ColWidth(1) = 1200
           .ColWidth(2) = 2500
           .ColWidth(3) = 2000
           .ColWidth(4) = 800
           .ColAlignment(0) = 4
           .ColAlignment(1) = 4
           .ColAlignment(2) = 1
           .ColAlignment(3) = 1
           .ColAlignment(4) = 4
           
           ' Carregando os Dados do BD no FlexGrid
      Do Until Rs.EOF
         .AddItem Format(Rs!Admissao, "DD/MM/YYYY") & vbTab & Rs!Matricula & vbTab & Rs!Nome & vbTab & Rs!Funcao & vbTab & Rs!Turno
          Rs.MoveNext
      Loop
End With
' Limpando variáveis:
sQuery = Empty
Set Rs = Nothing
' Função que fecha a conexão com o BD.
FcB
End Sub

:D

Editado por Danleonhart
Link para o comentário
Compartilhar em outros sites

  • 0

Li o seu codigo, o que eu uso esta bem parecido, porém a mecanica do programa funciona assim... uma consulta é feita varias vezes, contando quantos nomes aparecem na tabela pedidos.... depois uma nova consulta, faz com que verifique quantas vezes aparece cada um desses nomes, é tipo, pra saber quanto foi vendido de cada produto....

Código:

Private Sub Form_Load()
lstProdutos.Clear
abrebanco
Set rsdados = New ADODB.Recordset
rsdados.Open "select Nome from pedidos group by nome order by nome", cn
Do While rsdados.EOF = False
lstProdutos.AddItem rsdados("Nome")
rsdados.MoveNext
Loop
With grid
.FixedRows = 1
.FixedCols = 1
.Cols = 4
.ColWidth(0) = 500
.ColWidth(1) = 2000
.ColWidth(2) = 800
.ColWidth(3) = 2500
.TextMatrix(0, 1) = "Quantidade vendida"
.TextMatrix(0, 2) = "Código"
.TextMatrix(0, 3) = "Nome do produto"
End With
fechabanco
abrebanco
For L = 0 To lstProdutos.ListCount - 1
Set rsdados = New ADODB.Recordset
rsdados.Open "select count(nome) as x from pedidos WHERE nome='" & lstProdutos.List(L) & "'", cn
If Len(rsdados("x")) = 1 Then
lstQuantidade.AddItem "00" & rsdados("x") & "@#$$#@@" & lstProdutos.List(L)
ElseIf Len(rsdados("x")) = 2 Then
lstQuantidade.AddItem "0" & rsdados("x") & "@#$$#@@" & lstProdutos.List(L)
Else
lstQuantidade.AddItem rsdados("x") & "@#$$#@@" & lstProdutos.List(L)
End If
rsdados.Close
Next L
fechabanco
With grid
For L = 0 To lstQuantidade.ListCount - 1
texto = Split(lstQuantidade.List(L), "@#$$#@@")
.Rows = .Rows + 1
.TextMatrix(L + 1, 0) = texto(0)
.TextMatrix(L + 1, 1) = texto(1)
Next L
End With
End Sub

Abraços :D

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...