Bom dia, estou com um Banco de dados e nele tenho 02 datas, Data_envio e Data_retorno onde o prazo entre as duas datas é de 10 dias úteis.
Tenho um código que conta os dez dias úteis.
Preciso que após os dez dias úteis ele comece a contar dias corridos novamente.
Ex: data_envio 08/10/2014 e data_retorno 30/10/2014 = 17 dias úteis
preciso de 08/10/2014 - 30/10/2014 seja = á 19 dias 10 dias úteis e 9 dias corridos porque ultrapassou os 10 dias de prazo. 9 dias é multa.
Poderiam me ajudar?
Public Function DTS(dtInicio As Date, dtFim As Date, Optional HojeTb As Boolean = False, Optional UltTb As Boolean = False) As Integer
On Error GoTo Err_DTS
Dim intCount As Integer
Dim rst As DAO.Recordset
Dim DB As DAO.Database
Set DB = CurrentDb
Set rst = DB.OpenRecordset("SELECT [FerData] FROM tblFeriados", dbOpenSnapshot)
If Not HojeTb Then
dtInicio = dtInicio
End If
' Se desejar contar a data de início, passe True em HojeTb
intCount = 0
If UltTb Then
Do While dtInicio <= dtFim
rst.FindFirst "[FerData] = #" & Format(dtInicio, "mm/dd/yyyy") & "#"
If Weekday(dtInicio) <> vbSunday And Weekday(dtInicio) <> vbSaturday Then
If rst.NoMatch Then intCount = intCount + 1
End If
dtInicio = dtInicio + 1
Loop
Else
Do While dtInicio < dtFim
rst.FindFirst "[FerData] = #" & Format(dtInicio, "mm/dd/yyyy") & "#"
If Weekday(dtInicio) <> vbSunday And Weekday(dtInicio) <> vbSaturday Then
If rst.NoMatch Then intCount = intCount + 1
End If
dtInicio = dtInicio + 1
Loop
End If
DTS = intCount
exit_dts:
Exit Function
Err_DTS:
Select Case err
Case Else
MsgBox err.Description
Resume exit_dts
End Select
End Function
'*********** Code End **************
Tenho um código que conta os dez dias úteis.
Preciso que após os dez dias úteis ele comece a contar dias corridos novamente.
Ex: data_envio 08/10/2014 e data_retorno 30/10/2014 = 17 dias úteis
preciso de 08/10/2014 - 30/10/2014 seja = á 19 dias 10 dias úteis e 9 dias corridos porque ultrapassou os 10 dias de prazo. 9 dias é multa.
Poderiam me ajudar?
Public Function DTS(dtInicio As Date, dtFim As Date, Optional HojeTb As Boolean = False, Optional UltTb As Boolean = False) As Integer
On Error GoTo Err_DTS
Dim intCount As Integer
Dim rst As DAO.Recordset
Dim DB As DAO.Database
Set DB = CurrentDb
Set rst = DB.OpenRecordset("SELECT [FerData] FROM tblFeriados", dbOpenSnapshot)
If Not HojeTb Then
dtInicio = dtInicio
End If
' Se desejar contar a data de início, passe True em HojeTb
intCount = 0
If UltTb Then
Do While dtInicio <= dtFim
rst.FindFirst "[FerData] = #" & Format(dtInicio, "mm/dd/yyyy") & "#"
If Weekday(dtInicio) <> vbSunday And Weekday(dtInicio) <> vbSaturday Then
If rst.NoMatch Then intCount = intCount + 1
End If
dtInicio = dtInicio + 1
Loop
Else
Do While dtInicio < dtFim
rst.FindFirst "[FerData] = #" & Format(dtInicio, "mm/dd/yyyy") & "#"
If Weekday(dtInicio) <> vbSunday And Weekday(dtInicio) <> vbSaturday Then
If rst.NoMatch Then intCount = intCount + 1
End If
dtInicio = dtInicio + 1
Loop
End If
DTS = intCount
exit_dts:
Exit Function
Err_DTS:
Select Case err
Case Else
MsgBox err.Description
Resume exit_dts
End Select
End Function
'*********** Code End **************