אקסס- עיגול תאריך - עזרה
-
שלום רב
אשמח לעזרה כיצד "מעגלים" תאריך מסויים בחודש לתאריך עגול של סוף חודש
זה נוגע לעניין חישוב תאריך תשלום לספק כאשר הסכם התשלום הוא: שוטף, שוטף +30, שותף + 60.
"שוטף", היינו היום הראשון בחודש הקרוב,
לדוגמא:
אם תאריך חשבונית היא 15/4/21 והסכם התשלום הוא "שוטף", תאריך התשלום הוא: 1/5/21
אשמח לעזרתכם (ללא קוד)
אני ניסיתי להשתמש בפונקציה, כדלהלן:
תאריך תשלום: (m",1",[תאריך])-Day([תאריך]) DateAdd
אך התוצאות אינם מעגלות את התאאריך -
@לומד-ומתלמד
אחרי חיפוש ארוך מצאתי, אמנם איני מבין את המשמעות
DateSerial(Year ([OrderDate]), Month([OrderDate])+1, 1)
אולי מישהו ידע להסביר -
@לומד-ומתלמד הרעיון הוא לפרק את התאריך ליום, חודש, ושנה.
אחר כך לקבוע את היום ל-1, את החודש להגדיל באחד, ולהרכיב מחדש את התאריך על ידי הפונקציה DateSerial.
הנקודה החשובה (ושחסרה בקוד שהבאת) היא כאשר החודש הבא הוא בשנה הבאה, שאז יש לקבוע את החודש ל-1 ולהגדיל במקומו את השנה באחד.הנה פונקציה שעושה את הכל:
Public Function NextPaymentDay(inDate As Date) As Date Dim outputYear As Integer Dim outputMonth As Integer outputYear = Year(inDate) outputMonth = Month(inDate) + 1 ' If it is next year, increase year and set month to 1 If outputMonth = 13 Then outputMonth = 1 outputYear = outputYear + 1 End If NextPaymentDay = DateSerial(outputYear, outputMonth, 1) End Function
פלט לדוגמא:
?NextPaymentDay(#15/4/2021#) 01/05/2021
-
@odeddvir אמר באקסס- עיגול תאריך - עזרה:
פלט לדוגמא:
?NextPaymentDay(#15/4/2021#) 01/05/2021אם כבר תביא דוגמא שתמחיש את מה שעשית (בדגש על הדוגמה ש @לומד-ומתלמד מצא - [למי שלא הבין: יש חסרון בדוגמא ההיא, כשהחשבונית היא בחודש ה12 - לפי הדוגמא ההיא התאריך שתקבל זה "01/01/2020"]).
?NextPaymentDay(#15/12/2021#) 01/01/2022