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:
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, 18:52, editado 1 vez(es)