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]Retornar o valor de 1 mês atras - ajuda simples em consulta

    Compartilhe

    werlewow
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 128
    Registrado : 09/10/2017

    [Resolvido]Retornar o valor de 1 mês atras - ajuda simples em consulta

    Mensagem  werlewow em 23/10/2018, 19:19

    Boa tarde a todos

    Tenho uma tabela com pedidos e suas datas de emissão. Gostaria de pegar os valores sempre do dia 1º do mês anterior ao atual até o dia atual porém do mês anterior. Deixa eu mostrar um exemplo:
    Hoje é dia 23/10. Gostaria que a consulta me retornasse os pedidos fechados entre 1/09 (1º dia dos mês anterior) e 23/09 (mesmo dia de hoje, porém do mês passado).

    Como faço isso sem usar o SQL, apenas no modo design?
    Segue Banco de dados abaixo.

    Muito obrigado

    [Você precisa estar registrado e conectado para ver este link.]

    Obs: tive q mandar pelo dropbox pois nao estava deixando anexar, diz "nome arquivo invalido"
    avatar
    Alexandre Neves
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

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

    Re: [Resolvido]Retornar o valor de 1 mês atras - ajuda simples em consulta

    Mensagem  Alexandre Neves em 23/10/2018, 20:41

    Boa noite
    Porque não em SQL?


    .................................................................................
    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

    werlewow
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 128
    Registrado : 09/10/2017

    Re: [Resolvido]Retornar o valor de 1 mês atras - ajuda simples em consulta

    Mensagem  werlewow em 23/10/2018, 21:00

    Pode ser se não der no modo design. É que tenho mais consultas que vou utilizar critérios parecidos, e o SQL é bem mais complexo, uma virgula errada e pronto, não funciona hahah. Ai facilita se for no modo design para eu aprender como faz Smile


    Mas como disse, se não der, pode ser SQL

    Obrigado
    avatar
    IvanJr.
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 157
    Registrado : 22/11/2016

    Re: [Resolvido]Retornar o valor de 1 mês atras - ajuda simples em consulta

    Mensagem  IvanJr. em 24/10/2018, 05:11

    Em um módulo global cole o código da função abaixo pois ela será usada nas consultas (comentei o que faz cada etapa para você entender):
    Código:
    Public Function fncDescDia() As Byte 'descobre o dia correto para
                                         'usar como dia limite do mês anterior

        Dim y As Byte 'variável para armazenar o último dia do mês anterior
        Dim x As Byte 'variável para armazenar o dia atual
        
        'descobrindo o dia do mês atual
        x = Day(Date)
        
        'se o dia atual é menor ou igual 28 então
        If x <= 28 Then
            'posso usar esse dia atual para o dia do mês anterior
            fncDescDia = x
        
        'senão, há algumas situações a serem avaliadas
        Else
            'descobrindo o último dia do mês anterior
            y = DateSerial(Year(Date), Month(Date), 0)
            
            'se o último dia do mês anterior foi 29 (fevereiro em ano bissexto)
            '(máximo sempre será ele; por mais que o dia atual seja 29, 30 ou 31) ou
            'se o último dia do mês anterior foi 31 e o último dia do mês atual é 30
            '(ora, nunca iremos chegar a 31 mesmo) ou
            'se o dia atual é 31
            '(já é o último dia do mês atual, então deve ser o último dia do mês anterior) então
            If y = 29 Or _
               (y = 31 And Day(DateSerial(Year(Date), Month(Date) + 1, 0)) = 30) Or _
               x = 31 Then
                'aponto último dia do mês anterior (mês todo)
                fncDescDia = y
            
            'senão
            Else
                'pra todos os outros casos retorne o dia
                'atual como referência para o dia do mês anterior
                fncDescDia = x
            End If
        End If

    End Function

    Na consulta que já existia no seu arquivo
    [Você precisa estar registrado e conectado para ver esta imagem.]

    Criei uma nova consulta para exibir os totais da consulta anterior
    [Você precisa estar registrado e conectado para ver esta imagem.]

    werlewow
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 128
    Registrado : 09/10/2017

    Re: [Resolvido]Retornar o valor de 1 mês atras - ajuda simples em consulta

    Mensagem  werlewow em 24/10/2018, 15:41

    Cara, deu certo! muito obrigado, principalmente por fazer passo a passo, explicando!
    Consegui entender certinho, inclusive aprendi algumas funções novas, muito obrigado mesmo!!

    avatar
    IvanJr.
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 157
    Registrado : 22/11/2016

    Re: [Resolvido]Retornar o valor de 1 mês atras - ajuda simples em consulta

    Mensagem  IvanJr. em 24/10/2018, 15:46

    O fórum agradece o retorno.

      Data/hora atual: 14/11/2018, 11:53