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

مشكلة في عملية الجمع


sandanet

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

 

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

اما بعد...

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

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

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