اذهب الي المحتوي
أوفيسنا
بحث مخصص من جوجل فى أوفيسنا
Custom Search

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

قام بنشر

سلام عليكم 

أنا الآن أقوم بتصميم برنامج تكليف بمهمة 

وفي صدد حساب كم من وجبة غذاء و كم من وجبة عشاء وكم ليلة مبيت لكي أقوم بحساب مستحقات المهمة 

مثلا الغذاء على 12:00 

العشاء على 9:00 

إذا خرج الموظف في 11/05 على الساعة 11:00 وعاد في 13/05 على الساعة 12:30 

أي الموظف لديه 3 وحبات غذاء و 2 وجبات عشاء 

و 2 ليلة مبيت 

أريد طريقة للحساب بارك الله فيكم 

 

 

قام بنشر

السلام عليكم

اعتقد لست بحاجة للبحث بين التواريخ

فقط تعمل جدول تحكم  للتكليف على اعتبار الايام

يكون في الجدول حقول حسب المستحقات اليومية  الممنوحة ( غداء / عشاء / مواصلات ... وهكذا ) ويمكن ايضا وضع المبالغ المقدرة لكل مستحق ضمن الجدول .

فمثلا الموظف فلان تم تكليفه بمهمة لمدة ثلاثة ايام  ، فآليا يظهر له في التقرير ( قيمة الغداء  مضروب في 3 ) وهكذا بقية البنود

هذا رأيي لان هذه الطريقة اكثر مرونة وقابلة للتطوير والتعديل

 

 

قام بنشر

هاته الطريقة لاتعطيك الحساب الدقيق لأن العامل إذا دخل قبل 12 لايستفيد من وجبة غذاء 

قام بنشر

دخل فين ؟ هل تقصد تسجيل حضور ؟ اذا هكذا يمكنك استخدام قاعدة if فيما يشبه هذا :

if txtTime => # 11:59:59 # then
anything="غداء"
else
anything=""
end if

 

  • تمت الإجابة
قام بنشر (معدل)

أهلا بك أستاذ @higo2015 🙂 

تفضل أستاذي هذه الطريقة - تحسب لك عدد وجبات الغداء التي تقع في الساعة 12 ظهر // ووجبات العشاء الساعة 9 مساءا // وعدد الليالي الساعة 12 ليلا :

image.gif.77ba2efb7fbbd72a77f9e98a9b2f4659.gif

باستخدام الدالة التالية :

Public Function LunchNDinnerNights(StartDate As Date, EndDate As Date) As String

Dim SH As Integer 'Start Hour
Dim TH As Integer 'Total Hours
Dim x As Integer
Dim H As Integer
Dim L As Integer 'Lunches
Dim D As Integer 'Dinners
Dim N As Integer 'Nights


SH = Format(StartDate, "HH")
'Debug.Print "Start Hour=" & SH

TH = DateDiff("H", StartDate, EndDate)
'Debug.Print "Total Hours=" & TH

For x = 0 To TH

H = Format(DateAdd("h", x, StartDate), "HH")
'Debug.Print "Hour=" & H

If H = 12 Then L = L + 1
If H = 21 Then D = D + 1
If H = 0 Then N = N + 1

Next x

LunchNDinnerNights = L & " Lunch , " & D & " Dinner , " & N & " Night ."

End Function

ثم تناديها هكذا :

    If IsNull(Me.StartText) Or IsNull(Me.EndText) Then Exit Sub
    
    Me.ResultText = LunchNDinnerNights(Me.StartText, Me.EndText)

مع مراعات أن تضع تنسيق التاريخ في المربعات بالصورة التالية : dd/mm/yyyy hh:nn:ss AM/PM

image.png.5a9b9c69a69f5adc1fa6279ebf35ecb2.png

جربها وأخبرني برأيك 🙂 

أدركتم العشاء والمبيت.accdb

تم تعديل بواسطه Moosak
  • Like 1
  • Thanks 1

انشئ حساب جديد او قم بتسجيل دخولك لتتمكن من اضافه تعليق جديد

يجب ان تكون عضوا لدينا لتتمكن من التعليق

انشئ حساب جديد

سجل حسابك الجديد لدينا في الموقع بمنتهي السهوله .

سجل حساب جديد

تسجيل دخول

هل تمتلك حساب بالفعل ؟ سجل دخولك من هنا.

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

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

Important Information