Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Pessoal,Como fazer para que, se o ponteiro chegar ao ultimo registro da tabela voltar para o primeiro, tipo: 13478912131417Então não posso usar +1 tem que ser no movenext e quando chegar no 17 voltar para o registro 1, como se a tabela não tivesse fim.Já tentei de tudo que eu sabia, mas devo ser muito burrão mesmo!Dony
Aqui está o codigo
'Pego o ID do ultimo imovel que foi exibido e gravado na tabela exibição e movo o registro pra frente (o tipo C é de casa)Set imoveis= Conexao.Execute("SELECT * FROM imoveis WHERE tipo = "C" and IDImoveis = rs("atual")")'aqui que entra o problema, se for o fim do arquivo move para o primeiro registro, se não para o proximoIf not imoveis.eof then imoveis.movenext imoveis("id") = idProximoElse imoveis.movefirst imoveis("id") = idProximo End If
Tive um problema parecido a tempos atras mas resolvi de outro jeito, aqui não vai mesmo!
bom,vamos lá
primeiro, você não vai conseguir mover o recodset para o primeiro registro pois se ele não encontra então está vazio, se está vazio não existe linhas de registro, o que você pode fazer é uma outra consulta
Set imoveis= Conexao.Execute("SELECT FROM imoveis WHERE tipo = C and IDImoveis = "&rs("atual")&"")If not imoveis.eof then imoveis.movenext idProximo=imoveis("id") Else Set imoveis= Conexao.Execute("SELECT FROM imoveis WHERE tipo = C") imoveis.movefirst if not imoveis.eof then idProximo=imoveis("id") end ifEnd Ifbom, fiz uma alteração no SQL pois tinha um probleminha com aspas e concatenação, outra coisa, alterei essa parte também
de : imoveis("id") = idProximo
para: idProximo=imoveis("id")
caso eu tenha bagunçado seu codigo arruma ai, mas essa foi a solução que encontrei de momento
cara você está certo nos acertos de codigo, fiz rapidinho aqui só pra demonstrar como eu estava montando a logica...vou testar aqui, acabei de chegar do trampo depois osto se deu certo.Valeu,Dony
Cara, ta dando erro: BOF ou EOF são verdadeiros, ou o registro atual foi excluído. A operação solicitada pelo aplicativo requer um registro atual.Bem nessa linha....
idProximo=imoveis("id")
Isso pq demos um movenext na ultima linha.Não sei o que faço mais.... to ficando desanimado já!
provavelmente você só tem um registro na tabela e ele está tentando mover para o proximo
tente colocando isso
If not imoveis.eof and not imoveis.bof thenconfirme na tabela se teria registro suficiente no resultado da busca para mver o cursor pra onde deseja
Na verdade tenho 3 registros...Isso não seria porque estou pedindo no sql um registro so? quando eu coloco id="&rs("atual")&" ele me traz só esse?
se os 3 tiverem o tipo=C não era pra dar erro, mas se for tipoC<2 então daria erro
jonathandj to desistindo cara, continua dando o mesmo erro, não sei mais o que fazer... a logica esta certa, tem registros no banco de dados e mesmo assim continua dando esse erro.... caramba meu to ficando nervoso! Não saio disso tem quase 1 semana!
ALGUÉM ME AJUDEEEEEEEE...
Dony e o seguinte me posta sua logica o que você quer trazer do banco
quais condições for pode usar laço para isso mas pode tem q voltar para o primeiro o q você quer trazar na consulta
>
jonathandj to desistindo cara, continua dando o mesmo erro, não sei mais o que fazer... a logica esta certa, tem registros no banco de dados e mesmo assim continua dando esse erro.... caramba meu to ficando nervoso! Não saio disso tem quase 1 semana!
ALGUÉM ME AJUDEEEEEEEE...
Carinha aí em cima está o código de seleção do DB, a lógica funciona mais ou menos assim, tenho um site de imobiliária onde aparece os destaques, numa pagina posso ter vários destaques em locais diferentes, então o que eu pensei.Tenho duas tabelas, uma com todos os imóveis cadastrados e outra que eu chamei de exibição. Quando eu entro na pagina uma função chama o código passando o parâmetro se será casa “C”, Apartamento “A”, fazenda “F” e assim por diante, verifico na tabela exibição qual foi o ID do ultimo imóvel exibido com o tipo passado “SELECT FROM exibições WHERE tipo = C” (aqui sai o rs("atual"))se estiver vazia pego o primeiro registro da tabela imóveis e gravo nela (isso seria só na primeira vez que entrasse no site), se não estiver vazia pego o id do ultimo imóvel exibido e faço uma busca dele na tabela imóveis (SELECT FROM imoveis WHERE tipo = C and IDImoveis = "&rs("atual")&""), exibo todos os dados desses imóveis normalmente, até aqui tudo funcionando. Daí que vem o pulo do gato que não estou conseguindo, na tabela imóveis quero mover o cursor pra frente e pegar esse proximo ID para grava-lo na tabela exibição e re-começar todo o processo acima de novo, se for o fim do arquivo ele deverá voltar para o inicio da tabela e pegar o id do primeiro registro, mas não há lógica no mundo que faça isso funcionar! Já quebrei a cabeça e ta piorando pq acho que estou ficando nervoso e aí que a coisa não rende mesmo!Se puder me ajudar!ValeuDony
e aí galaera ninguém para ajudar?
rs.movefirst 'move para o primeiro registromas cuidado pois você vai acabar colocando o código em loop infinitocoloca parde do código ai pra podermos ver exatamente como você quer