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]Mostrar primeiro ou segundo dia útil anterior ao mostrar a data ( contando 15 dias após a inserção da data )

    Silvio
    Silvio
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 4955
    Registrado : 20/04/2011

    [Resolvido]Mostrar primeiro ou segundo  dia útil anterior ao mostrar a data ( contando 15 dias após a inserção da data ) Empty [Resolvido]Mostrar primeiro ou segundo dia útil anterior ao mostrar a data ( contando 15 dias após a inserção da data )

    Mensagem  Silvio 17/9/2014, 15:16

    Prezados, preciso que ao colocar a data de avaliação, seja contado 14 dias após essa data.  Porém se a data cair no sábado ou no domingo a mesma seja colocada na sexta feira.

    Porém temos um problema, a data do curso.

    Se a data de inicio do curso, cair numa segunda feira, esse laudo tem que ser entregue na sexta feira.  O txt DtEntrega, recebe os valores de ambas as datas, se não tem data de curso, ela recebe o valor da data...se tem curso, recebe o valor.
    As data colocadas na combos, são sábados e domingos e algumas segunda feiras.

    Criei um formulário com os campos que eu estou a usar, já com as tabelas  e as datas.  O mesmo está no anexo.

    Agradeço a quem puder me ajudar.
    Anexos
    [Resolvido]Mostrar primeiro ou segundo  dia útil anterior ao mostrar a data ( contando 15 dias após a inserção da data ) AttachmentDatautil.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (29 Kb) Baixado 18 vez(es)


    Última edição por Silvio em 18/9/2014, 21:28, editado 2 vez(es) (Motivo da edição : Arquivo zipado enviado errado.)


    .................................................................................
    Caso tenha resolvido a tua duvida, coloque o tópico como resolvido.
    www.maximoaccess.com/t860-resolucao-de-topicos

    "Quase tudo é possível quando se tem determinação e força de vontade. Não desista tão rápido."
    Silvio
    Silvio
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 4955
    Registrado : 20/04/2011

    [Resolvido]Mostrar primeiro ou segundo  dia útil anterior ao mostrar a data ( contando 15 dias após a inserção da data ) Empty Re: [Resolvido]Mostrar primeiro ou segundo dia útil anterior ao mostrar a data ( contando 15 dias após a inserção da data )

    Mensagem  Silvio 18/9/2014, 19:24

    Alguém para me ajudar ??


    .................................................................................
    Caso tenha resolvido a tua duvida, coloque o tópico como resolvido.
    www.maximoaccess.com/t860-resolucao-de-topicos

    "Quase tudo é possível quando se tem determinação e força de vontade. Não desista tão rápido."
    Silvio
    Silvio
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 4955
    Registrado : 20/04/2011

    [Resolvido]Mostrar primeiro ou segundo  dia útil anterior ao mostrar a data ( contando 15 dias após a inserção da data ) Empty Re: [Resolvido]Mostrar primeiro ou segundo dia útil anterior ao mostrar a data ( contando 15 dias após a inserção da data )

    Mensagem  Silvio 18/9/2014, 19:25

    UP!!!


    .................................................................................
    Caso tenha resolvido a tua duvida, coloque o tópico como resolvido.
    www.maximoaccess.com/t860-resolucao-de-topicos

    "Quase tudo é possível quando se tem determinação e força de vontade. Não desista tão rápido."
    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Mostrar primeiro ou segundo  dia útil anterior ao mostrar a data ( contando 15 dias após a inserção da data ) Empty Re: [Resolvido]Mostrar primeiro ou segundo dia útil anterior ao mostrar a data ( contando 15 dias após a inserção da data )

    Mensagem  Alexandre Neves 18/9/2014, 20:16

    Boa noite, Sílvio
    Explique a mecânica do que precisa e indique dados para nos localizarmos na situaçã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
    Silvio
    Silvio
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 4955
    Registrado : 20/04/2011

    [Resolvido]Mostrar primeiro ou segundo  dia útil anterior ao mostrar a data ( contando 15 dias após a inserção da data ) Empty Re: [Resolvido]Mostrar primeiro ou segundo dia útil anterior ao mostrar a data ( contando 15 dias após a inserção da data )

    Mensagem  Silvio 18/9/2014, 21:26

    Boa noite Alexandre...

    Seguinte, preciso que ao colocar a data de avaliação, seja contado 14 dias após essa data. Porém se a data cair no sábado ou no domingo a mesma seja colocada na sexta feira.
    Porém temos um problema, a data do curso.
    Se a data de inicio do curso, cair numa segunda feira, esse laudo tem que ser entregue na sexta feira.
    Exemplo, se o dia de curso é:05/10/2014, essa entrega tem que ser pelo menos na sexta feira.
    O txt DtEntrega, recebe os valores de ambas as datas, se não tem data de curso, ela recebe o valor da data...se tem curso, recebe o valor da data curso.
    As data colocadas na combos, são sábados e domingos e algumas segunda feiras.

    É isso.


    .................................................................................
    Caso tenha resolvido a tua duvida, coloque o tópico como resolvido.
    www.maximoaccess.com/t860-resolucao-de-topicos

    "Quase tudo é possível quando se tem determinação e força de vontade. Não desista tão rápido."
    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Mostrar primeiro ou segundo  dia útil anterior ao mostrar a data ( contando 15 dias após a inserção da data ) Empty Re: [Resolvido]Mostrar primeiro ou segundo dia útil anterior ao mostrar a data ( contando 15 dias após a inserção da data )

    Mensagem  Alexandre Neves 18/9/2014, 21:36

    Fala em data e tem caixa de texto para data
    Fala em data do curso e não vejo de onde vem a data do curso
    Não analisei a função de datas mas é fácil entender que não se a data for 111 fica-se na dúvida se é 11 de Janeiro ou 1 de Novembro
    Reveja estas questões


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


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 4955
    Registrado : 20/04/2011

    [Resolvido]Mostrar primeiro ou segundo  dia útil anterior ao mostrar a data ( contando 15 dias após a inserção da data ) Empty Re: [Resolvido]Mostrar primeiro ou segundo dia útil anterior ao mostrar a data ( contando 15 dias após a inserção da data )

    Mensagem  Silvio 18/9/2014, 21:42

    Alexandre, a data de inicio de curso, está em uma combo.

    Eu estou tentando adaptar o código que está em um módulo,  descrito abaixo de autoria do Avelino Sampaio.
    Código:
    Option Compare Database
    Private intFeriado(14) As Integer

    Public Function fncAjustaData(dataInformada As Date, Optional Federal As Boolean) As Date
    Dim j%, NovaData As Date
    '--------------------------------------
    'Feriados fixos no formato MêsDia(mdd)
    '--------------------------------------
    intFeriado(0) = 1231  '31/12 - Véspera Confraternização Universal"
    intFeriado(1) = 101   '01/01 - Confraternização Universal"
    intFeriado(2) = 421   '21/04 - Tiradentes"
    intFeriado(3) = 501   '01/05 - Dia do Trabalho
    intFeriado(4) = 907   '07/09 - Independência do Brasil"
    intFeriado(5) = 1012  '12/10 - Nossa Senhora Aparecida"
    intFeriado(6) = 1102  '02/11 - Finados"
    intFeriado(7) = 1115  '15/11 - Proclamação da República
    intFeriado(8) = 1120  '20/11 - Dia da consciência Negra
    intFeriado(9) = 1224  '24/12 - Véspera de Natal
    intFeriado(10) = 1225 '25/12 - Natal
    '--------------------------------------
    'Feriados móveis no formato MêsDia(mdd)
    '--------------------------------------
    Call fncFeriadosMoveis(Year(dataInformada))

    NovaData = dataInformada
    '----------------------------------------------------------------------------
    'Ajusta data para o dia seguinte ou para o dia anterior caso caia no feriado
    '----------------------------------------------------------------------------
    For j = 0 To 13
        If intFeriado(j) = Format(dataInformada, "mmdd") Then
            NovaData = dataInformada + IIf(Federal, -1, 1)
            Exit For
        End If
    Next
    '--------------------------------------------------------------------------
    'Ajusta data para segunda-feira ou sexta-feira caso caia no final de semana
    '--------------------------------------------------------------------------
    If Weekday(NovaData) = 7 Then NovaData = NovaData + IIf(Federal, -1, 2)
    If Weekday(NovaData) = 1 Then NovaData = NovaData + IIf(Federal, -2, 1)

    '-----------------------------------------------------------------
    'Se a data informada sofreu ajuste, chamar novamente pela função
    'para uma nova verificação.
    '----------------------------------------------------------------
    If NovaData <> dataInformada Then NovaData = fncAjustaData(NovaData, Federal)

    fncAjustaData = NovaData
    End Function

    Private Sub fncFeriadosMoveis(ano%)
    Dim dt_Pascoa As Date
    Dim A%, B%, C%, D%, E%, F%, G%, H%, I%, k%, L%, M%, p%, Q%
    A = (ano Mod 19)
    B = Int(ano / 100)
    C = (ano Mod 100)
    D = Int(B / 4)
    E = (B Mod 4)
    F = Int((B +  / 25)
    G = Int((B - F + 1) / 3)
    H = ((19 * A + B - D - G + 15) Mod 30)
    I = Int(C / 4): k = (C Mod 4)
    L = ((32 + 2 * E + 2 * I - H - k) Mod 7)
    M = Int((A + 11 * H + 22 * L) / 451)
    p = Int((H + L - 7 * M + 114) / 31)
    Q = ((H + L - 7 * M + 114) Mod 31)

    dt_Pascoa = CDate((Q + 1) & "/" & p & "/" & ano) 'Domingo de Pascoa
    intFeriado(11) = Format(DateAdd("d", -47, dt_Pascoa), "mmdd") 'Carnaval
    intFeriado(12) = Format(DateAdd("d", -2, dt_Pascoa), "mmdd") 'Sexta Feira Santa
    intFeriado(13) = Format(DateAdd("d", 60, dt_Pascoa), "mmdd") 'Corpus Crist
    End Sub

    Até fiz um pequeno progresso. Coloque uma data qualquer em data de avaliação. O código está no evento ao sair.  Veja  o anexo em questão !
    Anexos
    [Resolvido]Mostrar primeiro ou segundo  dia útil anterior ao mostrar a data ( contando 15 dias após a inserção da data ) AttachmentDatautil.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (36 Kb) Baixado 15 vez(es)


    .................................................................................
    Caso tenha resolvido a tua duvida, coloque o tópico como resolvido.
    www.maximoaccess.com/t860-resolucao-de-topicos

    "Quase tudo é possível quando se tem determinação e força de vontade. Não desista tão rápido."
    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Mostrar primeiro ou segundo  dia útil anterior ao mostrar a data ( contando 15 dias após a inserção da data ) Empty Re: [Resolvido]Mostrar primeiro ou segundo dia útil anterior ao mostrar a data ( contando 15 dias após a inserção da data )

    Mensagem  Alexandre Neves 18/9/2014, 22:08

    Bem, já devia ter nomes normalizados, máscara de entrada, etc.
    Criei-lhe nova caixa de combinação para não procurar alterações à existente.
    Veja que não considerei os feriados, porque me parece que surgiriam algumas dúvidas em caso da data final cair em feriado (nem referiu ter de contornar os feriados, apenas inferi tal situação).
    Veja e adeqúe
    Anexos
    [Resolvido]Mostrar primeiro ou segundo  dia útil anterior ao mostrar a data ( contando 15 dias após a inserção da data ) AttachmentDatautil.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (56 Kb) Baixado 23 vez(es)


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


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 4955
    Registrado : 20/04/2011

    [Resolvido]Mostrar primeiro ou segundo  dia útil anterior ao mostrar a data ( contando 15 dias após a inserção da data ) Empty Re: [Resolvido]Mostrar primeiro ou segundo dia útil anterior ao mostrar a data ( contando 15 dias após a inserção da data )

    Mensagem  Silvio 19/9/2014, 11:12

    Bom dia Alexandre, somente agora eu estou com acesso a internet....

    Mas é isso ai mesmo, de uma maneira simples e prática resolveste.

    Agradeço a si !

    Abraços.


    .................................................................................
    Caso tenha resolvido a tua duvida, coloque o tópico como resolvido.
    www.maximoaccess.com/t860-resolucao-de-topicos

    "Quase tudo é possível quando se tem determinação e força de vontade. Não desista tão rápido."

      Data/hora atual: 28/11/2022, 02:58