MaximoAccess

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

Obrigado

Administração do MaximoAccess

MaximoAccess

Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

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

    [Resolvido]Repetir lançamento de provisão mensal

    avatar
    IuriEmanuel
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 69
    Registrado : 23/08/2018

    [Resolvido]Repetir lançamento de provisão mensal Empty [Resolvido]Repetir lançamento de provisão mensal

    Mensagem  IuriEmanuel em 29/4/2019, 22:51

    Boa noite, Pessoal
    Tenho uma tabela que guarda os seguintes dados:

    • dVencimento: Onde guarda a data do vencimento da provisão (Ex: Dia 7, 15, 20 e 30)
    • pValor: Onde guarda o valor de cada provisão (Ex: R$100, R$200,00, R$300,00)
    • pModalidade: Onde guarda o tipo da modalidade (Ex: Boleto, Cheque)

    Preciso de uma consulta que me retorne, num determinado periodo entre [DataInicio] E [DataFinal], os provisionamentos, de acordo com os dados da tabela. Uma das alternativas que fiz obtive sucesso em exibir-la porém, ela não é provisionada para meses subsequentes, é exibido apenas um resultado, eu precisava que se repetisse ao longo do período escolhido ex:
    17 / 04 / 19 | R$ 100,00 | Boleto
    17 / 05 / 19 | R$ 100,00 | Boleto
    17 / 06 / 19 | R$ 100,00 | Boleto
     Ah, e isto teria que ser feito numa consulta, para daí então eu utilizar o UNION SELECT para somar as provisões, junto com os pagamentos da tabela de pagamentos do período, para daí então exibir num relatório...

    Será possível gente? Estou me batendo há 2 dias com isso, se alguém conseguir seria muito importante para mim, e também para diversos membros do grupo que tem essa dúvida, pois pesquisei muito na internet e não encontrei nada sobre isso...
    Marcelo David
    Marcelo David
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3191
    Registrado : 21/04/2011

    [Resolvido]Repetir lançamento de provisão mensal Empty Re: [Resolvido]Repetir lançamento de provisão mensal

    Mensagem  Marcelo David em 30/4/2019, 02:50

    Boa noite, não compreendi bem a dúvida, pois o que pretendes é uma conculta
    simples entre datas e para isso há vários exemplos tanto aqui no fórum quanto na WEB.

    Ou então não compreendi bem o que precisa...

    Seria algo mais ou menos assim para retornar o resultado que você exemplificou abaixo:

    IuriEmanuel escreveu:17 / 04 / 19 | R$ 100,00 | Boleto
    17 / 05 / 19 | R$ 100,00 | Boleto
    17 / 06 / 19 | R$ 100,00 | Boleto

    Código:
    SELECT * FROM SuaTabela WHERE dVencimento BETWEEN #" &  Forms!SeuFormulario!DataInicio & "# AND #" & Forms!SeuFormulario!DataFinal & "# AND pModalidade='" & Forms!SeuFormulario!cboModalidade & "';"

    SuaTabela: deve ser o nome da tabela onde há as informações
    SeuFormulario: o formulário que executará a consulta e que contém os critérios (se os critérios vierem de outro canto, muda um pouco a escrita)
    cboModalidade: Nome da caixa de combinação que contem as modalidades ( imagino eu que a modalidade esteja em caixa de combinação, mas também poderá vir de outros locais, nas quais, mudaria também a forma de escrita).


    .................................................................................
    Marcelo David
    https://www.freetool.dev (em construção)
    avatar
    IuriEmanuel
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 69
    Registrado : 23/08/2018

    [Resolvido]Repetir lançamento de provisão mensal Empty Re: [Resolvido]Repetir lançamento de provisão mensal

    Mensagem  IuriEmanuel em 30/4/2019, 12:45

    Marcelo, Bom dia!
    Primeiramente, muito obrigado pelo esforço dedicado a mim.

    É Quase isso, porém não tenho uma tabela com datas específicas, o que eu tenho é uma tabela com o dia específico, e preciso que, através de uma consulta, retorne os vencimentos, por exemplo:

    Selecione todos os registros entre 01/01/2019 e 30/04/2019, a Consulta de Access, precisa me retornar, de acordo com o dia que tem na tabela, os vencimentos provisionados ex: Se na tabela tem um registro com o Vencimento dia 15, no valor de R$100,00 a consulta deverá retornar, de acordo com o período acima descrito os registros da seguinte forma:

    15/01/2019 - R$100,00
    15/02/2019 - R$100,00
    15/03/2019 - R$100,00
    15/04/2019 - R$100,00

    Consegui chegar num resultado muito parecido com esse, utilizando a função Format para gerar o vencimento de acordo com o dia na tabela de Provisões, e uma WHERE para filtrar se o vencimento cairá dentro do período informado. Aconteceu o esperado, porém a consulta não repete o vencimento quando o período é mais de um mês, pois a consulta SQL retornará apenas o primeiro registro, e não faz um loop. O Problema é que, como o SQL do Access não aceita estruturas de repetição do tipo WHILE, FOR etc, muito menos variáveis, fica difícil repetir quando o período é maior que um mês. Entendeu?
    Marcelo David
    Marcelo David
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3191
    Registrado : 21/04/2011

    [Resolvido]Repetir lançamento de provisão mensal Empty Re: [Resolvido]Repetir lançamento de provisão mensal

    Mensagem  Marcelo David em 30/4/2019, 17:05

    Acho que entendi.
    Nesse caso a tabela das datas deve ter algum relacionamento com a tabela onde há as outras informações.
    Assim sendo, precisaríamos juntar as duas tabelas (INNER JOIN) para assim aplicarmos os filtros normalmente.

    Se quiser posta o banco aqui, testaremos ou se quise, informe nomes de campo e tabelas que tentamos também.


    .................................................................................
    Marcelo David
    https://www.freetool.dev (em construção)
    avatar
    IuriEmanuel
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 69
    Registrado : 23/08/2018

    [Resolvido]Repetir lançamento de provisão mensal Empty Re: [Resolvido]Repetir lançamento de provisão mensal

    Mensagem  IuriEmanuel em 30/4/2019, 19:43

    Marcelo, muito obrigado novamente pelo esforço em me ajudar.
    Seria muito bom se eu tivesse pelo menos a base para lhes mostrar, porém o que eu tenho no momento é apenas o início do projeto de um sistema de provisões de pagamentos que eu tenho, que consiste apenas numa tabela e só. Ainda não criei relatórios e nem formulários ainda. O que eu estou tentando fazer no momento é uma consulta que, me retorne as provisões, repetidas... Vou tentar ser mais claro:

    Eu tenho uma tabela onde o usuário insere as informações de contas que são repetidas mensalmente, por todo o período, por exemplo: Conta de Água, Energia, Internet etc. Eu poderia simplesmente criar milhares de registros numa tabela, um para cada mês, para exibir-los durante um determinado período selecionado pelo usuário. Porém, além de trabalhoso, ocuparia espaço desnecessário. Eu gostaria de fazer isso mais dinâmico, apenas numa tabela inserindo uma o dia do vencimento (que sempre é o mesmo) Ex: Todo dia 07, 10, 15, 20 ou 30 e dessa forma, através de uma consulta, ao selecionar um período, exemplo: 01/04/2019 à 30/04/2019 a consulta irá "unir" desta forma:

    Dia (passado através tabela)
    Mês (passado através do critério)
    Ano (passado através do critério)

    Se formará uma data através da função:
    Format(pVencimento & "/" & Month(DataInicial) & "/" & Year(DataInicial)) Que retornará a data 15/04/2019

    Desta, forma, todo período que o usuário informar, sempre o Access formará um respectivo vencimento de acordo com a tabela. O Problema esta justamente aí:

    Quando o usuário seleciona um período maior que um mês, o registro não se repete, pois na minha função, a consulta retorna apenas o registro com o mês e o ano obtido através do critério DataInicial, e retorna apenas este, e não mais todo o restante do período ex:
    01/01/2019 à 31/12/2019
    A Minha função retornará apenas o do primeiro mês:15/01/2019, precisaria que ela retornasse também o resto do período escolhido como 15/02/2019, 15/03/2019, e sucessivamente. Fica difícil pelo fato do SQL do MSAccess não possuir estruturas de repetição WHILE para repetir o SELECT quantas vezes tivesse meses a frente.
    scandinavo
    scandinavo
    Super Avançado
    Super Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 810
    Registrado : 11/11/2009

    [Resolvido]Repetir lançamento de provisão mensal Empty Re: [Resolvido]Repetir lançamento de provisão mensal

    Mensagem  scandinavo em 2/5/2019, 14:05

    Já pensou na possibilidade de criar uma função de criar parcelas e usar uma tabela temporária depois de utilizada na consulta é só excluir.
    avatar
    IuriEmanuel
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 69
    Registrado : 23/08/2018

    [Resolvido]Repetir lançamento de provisão mensal Empty Re: [Resolvido]Repetir lançamento de provisão mensal

    Mensagem  IuriEmanuel em 3/5/2019, 11:46

    Bom dia! Fiz desse jeito, deu certo

    Muito Obrigado a vocês!

      Data/hora atual: 27/10/2020, 04:11