MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

Obrigado

Administração do MaximoAccess

Dicas Ms Access, Exemplos Ms Access, Codigos VBA Ms Access, SQL Ms Access

    [Resolvido]Percorrer registro por registro - Tabela

    Compartilhe
    avatar
    PauloMaia
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 134
    Registrado : 02/05/2014

    [Resolvido]Percorrer registro por registro - Tabela

    Mensagem  PauloMaia em Seg 12 Fev - 15:06

    Como posso percorrer uma tabela registro por registro comparando um valor meu , com dois valores cadastrados nessa tabela ? para saber se meu valor se encaixa no intervalo de algum registro .

    Tabela... exemplo de um registro cadastrado === campo1 = valor registrado = 12659219 , e no campo2 = valor registrado = 12659238

    campo1 | campo2

    Meu valor...

    valor = 12659222

    Idéia

    If valor == esta dentro do intervalo entre campo1 e campo2 then

    ...

    eu preciso comparar meu valor lançado , com dois valores na tabela para descobrir a linha do registro .....

    talvez com um loop registro por registro ou de alguma outra forma ,  não estou conseguindo ...

    >>> deve me retornar o valor registrado no campo1 do registro encontrado ,  para eu usar esse valor do campo1 para uma consulta strSQL

    ASSIM SERIA UMA IDEIA , mas em Excel ....... preciso em Access - VBA
    Código:
    ComandoSQL = "select * from tabela_registor"
    Call Conecta
    Set consulta = banco.OpenRecordset(ComandoSQL)
    'On Error Resume Next

    While Not consulta.EOF
    If (MEU_VALOR >= consulta("CAMPO1") And (MEU_VALOR <= consulta("CAMPO2") Then
    MSGBOX "MEU VALOR DENTRO DO INTERVALO"

    End If
    consulta.MoveNext
    Wend
    Call Desconecta


    .................................................................................
    O Conhecimento é uma Bagagem que não pesa, porem sempre que saimos para uma nova viagem... lembramos que podiamos ter levado algo a mais conosco.......
    "Não critique quem cair, ajude-o a erguer-se, tal como você gostaria que fizessem com você se estivesse no mesmo caso"
    "A vaidade é o pior dos defeitos porque engana a nós mesmos pois por mais que seja sábio, há sempre alguém mais sábio que você"
    avatar
    PauloMaia
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 134
    Registrado : 02/05/2014

    Re: [Resolvido]Percorrer registro por registro - Tabela

    Mensagem  PauloMaia em Seg 12 Fev - 18:49

    Estou tentando assim

    Código:
       Dim Rs As DAO.Recordset
        
        Set Rs = CurrentDb.OpenRecordset("SELOSESTOQUE")
        
        NLancado = 12767357
        
        Do While Not Rs.EOF
            Teste = DLookup("[NumeroSelo]", "SELOSESTOQUE", "[NumeroSelo] <= " & NLancado & " And [SequencialFinal] >= " & NLancado & "")
            If Len(Teste) = 8 Then
                conta1 = Left(Teste, 5)
                conta2 = Left(NLancado, 5)
            End If
            If conta1 = conta2 Then
                MsgBox "Valor Encontrado = " & Teste
                Rs.Close
                Exit Sub
            End If
        Rs.MoveNext
        Loop
        Rs.Close
        MsgBox "Loop completado com sucesso."


    Pois a linha
    Teste = DLookup("[NumeroSelo]", "SELOSESTOQUE", "[NumeroSelo] <= " & NLancado & " And [SequencialFinal] >= " & NLancado & "")
    já retorna o que eu preciso ...  

    preciso ajustar o loop para verificar os registros ...

    pois ele não esta repetindo quando essa linha não satisfaz

    If conta1 = conta2 Then


    esta caindo em

    MsgBox "Loop completado com sucesso."

    mas parece não estar repetindo o loop nos registros seguintes


    .................................................................................
    O Conhecimento é uma Bagagem que não pesa, porem sempre que saimos para uma nova viagem... lembramos que podiamos ter levado algo a mais conosco.......
    "Não critique quem cair, ajude-o a erguer-se, tal como você gostaria que fizessem com você se estivesse no mesmo caso"
    "A vaidade é o pior dos defeitos porque engana a nós mesmos pois por mais que seja sábio, há sempre alguém mais sábio que você"
    avatar
    PauloMaia
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 134
    Registrado : 02/05/2014

    Re: [Resolvido]Percorrer registro por registro - Tabela

    Mensagem  PauloMaia em Seg 12 Fev - 21:04

    OK... RESOLVIDO...


    .................................................................................
    O Conhecimento é uma Bagagem que não pesa, porem sempre que saimos para uma nova viagem... lembramos que podiamos ter levado algo a mais conosco.......
    "Não critique quem cair, ajude-o a erguer-se, tal como você gostaria que fizessem com você se estivesse no mesmo caso"
    "A vaidade é o pior dos defeitos porque engana a nós mesmos pois por mais que seja sábio, há sempre alguém mais sábio que você"
    avatar
    Alexandre Neves
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 6622
    Registrado : 05/11/2009

    Re: [Resolvido]Percorrer registro por registro - Tabela

    Mensagem  Alexandre Neves em Seg 12 Fev - 21:11

    Boa noite,
    Será
    Código:
    Dim Rs As DAO.Recordset
       
        Set Rs = CurrentDb.OpenRecordset("SELOSESTOQUE")
       
        NLancado = 12767357
        conta2 = Left(NLancado, 5)
        Do While Not Rs.EOF
            if Rs("NumeroSelo") <= NLancado And Rs("SequencialFinal") >= NLancado Then
                Teste = Rs("NumeroSelo")
                If Len(Teste) = 8 Then
                    conta1 = Left(Teste, 5)
                    If conta1 = conta2 Then
                        MsgBox "Valor Encontrado = " & Teste
                        Rs.Close
                        Exit Sub
                    End If
                End If
            End If
            Rs.MoveNext
        Loop
        Rs.Close
        MsgBox "Loop completado com sucesso."


    .................................................................................
    Access 2010. Mande bd que dê para testar (indique a versão). Não peça para fazer o que já tem feito. Dê todos os detalhes.
    Não coloquem entraves como senhas, esconder controlos, etc. Disponibilizem o mais limpo possível
    Só respondo a mensagens privadas, se forem de assunto privado; às outras não respondo.
    Quem trabalha e mata a fome não come o pão de ninguém; mas quem não trabalha e come, come sempre o pão de alguém. António Aleixo

      Data/hora atual: Qua 21 Fev - 15:06