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]Avisar que um campo data é feriado

    Assis
    Assis
    Maximo VIP
    Maximo VIP


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 4771
    Registrado : 06/11/2009

    [Resolvido]Avisar que um campo data é feriado Empty [Resolvido]Avisar que um campo data é feriado

    Mensagem  Assis 5/7/2015, 20:24

    Boa tarde

    No exemplo que anexo ao sair do campo data, acontece o seguinte:
    Se for sábado ou domingo ao sair do campo o exemplo pergunta se quer ou não alterar para o próximo dia útil, e na MSGBOX  diz que dia por extenso.
    Só que se digitar um feriado ( neste caso digitar 25/12/2015) pois é o único que está registado na tabela "tblFeriados".
    Como não é sábado nem domingo a MSGBX diz sexta feira, e eu queria que dissesse que era Natal, como está no campo descrição da tabela "tblferiados".
    Obrigado

    https://dl.dropboxusercontent.com/u/8169944/Frum%20-%20Parcelas.zip


    .................................................................................
    *** Só sei que nada sei ***
    Alvaro Teixeira
    Alvaro Teixeira
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7914
    Registrado : 15/03/2013

    [Resolvido]Avisar que um campo data é feriado Empty Re: [Resolvido]Avisar que um campo data é feriado

    Mensagem  Alvaro Teixeira 5/7/2015, 20:46

    Boa Tarde Assis,

    Teste assim:
    Código:
    MsgBox DLookup("Descrição", "tblFeriados", "[DataFeriado] = #" & txtHireDate & "#") & ""

    cheers
    Assis
    Assis
    Maximo VIP
    Maximo VIP


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 4771
    Registrado : 06/11/2009

    [Resolvido]Avisar que um campo data é feriado Empty Re: [Resolvido]Avisar que um campo data é feriado

    Mensagem  Assis 5/7/2015, 20:53

    Teixeira
    E quando for sábado ou domingo ?


    .................................................................................
    *** Só sei que nada sei ***
    Alvaro Teixeira
    Alvaro Teixeira
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7914
    Registrado : 15/03/2013

    [Resolvido]Avisar que um campo data é feriado Empty Re: [Resolvido]Avisar que um campo data é feriado

    Mensagem  Alvaro Teixeira 5/7/2015, 21:09

    Já, fazia era só para a mensagem.
    Onde tem:
    Código:
    If MsgBox("O Dia Digitado " & txtHireDate & " Não é Dia Útil. É um(a) " & Format(txtHireDate, "dddd") & "" & vbCr & vbCr & "Quer Alterar para o Primeiro Dia Útil Seguinte ?", vbYesNo, "Aviso") = vbYes Then

    altere para:
    Código:
    If MsgBox("O Dia Digitado " & txtHireDate & " é feriado de " & DLookup("Descrição", "tblFeriados", "[DataFeriado] = #" & txtHireDate & "#") & "" & vbCr & vbCr & "Quer Alterar para o Primeiro Dia Útil Seguinte ?", vbYesNo, "Aviso") = vbYes Then

    Abraço
    Assis
    Assis
    Maximo VIP
    Maximo VIP


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 4771
    Registrado : 06/11/2009

    [Resolvido]Avisar que um campo data é feriado Empty Re: [Resolvido]Avisar que um campo data é feriado

    Mensagem  Assis 5/7/2015, 22:05

    Não está certo Teixeira

    Se digitar um sábado deve dizer que é sábado 04/07/2015

    Se digitar um sábado deve dizer que é sábado 05/07/2015

    Se digitar um feriado deve dizer que é feriado Natal 25/12/2015

    Veja a imagem digitei 04/0/2015 e diz que é feriado
    [Resolvido]Avisar que um campo data é feriado 2vmvc75

    Veja a imagem digitei 05/0/2015 e diz que é feriado
    [Resolvido]Avisar que um campo data é feriado O74whk

    Veja a imagem digitei 25/12/2015 e diz que é feriado Natal e está certo
    [Resolvido]Avisar que um campo data é feriado 2itqux4


    .................................................................................
    *** Só sei que nada sei ***
    Alvaro Teixeira
    Alvaro Teixeira
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7914
    Registrado : 15/03/2013

    [Resolvido]Avisar que um campo data é feriado Empty Re: [Resolvido]Avisar que um campo data é feriado

    Mensagem  Alvaro Teixeira 5/7/2015, 23:11

    Olá Assis agora estou no telemovel e não posso ver melhor o código.
    Também pensei que a mensagem só mostrava quando fosse um feriado, ou seja se tiver a data escolhida na tabela de feriados.
    Pode contornar facilmente se o resultado da consulta (Dlookup) for de tamanho maior que zero.
    If len(Dlookup ...) > 0 then ...
    No entanto amigo sou da opinião que deve ver melhor o seu código para não fazer muitas "viagens" de consulta ou seja logo no inicio pode:

    Dim strFeriado as string
    StrFeriado = Dloockup(....)

    Depois onde necessitar, verificar primeiro se é feriado com :

    If len(Dlookup ...) > 0 then~

    Queria dizer:
    IF Len(strFeriado &"") > 0 then ...

    Abraço
    Alvaro Teixeira
    Alvaro Teixeira
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7914
    Registrado : 15/03/2013

    [Resolvido]Avisar que um campo data é feriado Empty Re: [Resolvido]Avisar que um campo data é feriado

    Mensagem  Alvaro Teixeira 6/7/2015, 15:38

    Olá Assis, estive a ver melhor o seu código e acho que assim é como pretende:

    Código:
    Private Sub txtHireDate_Exit(Cancel As Integer)
        Dim strMsg
        Dim strFeriado As String
       
        'se null sai
        If IsNull(txtHireDate) Then Exit Sub
       
        'atribuir descrição do feriado à variavel
        strFeriado = Nz(DLookup("Descrição", "tblFeriados", "[DataFeriado] = #" & Format(Me.txtHireDate, "mm/dd/yyyy") & "#"), "")
       
        If Weekday(txtHireDate) = 1 Or Weekday(txtHireDate) = 7 Or Len(strFeriado) > 0 Then
           
            'mensagem fim de semana
            If Weekday(txtHireDate) = 1 Or Weekday(txtHireDate) = 7 Then strMsg = "O Dia Digitado " & txtHireDate & " Não é Dia Útil. É um(a) " & Format(txtHireDate, "dddd")
           
            'mensagem de feriado
            If Len(strFeriado) > 0 Then strMsg = "O Dia Digitado " & txtHireDate & " é feriado de " & strFeriado & "."
           
               
                'codigo como estava
                If MsgBox(strMsg & vbCr & vbCr & "Quer Alterar para o Primeiro Dia Útil Seguinte ?", vbYesNo, "Aviso") = vbYes Then
                    Do
    IncrementaData:
                        txtHireDate = DateAdd("d", 1, txtHireDate)
                        If Weekday(txtHireDate) = 1 Or Weekday(txtHireDate) = 7 Or (Not IsNull(DLookup("[Dataferiado]", "tblferiados", "[Dataferiado] =#" & Format(Me.txtHireDate, "mm/dd/yyyy") & "#"))) Then
                            GoTo IncrementaData
                        Else
                            Exit Do
                        End If
                    Loop
                End If
            End If
    End Sub

    Tentei fazer o minimo de alterações e comentei de forma a compreender melhor.
    Segue link do meu teste assis_parcelas.zip

    cheers

    Assis
    Assis
    Maximo VIP
    Maximo VIP


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 4771
    Registrado : 06/11/2009

    [Resolvido]Avisar que um campo data é feriado Empty Re: [Resolvido]Avisar que um campo data é feriado

    Mensagem  Assis 6/7/2015, 17:16

    Teixeira
              Perfeito
    Obrigado


    .................................................................................
    *** Só sei que nada sei ***
    Alvaro Teixeira
    Alvaro Teixeira
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7914
    Registrado : 15/03/2013

    [Resolvido]Avisar que um campo data é feriado Empty Re: [Resolvido]Avisar que um campo data é feriado

    Mensagem  Alvaro Teixeira 6/7/2015, 17:28

    Olá Assis, obrigado pelo retorno.
    Os utilizadores do fórum agradecem.
    Faltou foi dsr o tópico como resolvido.
    Abraço
    Assis
    Assis
    Maximo VIP
    Maximo VIP


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 4771
    Registrado : 06/11/2009

    [Resolvido]Avisar que um campo data é feriado Empty Re: [Resolvido]Avisar que um campo data é feriado

    Mensagem  Assis 6/7/2015, 18:37

    Obrigado


    .................................................................................
    *** Só sei que nada sei ***
    Alvaro Teixeira
    Alvaro Teixeira
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7914
    Registrado : 15/03/2013

    [Resolvido]Avisar que um campo data é feriado Empty Re: [Resolvido]Avisar que um campo data é feriado

    Mensagem  Alvaro Teixeira 6/7/2015, 22:49

    Obrigado
    Assis, mais uma coisinha que esqueci de dizer, não me leve a mal, mas tente começar a fazer Indentação no código.
    Tal como eu fiz, vai ver que fica mais fácil a leitura.
    Conselho de amigo Wink
    Abraço
    Alvaro Teixeira
    Alvaro Teixeira
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7914
    Registrado : 15/03/2013

    [Resolvido]Avisar que um campo data é feriado Empty Re: [Resolvido]Avisar que um campo data é feriado

    Mensagem  Alvaro Teixeira 7/7/2015, 12:15

    Olá Assis, estive a ver melhor o código e pode ter uma falha se:

    Na tabela de feriados abrir uma data sem descrição, não vai funcionar (repare o código: Len(strFeriado) > 0 Then...)
    Por esta razão, no Formulário onde o utilizador vai introduzir os Feriados (Data e Descrição), controle para ser obrigatório a introdução da descrição (nem que seja apenas um digito).

    cheers
    Assis
    Assis
    Maximo VIP
    Maximo VIP


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 4771
    Registrado : 06/11/2009

    [Resolvido]Avisar que um campo data é feriado Empty Re: [Resolvido]Avisar que um campo data é feriado

    Mensagem  Assis 7/7/2015, 12:31

    Bom dia Teixeira

    Obrigado pela chamada de atenção ..... o campo "Descrição do Feriado" já é de preenchimento obrigatório.


    .................................................................................
    *** Só sei que nada sei ***
    Alvaro Teixeira
    Alvaro Teixeira
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7914
    Registrado : 15/03/2013

    [Resolvido]Avisar que um campo data é feriado Empty Re: [Resolvido]Avisar que um campo data é feriado

    Mensagem  Alvaro Teixeira 7/7/2015, 13:42

    Ola Assis, obrigado pelo retorno.
    Também demonstramos que por vezes resolvemos situações de várias formas.
    Uma das preocupações que tenho no meus sistemas é precisamente tentar similar o que os utilizadores possam fazer e comprometer o código.
    Mais umma dica, abraço.

    Conteúdo patrocinado


    [Resolvido]Avisar que um campo data é feriado Empty Re: [Resolvido]Avisar que um campo data é feriado

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 29/3/2024, 07:59