Jump to content
Fórum Script Brasil
  • 0

Inverter leitura da tabela


Matheus-vb6

Question

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 to comment
Share on other sites

4 answers to this question

Recommended Posts

  • 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

Edited by Danleonhart
Link to comment
Share on other 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 to comment
Share on other sites

  • 0

Consegui fazendo uma gambiarra, porque são varias consultas, fiz uma tabela ler os dados e colocar em outra, ai depois vai para o grid....

não da para definir order by... a consulta é feita varias vezes num do while..

Abraços e vlw :)

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      152.2k
    • Total Posts
      652.1k
×
×
  • Create New...