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

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

قام بنشر (معدل)

 

السلام عليكم ورحمة الله وبركاته

اما بعد...

اخواني الاعزاء في المرفق مثال به تقرير مبني على استعلام يحسب الفرق بين وقتين ومن ثم يجمع الناتج .. المشكلة عندي في طريقة جمع الناتج في التقرير

ارجو منكم المساعدة ولكم مني جزيل الشكر

example.zip

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

وعليكم السلام

اولا طريقة ضم الجدولين هكذا في الاستعلام  غير صحيحة

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

ثانيا : لايمكن الجمع حسب طريقتك لان الحقل غير رقمي وانما نطبق عملية الجمع على الحقول الرقمية

والطريقة  لجمع الوقت هو ان تستخرج الفارق بالدقائق فقط  في حقل رقمي ثم تجري عليها عملية الجمع

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

قام بنشر

جميل ايها البحار وحل رائع ولا اجمل

وعندي بعض النقاش 

اولا الوقت الفارق الحقيقي  الموجود في الجداول هو 8 ساعات والسبب عدم ايجاد علاقة بين الجدولين

ولنفرض ان  ان التكرار الموجود حقيقي وليس تكرار  فالمجموع في مثالك 24 ساعة ودقيقة يعني يوم

وحيث ان اليوم الوظيفي غالبا يكون 8 ساعات او 7 حسب النظام  فغالبا نحتاج ايجاد  الحضور او الغياب بالايام

لهذا  ذكرت  في مشاركتي السابقة ايجاد الفرق بالدقائق فقط  

وطبعا تكون داخل الاستعلام  للرجوع اليها عند الحاجة لمرونتها لاجراء العمليات عليها 

ما رأيكم ؟

 

  • Like 1
قام بنشر

بعد اذن أستاذ ابو خليل وجد الحل

اتفضل لو عجبك التعديل اضغط like

اولا دى شهادة اعتز بها من حضرتك

هذه النتيجو بالساعات والدقائق وبالطبع يمكن تحويلها الى دقائق

  • Like 2
قام بنشر

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

 

بالنسبة لحل اخي الكريم بحار الاكسس جزاه الله خيراً فاعتقد بانه حل سحري ويحتاج الى وقت لفهمه وان شاء الله احاول تطبيقه ولي عودة للنقاش فيه بعد ذلك

 

تحياتي

قام بنشر

لي طلب بسيط إن شاء الله وهو في حال كان التقرير مستند على جدول اخر واريد خانة الاجمالي في التقرير كيف يكون شكل كود الاجمالي؟ انا حاولت ان اضعه بداخل دالة DLookUp لكن لم تظهر النتيجة

قام بنشر

عفوا اخي بحار الاكسس ليس هذا المطلوب .. المطلوب هو  في حال كان التقرير Unbound  ومربع نص حساب حساب المجموع ايضا Unbound  أي بمعني ان التقرير غير مرتبط بموضوع الساعات لابجدول الساعات ولا باستعلام الفرق بين الوقتين .. الذي اعرفه انه في هذه الحالة يتم استخدام دالة الـ DLookUP كمصدر لبيانات مربع نص المجموع لكني لم اوفق في تطبيقها مع الكود الذي تفضلت به 

قام بنشر

اخواني الكرام ارفق لكم برنامجي لكي تجربوا عليه بصورة مباشرة حيث انني عجزت عن تطبيق الاجمالي في التقرير

عند فتح النموذج اختاروا شهر 6 لكي يفتح التقرير وستلاحظون خانة الاجمالي فارغة وهي المطلوبة حيث انها المفروض تحسب مجموع الساعات

 

 

attendance.zip

قام بنشر

ماشاء الله عليك استاذي القدير ابوعارف حلك ولا اروع .. بارك الله فيك وجعلها الله في ميزان حسناتك واتمنى ان تسقينا من نبع خبرتك دائماً ... تحياتي

قام بنشر

و بارك الله فيك ايضا

اخي الكريم وجدت الملفك لايزال بحاجة لتعديل الا و هو تكوين ساعات من دقائق الاضافية و اضافتهم الى اجمالي ساعات مثلا مجموعة ساعات العمل 80:90 (ثمانون ساعة و تسعون دقيقة) هذا غير منطقي  طبعا و الصحيح هو 81:30  كما هو في المرفق الجديد بعد تعديل

attendance.zip

قام بنشر

شكراً لك اخي ابوعارف على هذه الملاحظة المهمة وانا وجدت حل آخر يبدو اسهل في التطبيق وهو كالتالي 

وضعت الكود التالي في الاستعلام time_attendance

total1: Format([time2]-[time];"Short Time")

ومن ثم عملت استعلام اسمه total_time_attendance مستند على الاستعلام السابق ووضعت فيه الكود التالي 

total: Int(Sum([time2]-[time])*24) & ":" & Format(Sum([time2]-[time]);"nn")

ومن ثم في التقرير وضعت الكود التالي كمصدر لعنصر التحكم الخاص بمربع نص الاجمالي 

=DLookUp("[total]";"total_time_attendance")

لا اعلم اذا ماكان اجمالي الساعات سيكون 80.90 او 81:30 ارجو منك تجربتها وابداء رأيك فيها

 

تحياتي

قام بنشر

السلام عليكم و رحمة الله و بركاته

اخي العزيز!

