Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Data + 14 dni roboczych

162 views
Skip to first unread message

Phantom

unread,
Aug 31, 2023, 6:43:45 AM8/31/23
to
Dzień dobry
Problem taki jak w tytule.
Muszę obliczyć datę prawomocności pisma z datą odbioru np.: 15 maja 2023 r.
Pismo uprawomocnia się po 14 dniach roboczych od daty odbioru, czyli:
Data odbioru pisma: DOdbDec
DOdbDec + 14 dni roboczych = musi zwrócić datę w tym przypadku 02 czerwca 2023 r.

Pomocy

Z góry dziękuję
Tomek

Maciej Franciszkowski

unread,
Sep 1, 2023, 11:35:15 AM9/1/23
to
>
> Z góry dziękuję
> Tomek

Może
DateAdd("d";14;DOdbDec)

MF

Maciej Franciszkowski

unread,
Sep 1, 2023, 2:12:46 PM9/1/23
to

Jeżeli chodzi o 14 dni roboczych to proponuję:

1. Utworzyć tabelkę pomocniczą z jedną kolumną - datami świąt tabela DatySwiat kolumna [DataSw]
2. Napisać/ zweryfikować poniższą funkcję.

"
Function DateAddWD14(DateP As Date) As Date
Dim DateK As Date
Dim i As Integer
DateK = DateP

Do Until i = 14
IF (WeekDay(DataK) Not IN (7, 1) And DLookup("[DataSw]", "DatySwiat") Is Null Then
i = i + 1
End IF
DataK = DateAdd("d", 1, DataK)
Next i

DateAddWD14 = DataK
End Function
"

Proszę

Maciej Franciszkowski

unread,
Sep 1, 2023, 3:04:43 PM9/1/23
to
piątek, 1 września 2023 o 20:12:46 UTC+2 Maciej Franciszkowski napisał(a):
> Jeżeli chodzi o 14 dni roboczych to proponuję:
>
> 1. Utworzyć tabelkę pomocniczą z jedną kolumną - datami świąt tabela DatySwiat kolumna [DataSw]
> 2. Napisać/ zweryfikować poniższą funkcję.
>
> "
/Poprawki


Function DateAddWD14(DateP As Date) As Date

Dim DateK As Date
Dim i As Integer
DateK = DateP

Do Until i = 14
IF (WeekDay(DataK) Not IN (7, 1) And DLookup("[DatySw]", "DatySwiat") Is Null) Then
i = i + 1
End IF
DataK = DateAdd("d", 1, DataK)
Loop

Maciej Franciszkowski

unread,
Sep 1, 2023, 3:28:40 PM9/1/23
to
piątek, 1 września 2023 o 21:04:43 UTC+2 Maciej Franciszkowski napisał(a):
> piątek, 1 września 2023 o 20:12:46 UTC+2 Maciej Franciszkowski napisał(a):
> > Jeżeli chodzi o 14 dni roboczych to proponuję:
> >
> > 1. Utworzyć tabelkę pomocniczą z jedną kolumną - datami świąt tabela DatySwiat kolumna [DataSw]
> > 2. Napisać/ zweryfikować poniższą funkcję.
/Dawno nie pisałem stąd błędy

Teraz poprawnie:

*******
Function DateAddWD14(DataP As Date) As Date

Dim DataK As Date
Dim i As Integer

IF Not IsDate(DataP) Then Exit Function
DateK = DataP

Do Until i = 14
IF (WeekDay(DataK) Not IN (7, 1) And IsNull(DLookup("[DataSw]", "DatySwiat", "[DataSw] = #" & DataK & "#"))) Then
i = i + 1
End IF
DataK = DateAdd("d", 1, DataK)
Loop

DateAddWD14 = DataK
End Function

******

MF

Maciej Franciszkowski

unread,
Sep 2, 2023, 4:16:30 AM9/2/23
to
piątek, 1 września 2023 o 21:28:40 UTC+2 Maciej Franciszkowski napisał(a):
> piątek, 1 września 2023 o 21:04:43 UTC+2 Maciej Franciszkowski napisał(a):
> > piątek, 1 września 2023 o 20:12:46 UTC+2 Maciej Franciszkowski napisał(a):
> > > Jeżeli chodzi o 14 dni roboczych to proponuję:
> > >
> > > 1. Utworzyć tabelkę pomocniczą z jedną kolumną - datami świąt tabela DatySwiat kolumna [DataSw]
> > > 2. Napisać/ zweryfikować poniższą funkcję.
> /Dawno nie pisałem stąd błędy
>
?
Function DateAddWD14(DataP As Date) As Date

Dim DataK As Date
Dim i As Integer

If Not IsDate(DataP) Then Exit Function

DataK = DataP
i = 0

Do Until i = 14
If (Weekday(DataK) <> 7 And Weekday(DataK) <> 1 And (DCount("*", "DatySwiat", "[DataSw] =#" & DataK & "#") = 0)) Then
i = i + 1
End If
DataK = DateAdd("d", 1, DataK)
Loop

DateAddWD14 = DataK

End Function


@Phantom czy DCount poprawnie działa u ciebie? U mnie jest błąd formatu daty w polu DataK.

MF


Maciej Franciszkowski

unread,
Sep 3, 2023, 9:41:36 AM9/3/23
to
> @Phantom czy DCount poprawnie działa u ciebie? U mnie jest błąd formatu daty w polu DataK.
>

Function DateAddWD14(DataP As Date) As Date

Dim DataK As Date
Dim i As Integer

IF Not IsDate(DataP) Then Exit Function

'Uprawomocnienie liczymy od następnego dnia od doręczenia - kodeks PA
'(tu data doręczenia to DataP)
DataK = DateAdd("d", 1, DataP)
i = 0

Do Until i = 14
IF (WeekDay(DataK) <> 7 And WeekDay(DataK) <> 1 And (DCount("*", "DatySwiat", "DataSw = #" & DataK & "#") = 0)) Then
i = i + 1
End IF

Maciej Franciszkowski

unread,
Sep 3, 2023, 12:22:28 PM9/3/23
to
Function DateAddWD14(DataP As Date) As Date
Dim DataK As Date
Dim i As Integer
IF Not IsDate(DataP) Then Exit Function
'Uprawomocnienie liczymy od następnego dnia od doręcznia - kodeks PA
'(tu data doręczenia to DataP)
DataK = DataP
i = 0
Do Until i = 14
0 new messages