اذهب الي المحتوي
أوفيسنا

الردود الموصى بها

قام بنشر

بعد السلام والاحترام لجميع الإخوة الكرام في أوفيسنا

ارجو المساعدة في إيجاد طريقة لحساب ايام الشهر لجميع شهور السنة بحيث تكون متساوية 30 يوماً للشهر (يناير - فبراير - مارس - إلخ......)

أو كما في الدالة DAYS360 في اكسل... وهل يمكننا استخدام الدالة DAYS360 في اكسس؟ وما هي الطريقة؟

شاكر ومقدر لكم مقدماً

قام بنشر

استخدم هذه الدالة 

Function GetMonths30(Date1 As Date, Date2 As Date) As Long
Dim d1, m1, d2, m2 As String
Dim y1, y2 As Integer
Dim sum_d, sum_m, sum_y, sum_days As Integer
Dim tst1, tst2 As Long
d1 = Format(Day(Date1), "00"): d2 = Format(Day(Date2), "00")
m1 = Format(Month(Date1), "00"): m2 = Format(Month(Date2), "00")
y1 = Year(Date1): y2 = Year(Date2)
tst1 = y1 & m1 & d1: tst2 = y2 & m2 & d2
If tst2 < tst1 Then Exit Function
sum_d = Abs(Int(d2) - Int(d1))
sum_m = Abs(Int(m2) - Int(m1)) * 30
sum_y = (y2 - y1) * 360
sum_days = sum_y + Abs(sum_m - sum_d)
GetMonths30 = sum_days
End Function

ويتم مناداتها لحساب المدة بين تاريخين هكذا :

 Me.txtDays = GetMonths30(Me.TxtDate1, Me.TxtDate2)

 

  • Like 2
  • Thanks 2
قام بنشر (معدل)

أستاذي الغالي ابو خليل

سعيد جداً بوجودك ومساعدتي كما عهدناكم دائماً.... شاكر ومقدر لك جداً...

سوف يتم التجربة وسأخبرك بأي مستجد بإذن الله

علماً بأنني سوف أستخدمها في نموذج وايضاً في استعلام ياليت طريقة مناداتها في الاستعلام....

بارك الله فيك وفي علمك

تم تعديل بواسطه bakrykassala
قام بنشر (معدل)

استاذي ابو خليل حفظك الله وزادك علماً

 

 

شاكر لك اخي AbuuAhmed  ولكن كنا نتحدث عن الآكسس 

 

 

تم تعديل بواسطه bakrykassala
قام بنشر
10 ساعات مضت, bakrykassala said:

شاكر لك اخي AbuuAhmed  ولكن كنا نتحدث عن الآكسس

أعلم جيدا، أساسا أنا محسوب على الأكسس، أردتك أن تقهم الفكرة، وفهما من الاكسل أفضل، ومن ثم إذا اقتنعت بها يتم تنفيذها بالأكواد.
أعتقد أني كتبت شفرة بهذا الموضوع ولكني لا أعرف كيف أبحث عنه.

  • Like 1
قام بنشر

 

57 دقائق مضت, AbuuAhmed said:

وجدت الكود، وعملت مقارنة بين دالتي ودالة أبو خليل
أضطر أحيانا لعمل مقارنات فسامحوني. 

Periods360_01.xlsm 17.77 kB · 2 downloads

يبدوا ان المبرمجين هم اسرع الناس نسيانا

هذا النقاش تم بينننا سابقا

ولو اسعفتني ذاكرتي قبل اجابتي الأولى ، لأحلت السائل الى هذا الموضوع الأصل المماثل .. وفيه زيادة اضافة فريدة لأستاذنا المهندس @Eng.Qassim

  • Like 1
قام بنشر
في 5‏/10‏/2023 at 06:08, Foksh said:

هل تم حل المشكلة 😀 ؟

إذا قصدك المساهمة في إيجاد أفكار جديدة فتفضل. بانتظاركم.

قام بنشر (معدل)
5 دقائق مضت, AbuuAhmed said:

إذا قصدك المساهمة في إيجاد أفكار جديدة

على ما فهمت ،

لنفرض اننا في شهر نوڤمبر ( تشرين الثاني ) وعدد ايامه ٣١ يوم ، أنت تريد في حقل داخل نموذج ان يكون عدد ايامه ٣٠ يوم ؟

 

أرجو التوضيح لي ما الهدف والغاية من المطلب حتى استوعب طريقتي في الحل التي سأتبعها 😅

تم تعديل بواسطه Foksh
قام بنشر (معدل)
28 دقائق مضت, Foksh said:

رجو التوضيح لي ما الهدف والغاية من المطلب حتى استوعب طريقتي في الحل التي سأتبعها 😅

