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

 

  Fórum

  Visual Basic
Voltar
Autor Assunto:  Localizar um registro, do último para o primeiro
Scaliburth
BELO HORIZONTE
MG - BRASIL
Postada em 16/06/2004 13:23 hs            
É de conhecimento de todos, que a localização de um registro pelo VB, começa da primeiro e vai até o último. Mas gostaria de fazer esta pesquisa em sentido contrário, ou seja, do último registro para o primeiro. Tentei mudar a forma de classificação do campo na tabela para Ordem Decrescente, mudei também o index para decrescente, so que também não da certo. Sei que poderia fazer uma consulta com as propriedade move e depois procurar para ver se tem outro registro, até chegar no mais atual, só que minha tabela é muito grande e isso poderia fazer com que o programa ficasse mais lento.
     É possível fazer este tipo de pesquisa? Do último registro para o primeiro.
    
     O código que eu uso é o seguinte:
"Dim banco as database
 dim tabe as recordset
 set banco = opendatabase (caminho)
 set tabe=banco.openrecordset(Tabela)
 tabe.Index = "Campo0"
 tabe.Seek "=", text1
 if tabe.nomatch then
        sequencia do código
else
        text2=tabe("Campo1")
        text3=tabe("Campo2"
        ...
 end if
Agradeço a todos
     
Martini
Pontos: 2843 Pontos: 2843
PAROBÉ
RS - BRASIL
Postada em 16/06/2004 13:36 hs         
coloca o índice normal, move para o último e vem retrocedendo.
 
dim tabe as recordset
 set banco = opendatabase (caminho)
 set tabe=banco.openrecordset(Tabela)
tabe.Index = "Campo0"
 tabe.moveMax
 do while tabe.bof
   if tabe![Campo] = text1 then
      'Achou
  end if
  tabe.MovePrevious
 end if
     
Los Zeus®
Pontos: 2843 Pontos: 2843
SÃO PAULO
SP - BRASIL
Postada em 16/06/2004 13:39 hs            
Oq vc pode fazer é primeiro contar todos os registros e armazena em uma variavel.....depois em um loop vc vai subtraindo a variavel por 1 e manda ele buscar o valor atual da mesma....ex:

Dim Vnum As Integer
Tabela.MoveMin
While Tabela.EOF = False
    Vnum = Vnum + 1
    Tabela.MoveNext
Wend
Tabela.MoveMin
Tabela.MoveMax
While Vnum <> 0
    List.AddItem Tabela.Fields!nome
    Tabela.MovePrevious
    Vnum = Vnum - 1
Wend

Abraço

obs: Aonde está escrito MoveMin é Move "F I R S T"
e onde está escrito MoveMax é Move "L A S T"
TÓPICO EDITADO
   
^HEAVY-METAL^
Pontos: 2843 Pontos: 2843 Pontos: 2843
SÃO JOSÉ DOS CAMPOS
SP - BRASIL
Postada em 16/06/2004 13:47 hs            
E se por acaso você utilizasse uma rotina sql?? Não ajudaria a filtrar esses registros em vez de "varrer" o banco de dados do inicio ao fim????
 
T+,

Manuel F. L. Sansoni

Supervisor de TI

 

     
Keyo
Pontos: 2843
CURITIBA
PR - BRASIL
Postada em 16/06/2004 15:32 hs            
Eu acharia mais correto migrar do Dao para Ado que te dá masi flexibilidade nas consultas.
 
rs.open "select * from tabela order by campo desc"
     
Página(s): 1/1    


Seu Nome:

Seu eMail:

ALTERAR PARA MODO HTML
Mensagem:

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

HTML DESLIGADO

     
 VOLTAR

  



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