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

 

  Fórum

  Visual Basic
Voltar
Autor Assunto:  problemas com recordcount e flexgrid
mineirop
POÇOS DE CALDAS
MG - BRASIL
ENUNCIADA !
Postada em 04/04/2006 20:00 hs         
seguinte galera
 
tenho a variavel tb que faz referencia a uma tabela do meu banco de dados. nesta tabela tenho varios registros. meu form_load é este
 
dim db as dao.database
dim tb as recordset
dim x
 
set tb = db.openrecordset("select * from produtos order by descricao")
grade.rows = tb.recordcount + 1
for x = 1 to tb.recordcount
   grade.textmatriz(x,0)=tb("codigo")
   grade.textmatriz(x,1)=tb("descricao")
   ...
   tb.movenext
next x
tb.close
set tb = nothing
 
pela logica grade deveria ter o mesmo numero de linhas que o numero de registros na tabela + 1 mas só aparecem 2 linhas, se eu ordenar por codigo aparecem todos mas por questao de estetica preciso ordenar por descricao
se eu debug o codigo ele me retorna o seguinte
 
grade.rows = tb.recordcount + 1
linhas= 2          tb.recordcount = 30 registros
 
tenho o mesmo codigo em um outro projeto que funciona normalmente, inclusive este codigo foi copiado de la. mas neste projeto ta dando erro
 
por favor alguem pode me explicar
 
desde agradeço
 
Mineirop
TÓPICO EDITADO
 
Cardoso G
Pontos: 2843 Pontos: 2843
PATOS DE MINAS
MG - BRASIL
ENUNCIADA !
Postada em 05/04/2006 07:34 hs            
nao precisa disso, é so vc inserir os registros as linhas vao aumentando automaticamente
 
   
mineirop
POÇOS DE CALDAS
MG - BRASIL
ENUNCIADA !
Postada em 05/04/2006 08:19 hs         
Cardoso valeu pela atenção,
mas ou vc não entendeu ou eu não consegui explicar direito
 
eu ja tenho os registros e ja tentei adicionar + para ver se resolve mas não adiantou
 
o que eu preciso é que o flexgrid seja preenchido no momento em que eu chamar o form com os registros ja existentes, o que eu não to conseguindo entender é porque no outro projeto que tenho funcionou direito. se os dois são iguais deveria agir da mesma forma.
 
obrigado pela atenção de qualquer forma
 
Mineirop
   
G. Bittencourt
SÃO PEDRO DA ALDEIA
RJ - BRASIL
ENUNCIADA !
Postada em 05/04/2006 08:32 hs            
Olá mineirop, experimente mudar seu código da seguinte maneira:
 
dim db as dao.database
dim tb as recordset
dim x
 
set tb = db.openrecordset("select * from produtos order by descricao")
if not tb.eof then
     tb.moveMax
     tb.movefisrt
end if
grade.rows = tb.recordcount + 1
for x = 1 to tb.recordcount
   grade.textmatriz(x,0)=tb("codigo")
   grade.textmatriz(x,1)=tb("descricao")
   ...
   tb.movenext
next x
tb.close
set tb = nothing
 
O código que inseri acima (o que está em vermelho) dá uma atualizada no recordcount, pois nem sempre o recordcount consegue contar corretamente os registros quando passamos uma instrução SQL via DAO, ele precisa receber um tipo de refresh.
Espero ter ajudado!!!

Abraços!!!
by
Gustavo Bittencourt Costa
TÓPICO EDITADO
 
G. Bittencourt
SÃO PEDRO DA ALDEIA
RJ - BRASIL
ENUNCIADA !
Postada em 05/04/2006 08:36 hs            
Olá mineirop.
Por favor concerte uma coisa, onde se lê Max coloque "l a s t".
Desculpe pelo equivoco.
 
Ps.: escrevi "l a s t" separado e entre aspas pois quando escrevo "l a s t" tudo junto o site muda a palavra "l a s t" por Max. Eu hein!!! Vai entender!!!

Abraços!!!
by
Gustavo Bittencourt Costa
TÓPICO EDITADO
 
Ama
Pontos: 2843
UBERLÂNDIA
MG - BRASIL
ENUNCIADA !
Postada em 08/04/2006 22:23 hs         
tire a rotina do evento load e insira no evento active do form!
   
Página(s): 1/1    

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