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]Separar valores por semana

    Compartilhe

    JSommavilla
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 28
    Registrado : 21/09/2014

    [Resolvido]Separar valores por semana

    Mensagem  JSommavilla em Seg 11 Jul - 10:13

    Prezados,

    Após várias pesquisas, não consegui encontrar uma solução para a seguinte questão:

    Em um formulário, preciso demonstrar os valores a receber para quatro semanas seguintes à data de referencia. Exemplo:

    Semana 1 :  Data   Data   Data Data   Data   Data  Data  Total
                      Valor  Valor  Valor  Valor  Valor  Valor  Valor  soma

    Semana 2 :  Data   Data   Data Data   Data   Data  Data  Total
                      Valor  Valor  Valor  Valor  Valor  Valor  Valor  soma

    Semana 3 :  Data   Data   Data Data   Data   Data  Data  Total
                      Valor  Valor  Valor  Valor  Valor  Valor  Valor  soma

    Semana 4 :  Data   Data   Data Data   Data   Data  Data  Total
                      Valor  Valor  Valor  Valor  Valor  Valor  Valor  soma

    Porém, tem um problema: A semana financeira da empresa, começa na 6ª Feira de uma semana e vai até a 5ª Feira da outra semana. Creio que isso não seria problema, pois eu escolheria, como data de referencia, a sexta-feira.

    Gostaria, também, no caso de algum dia não tiver nada a receber, que o formulário, constasse aquele dia com o valor "zero".

    Sei que o código pode estar ligado com o número da semana do ano,
    DatePart("ww", DataVencimento), porém não estou conseguindo fazer com que o formulário traga as informações do jeito que preciso. Com a ajuda do Avelino, cheguei ao seguinte código:

    Private Sub dta0_AfterUpdate()
    Dim rs As DAO.Recordset
    Dim strsSql As String
    Dim strFiltro As String
    Dim p As Byte
    Dim dblTotal As Double
    Call fncLimparCampos
    strFiltro = "DataVencimento Between #" & Format(Me!dta0, "mm/dd/yyyy") & "# AND #" & DateAdd("d", 28, Format(Me!dta0, "mm/dd/yyyy")) & "#;"
    strSql = " SELECT * FROM qryValoresReceber WHERE " & strFiltro
    Set rs = CurrentDb.OpenRecordset(strSql)
    p = 1
    Do While Not rs.EOF
       Me("val" & p) = rs!SomadeValorReceber
       Me("dta" & p) = rs!DataVencimento
       
       dblTotal = dblTotal + rs!SomadeValorReceber
       p = p + 1
       rs.MoveNext
    Loop
    Me!totgeral = dblTotal

    rs.Close
    Set rs = Nothing
    End Sub

    Private Sub fncLimparCampos()
    Dim j As Byte
    For j = 1 To 28
       Me("val" & j) = Null
       Me("dta" & j) = Null
    Next
    Me!totgeral = Null
    End Sub

    Private Sub Form_Timer()

    On Error Resume Next
    If DatePart("ww", IData) <> Me!sem1.Value Then
    IData = DateAdd("d", 1, IData)
    If Me!sem1.Value = DatePart("ww", IData) Then
    Me!dta1 = IData
    Me!txt0.SetFocus
    End If
    End If

    End Sub

    Alguém poderia dar uma luz?

    Agradeço antecipadamente.
    avatar
    philipp.moreira
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 257
    Registrado : 05/02/2016

    Re: [Resolvido]Separar valores por semana

    Mensagem  philipp.moreira em Ter 12 Jul - 14:06

    Boa tarde!

    Poderia postar seu BD somente com os objetos (formularios, consultas, tabelas, módulos) necessários para que possamos analisar e entender melhor e sugerir uma opção de solução?

    JSommavilla
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 28
    Registrado : 21/09/2014

    Re: [Resolvido]Separar valores por semana

    Mensagem  JSommavilla em Ter 12 Jul - 15:08

    Philipp,

    Obrigado pelo interesse em ajudar.

    Seje o BD para sua análise.
    Anexos
    BD.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (54 Kb) Baixado 4 vez(es)
    avatar
    philipp.moreira
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 257
    Registrado : 05/02/2016

    Re: [Resolvido]Separar valores por semana

    Mensagem  philipp.moreira em Ter 12 Jul - 15:49

    Perguntas:

    1ª : Se o usuario escolher uma data que não seja sexta-feira, qual deve ser o comportamento:
    a) Devo trazer na consulta a semana que possui aquela data no meio e a partir desta semana retornar as demais?
    b) Devo trazer na consulta a próxima semana (iniciando da proxima sexta-feira) e a partir desta semana retornar as demais?

    2ª: Como mecanismo de tratamento não seria mais eficiente montar uma combobox com as datas (sexta-feiras) do ano vigente? Ou o usuario pode consultar anos anteriores?

    JSommavilla
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 28
    Registrado : 21/09/2014

    Re: [Resolvido]Separar valores por semana

    Mensagem  JSommavilla em Ter 12 Jul - 16:24

    Philipp,

    Tentando responder as preguntas:


    1ª : Se o usuario escolher uma data que não seja sexta-feira, qual deve ser o comportamento:
    a) Devo trazer na consulta a semana que possui aquela data no meio e a partir desta semana retornar as demais?

    b) Devo trazer na consulta a próxima semana (iniciando da proxima sexta-feira) e a partir desta semana retornar as demais?

    Resposta: O banco de dados está online com o sistema de vendas principal da empresa. Creio que o mais adequado é a letra "A". Pois, preciso que ao usuário escolher a sexta feira, o sistema traga o resultado das 4 semanas subsequentes. Exemplo:

    No caso do usuário escolher a sexta-feira, dia 22/07/2016, que o sistema traga as 4 semanas seguintes, iniciando-se em 22/07/2016. Contudo, se em algum dia não houver nenhum valor a receber, que o sistema retorne "zero" naquele dia, assim:

    Sem1           22/07   23/07   24/07   25/07     26/07    27/07     28/07
    Valor          100,00    0,00   150,00   200,00     0,00   500,00   600,00

    Sem2           29/07   30/07   31/07   01/08     02/08    03/08     04/08
    Valor         700,00   10,00   200,00   300,00     0,00   800,00   900,00

    Sem3           05/08   06/08   07/08   08/08     09/08    10/08     11/08
    Valor         750,00   20,00   200,00   800,00     100,00   0,00   350,00

    Sem4           12/08   13/08   14/08   15/08     16/08    17/08     18/08
    Valor         300,00   10,00   100,00   300,00     0,00   800,00   250,00


    Dessa forma, o usuário teria uma visão da previsão de entradas dos valores a receber para 4 semanas (1 mês). Aí, no final de cada semana, haveria um campo de total e , no final, o total geral a receber dessas 4 semanas.



    2ª: Como mecanismo de tratamento não seria mais eficiente montar uma combobox com as datas (sexta-feiras) do ano vigente? Ou o usuario pode consultar anos anteriores?

    Resposta: O usuário poderá consultar anos anteriores, visto que o BD será online com o sistema principal de vendas.

    Poderíamos deixar em aberto o dia inicial, pois, se a empresa, futuramente mudar a sua semana financeira, digamos, que passasse a iniciar na segunda, era só o usuário colocar a data correspondente à segunda-feira, que o sistema traria o restante dos dias (4 semanas) automaticamente.


    Será que fui claro?

    Obrigado mais uma vez!

    JSommavilla
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 28
    Registrado : 21/09/2014

    Re: [Resolvido]Separar valores por semana

    Mensagem  JSommavilla em Ter 12 Jul - 16:25

    Qualquer outro questionamento, favor enviar. voce me quebrará uma árvore!! (rsrs).
    avatar
    philipp.moreira
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 257
    Registrado : 05/02/2016

    Re: [Resolvido]Separar valores por semana

    Mensagem  philipp.moreira em Ter 12 Jul - 19:01

    Segue anexo.

    Espero que o ajude a prosseguir.
    Anexos
    BD.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (83 Kb) Baixado 15 vez(es)

    JSommavilla
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 28
    Registrado : 21/09/2014

    Re: [Resolvido]Separar valores por semana

    Mensagem  JSommavilla em Ter 12 Jul - 19:59

    Prezado Philipp,

    Sensacional o seu código!!

    Eu, com os poucos conhecimentos que tenho de access, não chegaria nem perto do seu código! Parabéns!

    Entretanto, eu fiz um teste e acrescentei na tabela, no dia 12/07/2016 o valor de 200.000. Aí, coloquei no formulário a data de 08/07/2016 (sexta-feira). Na primeira semana, o total está Ok, ou seja, 200.000. Na segunda semana, que não tem nenhum valor a receber, no total dessa semana, o sistema também trouxe 200.000 e no total geral, retornou 400.000.

    Neste exemplo, seria: o total da 1ª semana, 200.000, o total da 2ª semana, 0 (zero) e o total geral, 200.000.

    Onde estaria o problema?
    avatar
    philipp.moreira
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 257
    Registrado : 05/02/2016

    Re: [Resolvido]Separar valores por semana

    Mensagem  philipp.moreira em Ter 12 Jul - 20:19

    Abaixo da linha :
    Me!totgeral = Nz(Me!totgeral, 0) + dblTotal

    Acrescente a linha abaixo:
    dblTotal = 0

    JSommavilla
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 28
    Registrado : 21/09/2014

    Re: [Resolvido]Separar valores por semana

    Mensagem  JSommavilla em Qua 13 Jul - 10:03

    Prezado Philipp,

    Agradeço imensamente pela ajuda!! Funcionou perfeitamente.

    Agradeço pelo empenho!

      Data/hora atual: Dom 17 Dez - 10:07