احتاج في Query لضرب قيمة عدد الساعات (Format short time 00:00) في عدد العمال (Format number) ويكون الناتج إجمالي عدد ساعات العمل الفعلية (00:00) حيث انه في الوضع الحالي إذا اخترت Short time format فانه إذا تعدت اجمالي الساعات 24:00 ساعة فانه يعيد من صفر مره اخرى فكيف يمكن جعلة يكتب الساعة كما هي مثلاً 30:00
ضرب رقم في ساعة ليكون الناتج بالساعات
اخي الكريم
السلام عليكم ورحمة الله وبركاته
لكي تقوم بمثل هذا العمل سأشرح لك الطريقه بالتفصيل مع ادارج مثال على ذلك
اولا : قم بإنشاء جدول يحتوي على الحقول التالية
ID .......... رقم معرف / نوعه ترقيم تلقائي
Time ....... ساعات العمل / نوعه تاريخ ووقت ( ShortTime )
Workers .... عدد العمال / نوعه رقم
بعد الانتهاء من انشاء الجدول قم بحفظه وقم بتعبئة الوقت المطلوب مثلا
ساعات العمل ........ عدد العمال
10:30 ............... 4
08:45............... 6
11:00 ............... 3
13:30 ............... 8
ثانيا : قم بإنشاء وحده نمطية جديده وضع بها هذا الكود
Public Function HoursAndMinutes(interval As Variant) As String '*********************************************************************** ' Function HoursAndMinutes(interval As Variant) As String ' Returns time interval formatted as a hours:minutes string '*********************************************************************** Dim totalminutes As Long, totalseconds As Long Dim hours As Long, minutes As Long, seconds As Long If IsNull(interval) = True Then Exit Function hours = Int(CSng(interval * 24)) totalminutes = Int(CSng(interval * 1440)) ' 1440 = 24 hrs * 60 mins minutes = totalminutes Mod 60 totalseconds = Int(CSng(interval * 86400)) ' 86400 = 1440 * 60 secs seconds = totalseconds Mod 60 If seconds > 30 Then minutes = minutes + 1 ' round up the minutes and If minutes > 59 Then hours = hours + 1: minutes = 0 ' adjust hours HoursAndMinutes = hours & ":" & Format(minutes, "00") End Function
ثالثا : قم بإنشاء استعلام مبني على الجدول
في نهاية الاستعلام انشئ حقل جديد وضع به هذا الكود
TOTAL: HoursAndMinutes([Time]*[workers])
حيث Total هي مجموع عدد ساعات العمل
HoursAndMinutes هي اسم الدالة المأخوذه من الوحدة النمطيه
Time هو الوقت او الساعات التي موجوده بالجدول
workers هو عدد العمال
الان قم بتشغيل الاستعلام وستظهر النتيجه كما تريدها
رابعا : نقوم بإنشاء نموذج مبني على الجدول لكي نستطيع الكتابه به ثم نقوم بإنشاء مربع نص غير منضم ونضع به هذا الكود
=HoursAndMinutes([Time]*[work]) & " ساعة"
وستظهر لك النتيجه مباشرة بمجرد كتابة الوقت وعدد العمال وهذا مثال على ذلك
لمزيد من المعلومات انظر الروابط التاليه للاستفاده
قواعد البيانات بين النظرية والتطبيق
اختكم
زهره
الاخ العزيز
حسب فهمي للموضوع
لدينا 5 عمال اشتغلوا 4:20
6 عمال اشتغلوا 3:50
فاننا نعمل الاتي(4*60+20)*5+(3*60+50)*6=2680 دقيقة
ثم
2680/60 لاظهار عدد الساعات ولا تنسى استعمال INT
INT(2680/60 ويساوي 44 ساعة
ثم
60/2680-int(2680/60 ونضرب الناتج في 60/100 لاظهار الدقائق
ويساوي 40 دقيقة
والسلام
أحمد
الاخ الفاضل احمد
لدينا مثلا 300 عامل كل ثلاثة عمال او خمسه او غير ذلك يعني على شكل مجموعات صغيره كل مجموعة عملت لعدد من الساعات هل تعتقد ان الطريقة التي ذكرتها في شرحك مجديه .
اتمنى ان تحاول تطبيق ما قمت بشرحه بعمل مثال ولا تنسى ان يكون عدد السجلات كثير لترى النتيجه
اختكم
زهره
الاخت الكريمة
ارفق لك ما طلبه المشترك وفق رغبته
"احتاج في Query لضرب قيمة عدد الساعات (Format short time 00:00) في عدد العمال (Format number) ويكون الناتج إجمالي عدد ساعات العمل الفعلية" وهذا طلب الاخ المشترك
وحيث اني عادة لا احبذ اعطاء الحل بل اعطاء فكرة الحل واعتقد ان هذا افضل حتى احث المشترك على التفكير بدل من اعطاءه دالة جاهزة من عمل غيره لا يفهم حتى مصطلحاتها الاجنبية
واليك حل مبسط حسب طلبك
أحمد
هذا الموضوع مغلق.

