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]Dias Uteis

    Compartilhe

    marcelo3092
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 87
    Registrado : 19/08/2010

    [Resolvido]Dias Uteis

    Mensagem  marcelo3092 em Sex 21 Jul 2017, 14:19

    Ola pessoal alguem poderia me ajudar estou com um problema em gerar parcelas com dias uteis baixei um exemplo do avelino que pega um campo tipo caixa de seleção que tem opção para adianta ou atrasa se a data caia no sabado ou domingo o código fico assim

    Dim Y As String
    Y = DLookup("BoletoDiasUlteis", "Configuração")
    Set db = CurrentDb()
    Set rs = db.OpenRecordset("Compra_Parcela") 'Abre Tbl_ContasAreceber
    Valor_Parcela = (Me.Boleto / Me.NParcelas) 'Valor de cada Parcela

    For I = 1 To Me.NParcelas 'Insere as Parcela na Tbl_ContasAreceber
    rs.AddNew
    rs("Cód_Compra") = Me.Cód_Compra
    rs("NParcela") = I & "/" & Me.NParcelas
    rs("Valor_Parcela") = Valor_Parcela
    rs("Vencimento") = DateAdd("m", I - 1, Me.Primeira, IIf(Y = 1, True, False)) 'Calcula as datas de Vencto através da função DateAdd() é aqui que esta o problema
    rs.Update



    Next
    rs.Close
    db.Close
    Me.Frm_Compra_Boleto_Det.Requery 'Atualiza o SubForm
    Exit_Comando51_Click:
    Exit Sub
    Err_Comando51_Click:
    MsgBox "Não Foi Possivel Executar Esta Ação!!! ", vbOKOnly, "SYS VENDAS."
    Resume Exit_Comando51_Click


    porem n da certo se alguem pude me ajuda agradeço



    O exemplo e esse aq

    [Você precisa estar registrado e conectado para ver este link.]
    avatar
    Alexandre Neves
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

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

    Re: [Resolvido]Dias Uteis

    Mensagem  Alexandre Neves em Sex 21 Jul 2017, 20:13

    Boa tarde,
    Procure no fórum. Já se abordou função de dias úteis. Será só adaptar


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

    marcelo3092
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 87
    Registrado : 19/08/2010

    Dias Uteis

    Mensagem  marcelo3092 em Sab 22 Jul 2017, 01:16

    Exatamente por isso criei o tópico pq ja procurei mais n encontrei nada parecido.
    avatar
    Alexandre Neves
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

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

    Re: [Resolvido]Dias Uteis

    Mensagem  Alexandre Neves em Sab 22 Jul 2017, 08:05

    Bom dia,
    Veja estes
    [Você precisa estar registrado e conectado para ver este link.]
    [Você precisa estar registrado e conectado para ver este link.]
    [Você precisa estar registrado e conectado para ver este link.]
    [Você precisa estar registrado e conectado para ver este link.]


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

    marcelo3092
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 87
    Registrado : 19/08/2010

    Dias Uteis

    Mensagem  marcelo3092 em Dom 23 Jul 2017, 02:22

    O Amigo Alexandre meu problema e que o código postado gera parcelas sequenciais tipo
    valor a parcela / numero de parcelas = valor parcelas
    e a data de vencimento e gerada automatica e sequencial por mes porem o dia das parcelas são o mesmo da primeira parcela o que eu queria e que se ele verificar que o dia da parcela cair no sabado ou domingo ele passa ou volta a data entendeu n e um campo só ele gera o tanto de parcelas que vc pedir porem o vencimento e automatico sequencial.

    Se tiver alguma ideia e puder me ajuda agradeço.

    avatar
    Alexandre Neves
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

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

    Re: [Resolvido]Dias Uteis

    Mensagem  Alexandre Neves em Dom 23 Jul 2017, 09:13

    Bom dia,
    Gera parcelas e, em cada parcela, se cair ao sábado ou domingo, com a função diasuteis, passa para o primeiro dia util seguinte
    é isso, só tem que ver quando adia o fim-de-semana se pretende que as datas posteriores sejam arrastadas para a frente ou não


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

    marcelo3092
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 87
    Registrado : 19/08/2010

    Re: [Resolvido]Dias Uteis

    Mensagem  marcelo3092 em Dom 23 Jul 2017, 17:03

    Bom dia meu amigo entao referente a adianta ou atrasa esta opçao ele busca na tabela configuracao no campo que ta fazendo a busca no codigo tem o link do exemplo que o avelino fez queria adapta no meu codigo mais se n tiver como coloca com a a opcao para o usuario fazer q a parcela seja gerada adiante no caso. Agradeco sua atencao Alexandre. Obrigado desde ja
    avatar
    Alexandre Neves
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

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

    Re: [Resolvido]Dias Uteis

    Mensagem  Alexandre Neves em Dom 23 Jul 2017, 17:15

    Boa tarde
    Quer adiantar se for Sábado e atrasar se for Domingo?
    em vez de
    rs("Vencimento") = DateAdd("m", I - 1, Me.Primeira, IIf(Y = 1, True, False)) 'Calcula as datas de Vencto através da função DateAdd() é aqui que esta o problema


    coloque varável dtVencimento as date
    dtVencimento = DateAdd("m", I - 1, Me.Primeira, IIf(Y = 1, True, False)) 'Calcula as datas de Vencto através da função DateAdd() é aqui que esta o problema
    if weekday(dtVnecimento)=7 then
    dtvencimento=DateAdd("d",-1, dtVencimento)
    elseif weekday(dtVnecimento)=1 then
    dtvencimento=DateAdd("d",1, dtVencimento)
    end if
    rs("Vencimento")=dtVencimento


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

    marcelo3092
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 87
    Registrado : 19/08/2010

    Dias Uteis

    Mensagem  marcelo3092 em Seg 24 Jul 2017, 02:18

    Boa noite amigo Alexandre.
    Consegui adaptar seu código porem fiz algumas modificações.
    Bom na sua sugestão funciono perfeito porem eu queria que o Administrador do sistema escolhece a opção que lhe atende atraves de um formulario no meu caso a formulario configuração que configura o sistema. O exemplo do avelino faz isso porem n gerava parcelas. este e meu formulario configuração
    [Você precisa estar registrado e conectado para ver este link.]

    que vc escolhe se quer adiantar ou antecipar
    e este e o formulario que gera parcelas.

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

    e no exemplo dele tem dois modulos que são usados. O código ficou assim

    Dim Y As String
    Dim dtVencimento As Date
    Dim dtVencimento2 As Date
    Y = DLookup("BoletoDiasUlteis", "Configuração")



    Set db = CurrentDb()
    Set rs = db.OpenRecordset("Venda_Parcela") 'Abre Tbl_ContasAreceber
    Valor_Parcela = (Me.Boleto / Me.NParcelas) 'Valor de cada Parcela

    For i = 1 To Me.NParcelas 'Insere as Parcela na Tbl_ContasAreceber
    rs.AddNew
    rs("Cód_Venda") = Me.Cód_Venda
    rs("NParcela") = i & "/" & Me.NParcelas
    rs("Valor_Parcela") = Valor_Parcela
    dtVencimento2 = DateAdd("m", i - 1, Me.Primeira)
    dtVencimento = fncAjustaData(dtVencimento2, IIf(Y = 1, True, False))

    rs("Vencimento") = dtVencimento 'Calcula as datas de Vencto através da função DateAdd()
    rs.Update



    Next
    rs.Close
    db.Close
    Me.Frm_Venda_Boleto_Det.Requery 'Atualiza o SubForm
    Exit_Comando51_Click:
    Exit Sub
    Err_Comando51_Click:
    MsgBox "Não Foi Possivel Executar Esta Ação!!! ", vbOKOnly, "SYS VENDAS."
    Resume Exit_Comando51_Click


    para quem quiser usa ta ai e obrigado a ajuda Alexandre. Assim ficou o código que vc sujeriu.

    Dim Y As String
    Dim dtVencimento As Date
    Y = DLookup("BoletoDiasUlteis", "Configuração")



    Set db = CurrentDb()
    Set rs = db.OpenRecordset("Venda_Parcela") 'Abre Tbl_ContasAreceber
    Valor_Parcela = (Me.Boleto / Me.NParcelas) 'Valor de cada Parcela

    For i = 1 To Me.NParcelas 'Insere as Parcela na Tbl_ContasAreceber
    rs.AddNew
    rs("Cód_Venda") = Me.Cód_Venda
    rs("NParcela") = i & "/" & Me.NParcelas
    rs("Valor_Parcela") = Valor_Parcela
    dtVencimento = DateAdd("m", i - 1, Me.Primeira)
    If Weekday(dtVencimento) = 7 Then
    dtVencimento = DateAdd("d", -1, Me.Primeira)
    ElseIf Weekday(dtVencimento) = 1 Then
    dtVencimento = DateAdd("d", 1, Me.Primeira)
    End If

    rs("Vencimento") = dtVencimento 'Calcula as datas de Vencto através da função DateAdd()
    rs.Update



    Next
    rs.Close
    db.Close
    Me.Frm_Venda_Boleto_Det.Requery 'Atualiza o SubForm
    Exit_Comando51_Click:
    Exit Sub
    Err_Comando51_Click:
    MsgBox "Não Foi Possivel Executar Esta Ação!!! ", vbOKOnly, "SYS VENDAS."
    Resume Exit_Comando51_Click
    que tb funcionou porem sem poder o usuario escolher.

    finalizando o tópico.


      Data/hora atual: Sab 18 Nov 2017, 01:07