Boa tarde aos amigos...
Gostaria de saber como posso saber se uma data digitada no forma já pertence a um determinado período já gravado para um funcionário?
tenho uma tabela de cadastro de férias = tblCadFérias
e uma consulta = cstCadFérias
no form de Cadastro de Férias = frmCadFériasInsere
digito a Data de Início das férias no campo = DataInicio e
digito a quantidade de dias a gozar no campo = TotalDias
Ele já calcula o dia final e o dia de retorno, corrigindo se for final de semana para o próximo dia útil.
_ Preciso que ele veja se o dia digitado já está cadastrado para o mesmo servidor, a fim de não repetir o período.
Private Sub DataInicio_LostFocus()
If Not IsNull(Me.DataInicio) And (Me.DataInicio) > Now Then
If DLookup("DataInicio", "cstCadFérias", "CodACS = " & Me.CodACS) >= Me.DataInicio And DLookup("DataFim", "cstCadFérias", "CodACS = " & Me.CodACS) <= Me.DataFim Then
MsgBox "Esta Data de Início " & Me.DataInicio & vbCrLf & vbCrLf & _
"...Já está registrado para ACS: " & vbCrLf & vbCrLf & Me.NomeACS & vbCrLf & vbCrLf & _
"...Digite outro período... "
Me.Matrícula.SetFocus
Me.DataInicio.SetFocus
Else
Me.NDSDI = Weekday(DataInicio, 1)
Me.txtDiaSemDtIni = Format(DataInicio, "ddd", 1)
Me.TotalDias.SetFocus
If Me.NDSDI = 1 Then
MsgBox " ** Esta Data não é válida para início das Férias ! **" & vbCrLf & "... É domingo." & vbCrLf & "... A Data será adiada para a próxima segunda " & Me.DataInicio + 1
Me.DataInicio = Me.DataInicio.OldValue + 1
Me.NDSDI = Weekday(DataInicio, 1)
Me.txtDiaSemDtIni = Format(DataInicio, "ddd", 1)
Me.TotalDias.SetFocus
ElseIf Me.NDSDI = 7 Then
MsgBox " ** Esta Data não é válida para início das Férias ! **" & vbCrLf & "... É sábado." & vbCrLf & "... A Data será adiada para a próxima segunda " & Me.DataInicio + 2
Me.DataInicio = Me.DataInicio.OldValue + 2
Me.NDSDI = Weekday(DataInicio, 1)
Me.txtDiaSemDtIni = Format(DataInicio, "ddd", 1)
Me.TotalDias.SetFocus
Else
End If
End If
Else
MsgBox "Esta Data não é válida para início das Férias !" & vbCrLf & "... Data Vencida."
Me.Matrícula.SetFocus
Me.DataInicio.SetFocus
End If
End Sub
Gostaria de saber como posso saber se uma data digitada no forma já pertence a um determinado período já gravado para um funcionário?
tenho uma tabela de cadastro de férias = tblCadFérias
e uma consulta = cstCadFérias
no form de Cadastro de Férias = frmCadFériasInsere
digito a Data de Início das férias no campo = DataInicio e
digito a quantidade de dias a gozar no campo = TotalDias
Ele já calcula o dia final e o dia de retorno, corrigindo se for final de semana para o próximo dia útil.
_ Preciso que ele veja se o dia digitado já está cadastrado para o mesmo servidor, a fim de não repetir o período.
Private Sub DataInicio_LostFocus()
If Not IsNull(Me.DataInicio) And (Me.DataInicio) > Now Then
If DLookup("DataInicio", "cstCadFérias", "CodACS = " & Me.CodACS) >= Me.DataInicio And DLookup("DataFim", "cstCadFérias", "CodACS = " & Me.CodACS) <= Me.DataFim Then
MsgBox "Esta Data de Início " & Me.DataInicio & vbCrLf & vbCrLf & _
"...Já está registrado para ACS: " & vbCrLf & vbCrLf & Me.NomeACS & vbCrLf & vbCrLf & _
"...Digite outro período... "
Me.Matrícula.SetFocus
Me.DataInicio.SetFocus
Else
Me.NDSDI = Weekday(DataInicio, 1)
Me.txtDiaSemDtIni = Format(DataInicio, "ddd", 1)
Me.TotalDias.SetFocus
If Me.NDSDI = 1 Then
MsgBox " ** Esta Data não é válida para início das Férias ! **" & vbCrLf & "... É domingo." & vbCrLf & "... A Data será adiada para a próxima segunda " & Me.DataInicio + 1
Me.DataInicio = Me.DataInicio.OldValue + 1
Me.NDSDI = Weekday(DataInicio, 1)
Me.txtDiaSemDtIni = Format(DataInicio, "ddd", 1)
Me.TotalDias.SetFocus
ElseIf Me.NDSDI = 7 Then
MsgBox " ** Esta Data não é válida para início das Férias ! **" & vbCrLf & "... É sábado." & vbCrLf & "... A Data será adiada para a próxima segunda " & Me.DataInicio + 2
Me.DataInicio = Me.DataInicio.OldValue + 2
Me.NDSDI = Weekday(DataInicio, 1)
Me.txtDiaSemDtIni = Format(DataInicio, "ddd", 1)
Me.TotalDias.SetFocus
Else
End If
End If
Else
MsgBox "Esta Data não é válida para início das Férias !" & vbCrLf & "... Data Vencida."
Me.Matrícula.SetFocus
Me.DataInicio.SetFocus
End If
End Sub
- Anexos
- Contole de Folgas.zip
- Você não tem permissão para fazer download dos arquivos anexados.
- (1 Mb) Baixado 2 vez(es)
Última edição por davidrocha em 25/12/2021, 19:18, editado 2 vez(es)