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]Simplificar Procedimento

    avatar
    rgondim
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 229
    Registrado : 24/02/2012

    [Resolvido]Simplificar Procedimento Empty [Resolvido]Simplificar Procedimento

    Mensagem  rgondim 18/6/2012, 05:34

    Gostaria de criar uma função que faça uma soma contínua, para simplificar o procedimento abaixo.
    Então, para cada ano adicional, deve-se acrescentar 3 até o máximo de 90.
    Imagino que possa fazer com um For...To...Next, mas não sei bem como.

    OBS:Competência e Admissão são campos data (dd/mm/yyyy).

    If Me.Competencia >= #11/10/2011# Then
    If DateDiff("y", Me.Admissao, Me.Competencia) <= 1 Then
    Me.DtRescisao = Me.DtAvPrevio + 30
    ElseIf DateDiff("y", Me.Admissao, Me.Competencia) = 2 Then
    Me.DtRescisao = Me.DtAvPrevio + 33
    ElseIf DateDiff("y", Me.Admissao, Me.Competencia) = 3 Then
    Me.DtRescisao = Me.DtAvPrevio + 36
    ElseIf DateDiff("y", Me.Admissao, Me.Competencia) = 4 Then
    Me.DtRescisao = Me.DtAvPrevio + 39
    ElseIf DateDiff("y", Me.Admissao, Me.Competencia) = 5 Then
    Me.DtRescisao = Me.DtAvPrevio + 42
    ElseIf DateDiff("y", Me.Admissao, Me.Competencia) = 6 Then
    Me.DtRescisao = Me.DtAvPrevio + 45
    ElseIf DateDiff("y", Me.Admissao, Me.Competencia) = 7 Then
    Me.DtRescisao = Me.DtAvPrevio + 48
    ElseIf DateDiff("y", Me.Admissao, Me.Competencia) = 8 Then
    Me.DtRescisao = Me.DtAvPrevio + 51
    ElseIf DateDiff("y", Me.Admissao, Me.Competencia) = 9 Then
    Me.DtRescisao = Me.DtAvPrevio + 54
    ElseIf DateDiff("y", Me.Admissao, Me.Competencia) = 10 Then
    Me.DtRescisao = Me.DtAvPrevio + 57
    ElseIf DateDiff("y", Me.Admissao, Me.Competencia) = 11 Then
    Me.DtRescisao = Me.DtAvPrevio + 60
    ElseIf DateDiff("y", Me.Admissao, Me.Competencia) = 12 Then
    Me.DtRescisao = Me.DtAvPrevio + 63
    ElseIf DateDiff("y", Me.Admissao, Me.Competencia) = 13 Then
    Me.DtRescisao = Me.DtAvPrevio + 66
    ElseIf DateDiff("y", Me.Admissao, Me.Competencia) = 14 Then
    Me.DtRescisao = Me.DtAvPrevio + 69
    ElseIf DateDiff("y", Me.Admissao, Me.Competencia) = 15 Then
    Me.DtRescisao = Me.DtAvPrevio + 72
    ElseIf DateDiff("y", Me.Admissao, Me.Competencia) = 16 Then
    Me.DtRescisao = Me.DtAvPrevio + 75
    ElseIf DateDiff("y", Me.Admissao, Me.Competencia) = 17 Then
    Me.DtRescisao = Me.DtAvPrevio + 78
    ElseIf DateDiff("y", Me.Admissao, Me.Competencia) = 18 Then
    Me.DtRescisao = Me.DtAvPrevio + 81
    ElseIf DateDiff("y", Me.Admissao, Me.Competencia) = 19 Then
    Me.DtRescisao = Me.DtAvPrevio + 84
    ElseIf DateDiff("y", Me.Admissao, Me.Competencia) = 20 Then
    Me.DtRescisao = Me.DtAvPrevio + 87
    ElseIf DateDiff("y", Me.Admissao, Me.Competencia) = 21 Then
    Me.DtRescisao = Me.DtAvPrevio + 90
    End If
    End If


    Última edição por rgondim em 19/6/2012, 03:31, editado 2 vez(es) (Motivo da edição : Adicionadas tags ao bloco do código para obrigá-lo a obedecer a formatação textual)
    criquio
    criquio
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 11229
    Registrado : 30/12/2009

    [Resolvido]Simplificar Procedimento Empty Re: [Resolvido]Simplificar Procedimento

    Mensagem  criquio 18/6/2012, 12:18

    Tente algo assim:

    Código:
    Dim C As Integer

    C = 30 + ((DateDiff("y", Me.Admissao, Me.Competencia) - 1) * 3)

    Me.DtRescisao = Me.DtAvPrevio + C
    Ou, se quiser colocar tudo em uma única linha sem a necessidade de declarar variável, pode fazer assim:

    Código:
    Me.DtRescisao = Me.DtAvPrevio + (30 + ((DateDiff("y", Me.Admissao, Me.Competencia) - 1) * 3))


    .................................................................................
    Meu novo site: www.vcssistemas.com.br

    Clique aqui e veja um vídeo que explica como fazer pesquisas no forum.


    DICA: Quando precisar inserir um exemplo do seu aplicativo, siga os procedimentos abaixo:
    1 - faça uma cópia do aplicativo
    2 - retire tudo que não for necessário à solução do problema, exceto o que o aplicativo precisar para funcionar
    3 - use o Compactar/Reparar
    4 - compacte o aplicativo em zip ou rar (zip para postagem como anexo na mensagem)


    Agradeça a quem lhe ajudou, clicando no joinha de uma das mensagens do usuário.
    Positive as mensagens que achar útil, no canto superior direito delas.

    avatar
    rgondim
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 229
    Registrado : 24/02/2012

    [Resolvido]Simplificar Procedimento Empty Re: [Resolvido]Simplificar Procedimento

    Mensagem  rgondim 19/6/2012, 03:29

    Resolvido. Obrigado.

    Conteúdo patrocinado


    [Resolvido]Simplificar Procedimento Empty Re: [Resolvido]Simplificar Procedimento

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 28/3/2024, 17:15