MaximoAccess

Caro Usuário, não tire as suas duvidas nas Salas de Repositório, abra sempre um novo tópico relacionado, nas salas destinadas para o efeito, como Sala de Tabelas, Consultas, Formulários, Relatórios, Macros, Módulos e VBA.

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 2016, 14: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.

    philipp.moreira
    Intermediário
    Intermediário

    Respeito às Regras 100%

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

    Re: [Resolvido]Separar valores por semana

    Mensagem  philipp.moreira em Ter 12 Jul 2016, 18: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 2016, 19: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)

    philipp.moreira
    Intermediário
    Intermediário

    Respeito às Regras 100%

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

    Re: [Resolvido]Separar valores por semana

    Mensagem  philipp.moreira em Ter 12 Jul 2016, 19: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 2016, 20: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 2016, 20:25

    Qualquer outro questionamento, favor enviar. voce me quebrará uma árvore!! (rsrs).

    philipp.moreira
    Intermediário
    Intermediário

    Respeito às Regras 100%

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

    Re: [Resolvido]Separar valores por semana

    Mensagem  philipp.moreira em Ter 12 Jul 2016, 23: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 11 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 2016, 23: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?

    philipp.moreira
    Intermediário
    Intermediário

    Respeito às Regras 100%

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

    Re: [Resolvido]Separar valores por semana

    Mensagem  philipp.moreira em Qua 13 Jul 2016, 00: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 2016, 14:03

    Prezado Philipp,

    Agradeço imensamente pela ajuda!! Funcionou perfeitamente.

    Agradeço pelo empenho!

      Data/hora atual: Sab 03 Dez 2016, 15:35