USUÁRIO:      SENHA:        SALVAR LOGIN ?    Adicione o VBWEB na sua lista de favoritos   Fale conosco 

 

  Fórum

  Visual Basic
Voltar
Autor Assunto:  Forma mais rápida de carregar uma grid.
Abimael
SÇAO PAULO
SP - BRASIL
ENUNCIADA !
Postada em 25/01/2008 12:06 hs            

Eu utilizo este código para carregar minha grid. Acho um pouco lento, tem alguma forma mais rápida de carregar uma grid?

 

 

 

Private Function CarregaFex()

    ' Dim Tipo As String     'Se o usuario for ADM ou Usuario.

    LimpaCampos

    Contador = 1

    With MSFlexGrid

        While Not TbTrans.EOF

            .AddItem (TbTrans!Codigo) & (Chr(9) & TbTrans!Rsocial) & (Chr(9) & TbTrans!NFantasia) & (Chr(9) & TbTrans!Cidade) _

             & (Chr(9) & TbTrans!Estado) & (Chr(9) & TbTrans!Telefone) & (Chr(9) & TbTrans!Celular)

            TbTrans.MoveNext

            .Col = 0

            .Row = Contador

            .CellForeColor = &H8000000F

            Contador = Contador + 1

        Wend

        If .Rows > 2 Then

            .RemoveItem 1

        End If

        .Row = Contador - 1

        .CellForeColor = &H8000000F

    End With

End Function

   
ssbarbosa
não registrado
ENUNCIADA !
Postada em 25/01/2008 17:16 hs   

Coloque um MsFlexGrid com o Nome: Grd_Principal
Coloque um Botao com Nome: Cmd_Faz
Cloque:
Label Nome = Lbl_Total
Label Nome = Lbl_timer

Faça o teste usando o Grid.visible=False e com o grid.visible=true


Private Sub Cmd_Faz_Click()


Dim f As Integer
Dim Prc As Integer
Dim Qtd As Byte
Dim c As Byte
Dim r As Integer

Dim Total As Double
Dim StartTime As Long


Screen.MousePointer = 11
Chk_Invisible.Enabled = False
StartTime = Timer

Lbl_Total = "..."
Lbl_timer.Caption = "..."

Me.Caption = " Aguarde processando..."

With Grd_Principal
    .Row = 0
    .Col = 1
    .ColWidth(1) = 3300
    .Text = "Item Code:"
    .Col = 2
    .Text = "Qtd.:"
    .Col = 3
    .Text = "Prc"
End With


With Grd_Principal
    
    Grd_Principal.Visible = False

        For r = 1 To 1999
            .Row = r
            .Col = 1
            .Text = .Text & "x"
            .Col = 2
            .Text = .Text & "x"
            .Col = 3
            Total = Total + CCur(0 & .Text)
        
            Qtd = Int(Rnd * 20) + 1
            Prc = (Rnd * 3000) + 1
            .AddItem vbTab & "AAA-" & f & vbTab & Qtd & vbTab & Prc
        Next r
    

    .Visible = True
End With

Me.Caption = "Consulta dados do arquivo "
Grd_Principal.Visible = True

Screen.MousePointer = 0


Exit Sub


Faça o teste

Espero que esclareça para voce

cuidado com grandes processos....
   
Abimael
SÇAO PAULO
SP - BRASIL
ENUNCIADA !
Postada em 25/01/2008 17:23 hs            
Legal vou testar..;.
   
tomprata
JUIZ DE FORA
MG - BRASIL
Postada em 25/01/2008 22:53 hs            
Basta usar MSFlexGrid1.Redraw =False  antes de carregar os dados e MSFlexGrid1.Redraw =True após carregar.

     
Delcio (DelSf)
SANTO ANDRÉ
SP - BRASIL
ENUNCIADA !
Postada em 26/01/2008 00:10 hs         
Cara, fica absurdamente mais rapido, basicamente instantaneo.
Valeu pela Dica :-)
   
Cardoso G
Pontos: 2843 Pontos: 2843
PATOS DE MINAS
MG - BRASIL
ENUNCIADA !
Postada em 28/01/2008 11:20 hs            
faça
set grid.datasource = TbTrans
   
Página(s): 1/1    


Seu Nome:

Seu eMail:

ALTERAR PARA MODO HTML
Mensagem:

[:)] = 
[:P] = 
[:(] = 
[;)] = 

HTML DESLIGADO

     
 VOLTAR

  



CyberWEB Network Ltda.    © Copyright 2000-2024   -   Todos os direitos reservados.
Powered by HostingZone - A melhor hospedagem para seu site
Topo da página