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

    Retornar valor de data mais próxima

    Compartilhe

    JRodrigues
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 30
    Registrado : 29/10/2015

    Retornar valor de data mais próxima

    Mensagem  JRodrigues em 27/9/2017, 13:17

    Bom dia amigos
    Meu problema é o seguinte, tenho duas tabelas “Entradas” e “Estoque”.
    Preciso de uma consulta em que para cada registro de “Entrada” retorne o valor correspondente em “Estoque” considerando o código e a data.
    Porém, quando não houver data correspondente gostaria que retornasse o valor da data imediatamente anterior.
    Exemplo:
    Tabela Entradas:
    Data-------------Código------------Valor
    01/01/2017----1000--------------10,00
    01/03/2017----2000--------------20,00
    05/07/2017----2000--------------20,00
    06/07/2017----1000--------------10,00

    Tabela Estoque
    Código-----------Mês-------------Custo
    1000------------12/2016----------8,00
    1000------------07/2017----------9,00
    2000------------03/2017---------17,00
    2000------------05/2017---------17,50

    Resultado desejado:
    Data-------------Código------------Valor---------Custo
    01/01/2017----1000--------------10,00---------8,00
    01/03/2017----2000--------------20,00--------17,00
    05/07/2017----2000--------------20,00--------17,50
    06/07/2017----1000--------------10,00---------9,00

    Desde já agradeço, abraço a todos.
    avatar
    thiagomcosta
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 308
    Registrado : 23/01/2017

    Re: Retornar valor de data mais próxima

    Mensagem  thiagomcosta em 27/9/2017, 13:59

    Considerando que está num relatório vinculado com TabelaEntradas

    DataRetornado = DMax("[Mês]","TabelaEstoque","[Mês]<=#" & format(DataEntrada,"mm/dd/yyyy") & "# AND CodigoEstoque=" & CodigoEntrada)
    CustoRetornado = DMax("[Custo]","TabelaEstoque","[Mês]=#" & format(DataRetornado,"mm/dd/yyyy") & "# AND CodigoEstoque=" & CodigoEntrada)

    A ideia é pegar a maior data em Estoque que seja menor ou igual à data de entreda. Com esta data filtrar novamente para buscar o custo.

    JRodrigues
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 30
    Registrado : 29/10/2015

    Re: Retornar valor de data mais próxima

    Mensagem  JRodrigues em 27/9/2017, 15:39

    Muito obrigado Thiago.

    Joguei as fórmulas numa consulta e funcionou bem.

    O único probleminha foi que ficou um pouco lento, acho que DMáx assim como DPesquisa acabam causando lentidão.

    Será que existe alguma outra maneira que agilize a consulta?

    Mais uma vez, valeu pela força.
    avatar
    thiagomcosta
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 308
    Registrado : 23/01/2017

    Re: Retornar valor de data mais próxima

    Mensagem  thiagomcosta em 27/9/2017, 15:49

    Tenho problemas de lentidão em algumas aplicações aqui, também. Possuo algumas máquinas antigas e mais lentas.

    Fiz alguns testes abrindo um RecordSet ao invés de usar DLookUp e DMax, mas não houve diferença.

    Eu não conheço modo de agilizar o processo.

    Tomara que uma boa alma nos ajude nisso. Alguém com uma solução para isso?

      Data/hora atual: 15/11/2018, 04:44