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]Lançar parcela na Data que for digitada

    Compartilhe
    avatar
    Connekta Informatica
    VIP
    VIP

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1029
    Registrado : 01/07/2011

    [Resolvido]Lançar parcela na Data que for digitada

    Mensagem  Connekta Informatica em 28/11/2018, 13:25

    Bom dia

    Tenho o código abaixo para lançamento de Parcelas, o código funciona perfeitamente, o problema é que eu lanço uma parcela hoje o vencimento sai para o mês que vem. Por exemplo: lanço uma parcela com a data de vencimento 28/11/2018 na tabela ele lança 28/12/2018.

    Código:

    ...
    'Preenche variáveis
    StrValorParc = Me.ValorParcela
    'StrParc = StrValorParc ' / Me.NumParcelas
    'Cria o recordset
    Set rsParc = CurrentDb.OpenRecordset("tbl_Receitas", dbOpenDynaset)
    'Popula o Recordset
    With rsParc 'Selecona o recordset
    For I = 1 To Me.NumParcelas 'Loop de 1 até o total de parcelas
    StrDateAdd = DateAdd("m", I, Format(Me.DataVencimento.Value, "dd/mm/yyyy")) 'data do vencimento
    .AddNew 'Adiciona e popula o novo registro

        .Fields("CodContaCx") = Me.CodContaCx.Value
        .Fields("ContaCx") = Me.ContaCx.Value
        .Fields("CodCliente") = Me.CodCliente.Value
        .Fields("NomeCliente") = Me.NomeCliente.Value
        .Fields("NumParcelas") = I & "/" & Me.NumParcelas.Value
        .Fields("DataCadastro") = Me.DataCadastro.Value
        .Fields("DescReceita") = Me.DescReceita & " REF. A PARCELA: " & I & "/" & Me.NumParcelas.Value
        .Fields("Situacao") = Me.Situacao.Value
        .Fields("CodEmpresa") = Me.CodEmpresa.Value
        .Fields("ValorParcela") = StrValorParc
        .Fields("NomeEmpresa") = Me.NomeEmpresa.Value
        .Fields("Situacao") = "A RECEBER"
        .Fields("DataVencimento") = StrDateAdd
       
    .Update 'grava as informações na tabela
    Next I 'próximo registro
    End With 'Fim daseleção da tabela
    'Fecha o recordset
    Set rsParc = Nothing: Close
    ...


    .................................................................................




    Untitled Document





    Connekta Informática Apoia:


    Chapada dos Veadeiros - Alto Paraíso de Goiás
    Venha conhecer as belezas naturais desta cidade.


    Clique Aqui


    Lembrete: Desfrutar e Preservar é um direito de Todos.




    avatar
    Alexandre Neves
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

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

    Re: [Resolvido]Lançar parcela na Data que for digitada

    Mensagem  Alexandre Neves em 28/11/2018, 16:27

    Boa tarde,
    Ao tempo que anda no forum, já podia começar a mexer no código, para evoluir e até ajudar outros colegas
    Será isto
    Código:
    ...[size=12][/size]
    'Preenche variáveis[size=12][/size]
    StrValorParc = Me.ValorParcela[size=12][/size]
    'StrParc = StrValorParc ' / Me.NumParcelas[size=12][/size]
    'Cria o recordset[size=12][/size]
    Set rsParc = CurrentDb.OpenRecordset("tbl_Receitas", dbOpenDynaset)[size=12][/size]
    'Popula o Recordset[size=12][/size]
    With rsParc 'Selecona o recordset[size=12][/size]
    For I = 1 To Me.NumParcelas 'Loop de 1 até o total de parcelas[size=12][/size]
    StrDateAdd = DateAdd("m", I-1, Format(Me.DataVencimento.Value, "dd/mm/yyyy")) 'data do vencimento[size=12][/size]
    .AddNew 'Adiciona e popula o novo registro[size=12][/size]
    [size=12][/size]
        .Fields("CodContaCx") = Me.CodContaCx.Value[size=12][/size]
        .Fields("ContaCx") = Me.ContaCx.Value[size=12][/size]
        .Fields("CodCliente") = Me.CodCliente.Value[size=12][/size]
        .Fields("NomeCliente") = Me.NomeCliente.Value[size=12][/size]
        .Fields("NumParcelas") = I & "/" & Me.NumParcelas.Value[size=12][/size]
        .Fields("DataCadastro") = Me.DataCadastro.Value[size=12][/size]
        .Fields("DescReceita") = Me.DescReceita & " REF. A PARCELA: " & I & "/" & Me.NumParcelas.Value[size=12][/size]
        .Fields("Situacao") = Me.Situacao.Value[size=12][/size]
        .Fields("CodEmpresa") = Me.CodEmpresa.Value[size=12][/size]
        .Fields("ValorParcela") = StrValorParc[size=12][/size]
        .Fields("NomeEmpresa") = Me.NomeEmpresa.Value[size=12][/size]
        .Fields("Situacao") = "A RECEBER"[size=12][/size]
        .Fields("DataVencimento") = StrDateAdd[size=12][/size]
        [size=12][/size]
    .Update 'grava as informações na tabela[size=12][/size]
    Next I 'próximo registro[size=12][/size]
    End With 'Fim daseleção da tabela[size=12][/size]
    'Fecha o recordset[size=12][/size]
    Set rsParc = Nothing: Close[size=12][/size]
    ...


    .................................................................................
    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
    avatar
    ronaldojr1
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 375
    Registrado : 01/08/2011

    Re: [Resolvido]Lançar parcela na Data que for digitada

    Mensagem  ronaldojr1 em 28/11/2018, 16:29

    boa tarde,
    deixa eu ver se entendi. o seu problema é no vencimento da 1° parcela?
    tipo ao inves de jogar a primeira parcela para o vencimento lançado ele joga para o próximo mês?

    se for isso substitua a inicialização do loop para 0

    'inicialização trocada para 0, pois assim o valor lançado no campo nao altera
    For I = 0 To (Me.NumParcelas - 1) 'Loop de 1 até o total de parcelas. O -1 serve para corrigir no numero de vezes q o loop executa.
    .
    .
    .
    'na linha q vc informa a parcela adiciona + 1 para mostrar a parcela atual corretamente
    .Fields("NumParcelas") = (I + 1) & "/" & Me.NumParcelas.Value
    .
    .
    .
    'faça a mesma coisa nessa linha
    .Fields("DescReceita") = Me.DescReceita & " REF. A PARCELA: " & (I + 1) & "/" & Me.NumParcelas.Value
    .
    .
    .
    Next I
    avatar
    ronaldojr1
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 375
    Registrado : 01/08/2011

    Re: [Resolvido]Lançar parcela na Data que for digitada

    Mensagem  ronaldojr1 em 28/11/2018, 16:33

    nossa alexandre, seu pensamento foi melhor. rs
    so subtrair menos 1 da linha:
    StrDateAdd = DateAdd("m", I-1, Format(Me.DataVencimento.Value, "dd/mm/yyyy")) 'data do vencimento

    vivendo e aprendendo. rs
    sucesso!!!
    avatar
    Connekta Informatica
    VIP
    VIP

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1029
    Registrado : 01/07/2011

    Re: [Resolvido]Lançar parcela na Data que for digitada

    Mensagem  Connekta Informatica em 28/11/2018, 17:21

    Muito obrigado funcionou do jeito que eu quero.


    .................................................................................




    Untitled Document





    Connekta Informática Apoia:


    Chapada dos Veadeiros - Alto Paraíso de Goiás
    Venha conhecer as belezas naturais desta cidade.


    Clique Aqui


    Lembrete: Desfrutar e Preservar é um direito de Todos.




    avatar
    Connekta Informatica
    VIP
    VIP

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1029
    Registrado : 01/07/2011

    Re: [Resolvido]Lançar parcela na Data que for digitada

    Mensagem  Connekta Informatica em 28/11/2018, 17:21

    Very Happy Ia me esquecendo de colocar resolvido.


    .................................................................................




    Untitled Document





    Connekta Informática Apoia:


    Chapada dos Veadeiros - Alto Paraíso de Goiás
    Venha conhecer as belezas naturais desta cidade.


    Clique Aqui


    Lembrete: Desfrutar e Preservar é um direito de Todos.





      Data/hora atual: 16/12/2018, 11:20