MaximoAccess

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

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração


Participe do fórum, é rápido e fácil

MaximoAccess

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

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração

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


2 participantes

    [Resolvido]Dias Uteis

    marcelo3092
    marcelo3092
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Dias Uteis Empty [Resolvido]Dias Uteis

    Mensagem  marcelo3092 21/7/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

    https://drive.google.com/open?id=0B8WQjnflCftyUm5YZ1ZITFJ2SkE
    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Dias Uteis Empty Re: [Resolvido]Dias Uteis

    Mensagem  Alexandre Neves 21/7/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
    marcelo3092
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Dias Uteis Empty Dias Uteis

    Mensagem  marcelo3092 22/7/2017, 01:16

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


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Dias Uteis Empty Re: [Resolvido]Dias Uteis

    Mensagem  Alexandre Neves 22/7/2017, 08:05



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


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Dias Uteis Empty Dias Uteis

    Mensagem  marcelo3092 23/7/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.

    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Dias Uteis Empty Re: [Resolvido]Dias Uteis

    Mensagem  Alexandre Neves 23/7/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
    marcelo3092
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Dias Uteis Empty Re: [Resolvido]Dias Uteis

    Mensagem  marcelo3092 23/7/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
    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Dias Uteis Empty Re: [Resolvido]Dias Uteis

    Mensagem  Alexandre Neves 23/7/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
    marcelo3092
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Dias Uteis Empty Dias Uteis

    Mensagem  marcelo3092 24/7/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
    https://drive.google.com/open?id=0B8WQjnflCftyeDdWMUtGLWo1bGM

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

    https://drive.google.com/open?id=0B8WQjnflCftyTnAwQnN5QjI3UmM

    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.


    Conteúdo patrocinado


    [Resolvido]Dias Uteis Empty Re: [Resolvido]Dias Uteis

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 29/3/2024, 04:54