MSFLEXGRID MAIS RAPIDO?

HELDER 30/11/2006 13:59:24
#187203
No seguinte código, demora muito tempo a preencher o msflexgrid, devido á linha: [txt-color=#3333ff]reg1.Filter = "códentidade='" & rs("códentidade") & "'"[/txt-color]

Tem como melhorar, tornar mais rápido?



MySql = "Select * from Entidades"
reg1.Open MySql, db, adOpenKeyset
x = 1

MySql = "Select * from [Contas Correntes] where códtipoentidade='C' order by nummov"
rs.Open MySql, db, adOpenKeyset

rs.MoveFirst
With MSFlexGrid1
.Refresh
.Visible = False
.Rows = rs.RecordCount + 1
.Cols = rs.Fields.Count - 1
.Row = 0
.Col = 0
'.RowSel = .Rows - 1
'.ColSel = .Cols - 1

While Not rs.EOF



reg1.Filter = "códentidade='" & rs("códentidade") & "'"
.TextMatrix(x, 0) = rs("NumMov")
.TextMatrix(x, 1) = rs("Data")
.TextMatrix(x, 2) = rs("CódTipo")
.TextMatrix(x, 3) = rs("NumDoc")
.TextMatrix(x, 4) = reg1("Nome")
.TextMatrix(x, 5) = FormatCurrency(rs("Débito"), 2)
.TextMatrix(x, 6) = FormatCurrency(rs("Crédito"), 2)
x = x + 1


rs.MoveNext
Wend


.Visible = True
Set rs = Nothing
'Set db = Nothing
.Row = 1
.Col = 1
.TopRow = .Rows - 1 'Posiciona no ultimo registo

End With


USUARIO.EXCLUIDOS 30/11/2006 14:16:22
#187207
Resposta escolhida
Explique como vc está montando este Flex
Pois pelo que estou vendo vc está filtrando dentro flex.

Porque já não passa o resultado através de um recordset
Usando Inner Join.

E não o Filter.


Algumas Dicas:
Não crie nomes de campos ou tabelas com acentuações.


Até mais,


Guardião!


HELDER 30/11/2006 15:59:32
#187252
Tem razão se usar uma consulta, deve ser bem mais rápido.

Fico show

SELECT [Contas Correntes].NumMov, [Contas Correntes].Data, [Contas Correntes].CódTipo, [Contas Correntes].NumDoc, Entidades.Nome, [Contas Correntes].CódTipoEntidade, [Contas Correntes].CódEntidade, [Contas Correntes].Crédito, [Contas Correntes].TotalDoc, [Contas Correntes].Débito
FROM Entidades INNER JOIN [Contas Correntes] ON (Entidades.CódEntidade = [Contas Correntes].CódEntidade) AND (Entidades.CódTipoEntidade = [Contas Correntes].CódTipoEntidade)
WHERE ((([Contas Correntes].CódTipoEntidade)="c"))
ORDER BY [Contas Correntes].NumMov
;
Tópico encerrado , respostas não são mais permitidas