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


4 participantes

    [Resolvido]Alterar cor de um campo através da data

    avatar
    PetryX
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 25
    Registrado : 22/03/2017

    [Resolvido]Alterar cor de um campo através da data Empty [Resolvido]Alterar cor de um campo através da data

    Mensagem  PetryX 23/9/2017, 10:03

    Bom dia aos mestres.

    Estou quebrando a cabeção com uma condição nesse código, procurei aqui mas não encontrei nenhum no mesmo seguimento...

    A questão pode ser simples, mas...

    Esse código esta rodando de boa, mas gostaria que quando passasse a data ao em vez dele continuar a cor (verde) ele me alterasse pra outra (vermelha).

    Desde de já obrigado pela atenção.

    Segui código:
    Código:


    Public Function fAtualizaData()
    On Error GoTo trataerro
    Dim Msg As String
    Dim Db As DAO.Database, rst As DAO.Recordset, StrSQL As String
    Dim MesAno As String
    Dim StrDia
    Dim ctrl As Control

    Set Db = CurrentDb
    'Defino uma variável e aplico na mesma o nome do mes e ano para ser utilizado
    'no filtro do recordset abaixo, assim filtro o mesmo apenas com as datas do mês
    MesAno = Me.MonthLabel.Caption & "/" & Me.YearLabel.Caption

    If DCount("*", "tbl_Vendas") <> 0 Then
       StrSQL = "SELECT tbl_Vendas.dtData FROM tbl_Vendas Where Format(dtData,'mmmm/yyyy') = '" & MesAno & "'"
       Set rst = Db.OpenRecordset(StrSQL)

    'Aplica um loop no recordset
    Do While Not rst.EOF
            'Executo um loop pelos controles do formulário
            For Each ctrl In Me.Controls
                'Muda Cores do Rótulos
                '--------------------------------------------------------------------------
                'Aqui carrego a variável strDia com as primeiras
                'duas posições da data contida no campo dtData
                StrDia = Left(rst!dtData, 2)
                'Como o dia de um digito é expresso sem o zero a frente
                'quando isto ocorrer a variável contera o dia mais o sinal da /
                'Então eu checo se a variável esta carregada com um valor numérico ou de texto
                'Sendo texto recarrego a variável com apenas o primeiro dígito
                If IsNumeric(StrDia) = False Then
                    StrDia = Left(rst!dtData, 1)
                        'como se está executando um loop nos controles do form, a cada loop
                        'checaremos o texto contido dentro do mesmo, se for igual ao dia contido
                        'no campo dtData no recordset aplicamos a cor de data agendada
                        If ctrl.Caption = StrDia Then
                            Me(ctrl.Name).BackColor = 8965045
                        End If
                    '----------------------------------------------------------
                    'Adaptação para feriados brasileiros
                    'Módulo criado por alexandre Neves (Fórum Máximo Acces)
                    'If FeriadoBrasileiro(rst!dtData) Then
                    '    Me(ctrl.Name).BackColor = vbRed ' define do feriado
                    'End If
                    '----------------------------------------------------------
                Else
                    'Sendo o dia de dois dígitos
                    StrDia = Left(rst!dtData, 2)
                       'como se está executando um loop nos controles do form, a cada loop
                        'checaremos o texto contido dentro do mesmo, se for igual ao dia contido
                        'no campo dtData no recordset aplicamos a cor de data agendada
                        If ctrl.Caption = StrDia Then
                            Me(ctrl.Name).BackColor = 8965045
                        End If
                    '----------------------------------------------------------
                    'Adaptação para feriados brasileiros
                    'Módulo criado por alexandre Neves (Fórum Máximo Acces)
                    'If FeriadoBrasileiro(rst!dtData) Then
                        'Me(ctrl.Name).BackColor = vbRed ' define do feriado
                    'End If
                    '----------------------------------------------------------
                End If
            'Vai para o próximo controle
            Next ctrl
        'Vai para o próximo registro do recordset
        rst.MoveNext
      Loop
      
      rst.Close
      Set Db = Nothing
    Cancela = False
    End If
    Exit_TrataErro:
        DoCmd.Hourglass False
        DoCmd.Echo True
     Exit Function

    trataerro:
    If err.Number = 13 Then
        Resume Next
    ElseIf err.Number = 438 Then
        Resume Next
    Else
     DoCmd.Hourglass False
     DoCmd.Echo True
     Msg = "Erro # " & Str(err.Number) & " gerado na " & err.Source _
     & vbNewLine & vbNewLine & "Descrição: " & err.Description _
     & vbNewLine & vbNewLine & "Por favor contate o Administrador de Sistema."
     MsgBox Msg, vbMsgBoxHelpButton + vbCritical, "Erro", err.Helpfile, err.HelpContext
     Resume Exit_TrataErro
    End If
    End Function


    Última edição por PetryX em 14/3/2018, 15:52, editado 1 vez(es)
    Silvio
    Silvio
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Alterar cor de um campo através da data Empty Re: [Resolvido]Alterar cor de um campo através da data

    Mensagem  Silvio 23/9/2017, 11:07

    Bom dia...

    Talvez algo parecido com isso abaixo...

    If ctrl.Caption = StrDia Then
    Me(ctrl.Name).BackColor = 8965045
    Elseif crlt.Caption> SrtDia then
    Me(ctrl.Name).BackColor = VbRed
    End If


    .................................................................................
    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."
    avatar
    PetryX
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 25
    Registrado : 22/03/2017

    [Resolvido]Alterar cor de um campo através da data Empty Re: [Resolvido]Alterar cor de um campo através da data

    Mensagem  PetryX 23/9/2017, 12:03

    Ja avia tentado essa função...

    Teria que ser algo do tipo:

    If ctrl.Caption <= StrDia Then
                           Me(ctrl.Name).BackColor = 8965045
    ElseIf ctrl.Caption = StrDia Then
                           Me(ctrl.Name).BackColor = VbRed
                       End If

    mas não esta me dando o resultado desejado...
    avatar
    fnicolau
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 4
    Registrado : 24/08/2012

    [Resolvido]Alterar cor de um campo através da data Empty Re: [Resolvido]Alterar cor de um campo através da data

    Mensagem  fnicolau 3/10/2017, 18:37

    No meu programa coloquei isso:

    No Timer

    Private Sub Form_Timer()
    If Me.DTALERTA <= Date Then
     Me!Rótulo132.Visible = Not Me!Rótulo132.Visible
    End If
    End Sub

    Intervalo do cronômetro  750

    Observe que é a "Label" que fica piscando.
    E a data é de um campo txt.
    avatar
    w_fabricio
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 37
    Registrado : 19/09/2010

    [Resolvido]Alterar cor de um campo através da data Empty Alterar cor de um campo através da data

    Mensagem  w_fabricio 3/10/2017, 21:46

    Nas ocasiões em que precisei dessa condição, a melhor maneira foi usar uma formatação condicional nos campos.

    Conteúdo patrocinado


    [Resolvido]Alterar cor de um campo através da data Empty Re: [Resolvido]Alterar cor de um campo através da data

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 28/3/2024, 20:37