الحقيقة الهدف غير واضح، ولكن المساهمات بناء على طلب السائل.
كثير من الدول تفرض هذا القانون على محاسبي الرواتب، وكل عملياتهم في الأجر اليومي هو تقسيم الراتب على 30 يوم. وإلى هنا لا مشكلة ولكن عند حساب أيام الحضور والغياب للشهور التي أيامها لا تساوي 30 يوم تبدأ المشكلات/المشاكل مع المحاسبين ومع الموظفين.

أنا كنت أحلها أيام الشباب بإظهار الأيام الفعلية للغياب والحضور وأجرها يكون مضروبا بناتج قسمة الراتب على مدة الشهر الفعلية.
وإذا هذا الحل فيه تجاوز "قانوني" أو إداري فالحل هو الدالة التي قدمتها وهو حساب الأيام بالكسور، ويمكن تفادي ظهور الأيام بالكسور بإظهارها مجبورة ولكن أجرها يجب أن يكون حسب الأيام قبل الجبر.

وهناك حل آخر صعب الهضم ويصعب اقناع الإدارات فيه ويصعب تفهيم الموظفين الكبار فيه قبل الصغار وعليه لا داعي لطرحه.

من الحلول كذلك هو (ولكن الحل أعلاه أفضل) العمل على الأيام الأقل، أي نقارن بين غياب وحضور الموظف فأيهما أقل نعتمده ثم نطرحه من 30 والناتج للمقابل.
أي لو شهر مدته 29 يوم وعمل موظف 14 يوم وغاب 15 يوم فنعتمد 14 يوم عمل ونحسب غيابه 16 يوم. والعكس صحيح.
أي لو غاب 14 يوم وعمل 15 يوم سنعتمد 14 يوم غياب ونحسب عمله 16 يوم.

تم تعديل بواسطه AbuuAhmed
قام بنشر
42 دقائق مضت, AbuuAhmed said:

الحقيقة الهدف غير واضح، ولكن المساهمات بناء على طلب السائل.
كثير من الدول تفرض هذا القانون على محاسبي الرواتب، وكل عملياتهم في الأجر اليومي هو تقسيم الراتب على 30 يوم. وإلى هنا لا مشكلة ولكن عند حساب أيام الحضور والغياب للشهور التي أيامها لا تساوي 30 يوم تبدأ المشكلات/المشاكل مع المحاسبين ومع الموظفين.

أنا كنت أحلها أيام الشباب بإظهار الأيام الفعلية للغياب والحضور وأجرها يكون مضروبا بناتج قسمة الراتب على مدة الشهر الفعلية.
وإذا هذا الحل فيه تجاوز "قانوني" أو إداري فالحل هو الدالة التي قدمتها وهو حساب الأيام بالكسور، ويمكن تفادي ظهور الأيام بالكسور بإظهارها مجبورة ولكن أجرها يجب أن يكون حسب الأيام قبل الجبر.

وهناك حل آخر صعب الهضم ويصعب اقناع الإدارات فيه ويصعب تفهيم الموظفين الكبار فيه قبل الصغار وعليه لا داعي لطرحه.

من الحلول كذلك هو (ولكن الحل أعلاه أفضل) العمل على الأيام الأقل، أي نقارن بين غياب وحضور الموظف فأيهما أقل نعتمده ثم نطرحه من 30 والناتج للمقابل.
أي لو شهر مدته 29 يوم وعمل موظف 14 يوم وغاب 15 يوم فنعتمد 14 يوم عمل ونحسب غيابه 16 يوم. والعكس صحيح.
أي لو غاب 14 يوم وعمل 15 يوم سنعتمد 14 يوم غياب ونحسب عمله 16 يوم.

كنت اعتقد أن الهدف والفكرة غير التي تصورتها أنا ، ولكن أن كان الموضوع هكذا فلم كل هذا التعب والإرهاق ، انظر فيما يلي :-

1- لو أن الشهر 28 يوم ، سيتم حساب الراتب على أنه تم خلال الـ 30 يوم ( عرى فرضية فكرتك ) ؛ ولو كان الشهر 31 يوم ، فكذلك الأمر سيتم على حساب الـ 30 يوم ؛ صحيح ؟

فلم أقوم بعد الأيام والتجزئة اليومية والكسور ......... الخ من شوائب ؟؟ فقط أنا سأعتمد الراتب على اساس الـ 30 يوم ( إن كان الشهر أقل أم أكثر ) وعدد الأيام كأيام عمل أو كأيام غياب ستجبر بعضها ( تعويضاً للكسور ) .

يعني الراتب مقسوم على 30 يوم مطروح منه عدد ايام الغياب المضروب في ناتج القسمة الأولى , وصلى الله على سيدنا محمد 🥰

2- أعتقد أني طرحت كل الحروف في النقطة الأولى 🤣 .

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

زائر
اضف رد علي هذا الموضوع....

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • تصفح هذا الموضوع مؤخراً   0 اعضاء متواجدين الان

    • لايوجد اعضاء مسجلون يتصفحون هذه الصفحه
×
×
  • اضف...

Important Information