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

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

قام بنشر

سلام عليكم 

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

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

مثلا الغذاء على 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

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