حاولت تنفيذ دوال على الاستعلام و لكن لم ينجح حبذا لو ارفقت المثال لان دالة Int يرجع رقم الصحيح من الكسور ولاتصلح للتاريخ و الوقت و الشيء الثاني لماذا ضرب ناتج طرح وقتين في 24 ! هذا لتحويل ايام الى ساعات ، جمع 24 مع ساعت في حالة دوام شفتات ممكن ، لان وقت شفت ليلى تمتد الى يوم التالي و يرجع عدد ساعات مدومة سلبي و تعالج بـ جمع 24 .

على كل حال لمعرفة تحويل دقائق الى ساعات في جدول record2 قم بتغير وقت مغادرة لمؤظف "اوس علي" مقابل تاريخ 2016/06/29 الى 2:50 ومقابل تاريخ 2016/06/30 هلى  1:40 ثم افتح التقرير لشهر 6  اذا مجموعة ساعات "اوس علي" 8:90 خطاء و الصحيح 9:30

بالتوفيق،،،

قام بنشر

بعد اذن استاذي ابا عارف

ومشاركة لعل بها فائدة

تحياتي

قام بنشر
3 ساعات مضت, ابو عارف said:

لمعرفة تحويل دقائق الى ساعات في جدول record2 قم بتغير وقت مغادرة لمؤظف "اوس علي" مقابل تاريخ 2016/06/29 الى 2:50 ومقابل تاريخ 2016/06/30 هلى  1:40 ثم افتح التقرير لشهر 6  اذا مجموعة ساعات "اوس علي" 8:90 خطاء و الصحيح 9:30

بالتوفيق،،،

أخي ابوعارف قمت بتغيير الوقت كما اشرت الى 2:50 وكذلك 1:40 وكانت النتيجة 9:30 لايوجد اي مشكلة!! سوف ارفق لك صورة التقرير مع المثال 

اما بالنسبة لسؤالك عن لماذا ضرب ناتج طرح وقتين في 24  فحقيقة انا سألت نفسي نفس السؤال ولم افهم عمل الكود بشكل جيد لكنه يؤدي الغرض واعتقد ان الاخ العزيز بحار الاكسس هو من زودني بهذا الكود في مشاركته اعلاه "اتفضل التقرير عن طريق الجدول وعن الاستعلام" لذلك اضم صوتي لصوتك وننتظر منه الجواب 

 

استاذي القدير رمهان حلك جميل كحل الاساتذة الكرام هنا في هذا الموضوع لكننا بصدد مناقشة ابسط كود يؤدي الغرض من بين الحلول العبقرية التي تفضلتم بها .. ارجو منك تجربة المرفق وابداء رأيك بالكود الموجود في الاستعلام total_time_attendance عسى ان تجد لنا تفسيراً منطقياً لذلك

تحياتي

attendance.zip

Untitled.jpg

قام بنشر (معدل)

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

=Hour(DSum("([time2]-[time])";"time_attendance")) & ":" & Format(Minute(DSum("([time2]-[time])";"time_attendance"));"00")

 

 

 

attendance.zip

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

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

=Hour(DSum("([time2]-[time])";"time_attendance")) & ":" & Format(Minute(DSum("([time2]-[time])";"time_attendance"));"00")

 

 

 

attendance.zip

بالطريقة هذي استاذ عارف لن يتم جمع الوقت لاكثر من 24 ساعة !

وكذلك اجمالي الدقائق عند تخطي 1440

هذا والله اعلم

اخي ساندانت

حاول تطبيق المشاركة بالرابط السابق ومع الاخ سلمان

 

بالتوفيق

قام بنشر

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

 

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

total: Int(Sum([time2]-[time])*24) & ":" & Format(Sum([time2]-[time]);"nn")

 

Untitled.jpg

attendance.zip

قام بنشر (معدل)
6 ساعات مضت, رمهان said:

الطريقة هذي استاذ عارف لن يتم جمع الوقت لاكثر من 24 ساعة !

وكذلك اجمالي الدقائق عند تخطي 1440

شكرا على تعليق استاذ ابا جود ، صحيح كان هناك خطاء بسبب كتابه كلمة Hour في مكان غير مناسب و لتصحيح تلك الخطاء اضطرت معالجتها بالفنكشن في وحدة النمطية و ذالك لزيادة طول في التعبير .

اخي SANDA NET جرب التعديل و لك حرية اختيار التعديل من ثلاثة ، التعديل في مشاركتي الثانية او تعديل الحالي او تعدبل على طريقة استاذ "بحار الاكسس" و طريقة بحار الاكسس تحسب حتى ثواني اوقات و من وجهة نظري  طريقة جيدة ، و للحل مشكلة ثواني اجعل قيم اوقات افتراضية في كل جدولين "Short Time" او  Format(Date(),"nn"

بالتوفيق،،

attendance (1).zip

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

استاذي الكريم ابوعارف احييك على روح المثابرة في الوصول الى حل سليم وبالفعل حلك في المرفق الأخير رائع جدا "TimeCount" وهناك حلول عديدة في هذا المجال وانا حقيقةً لا اهمل اي حل مقدم من خلالكم فانتم خبراء في هذا المجال ونحن تلامذتكم وهدفنا الوصول الى ابسط الحلول العملية .. فتحياتي لك وللأخوة الافاضل الذين شاركوا معي هذا الموضوع

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