سامر محمود قام بنشر منذ 20 ساعات قام بنشر منذ 20 ساعات الاخوة الكرام الخبراء الافاضل السلام عليكم ورحمة الله وبركاته من فضلكم انا عملت حاجة صغيرة للحضور والانصراف اليومي انا بس عايز اعمل تقرير يقولي كام موظف اتاخروا عن الساعة 9:30ص كام مرة في الشهر لكل موظف ويطبف اللائحة بتاعت التاخير لوحده يعني مثلا اول مرة يكون انذار بعد كده ربع يوم اكون شاكر فضلكم جدا علي المساعدة Att - Copy.rar
أفضل إجابة Foksh قام بنشر منذ 18 ساعات أفضل إجابة قام بنشر منذ 18 ساعات أخي @سامر محمود ,, بالنسبة للنقطة :- منذ ساعه, سامر محمود said: يقولي كام موظف اتاخروا عن الساعة 9:30ص فحلها بسيط وهو أن تضع معيار في الاستعلام Delay report في حقل "وقت الحضور" = >#9:30:00 AM# . أما في هذه النقطة :- 1 ساعه مضت, سامر محمود said: كام مرة في الشهر لكل موظف ويطبف اللائحة بتاعت التاخير لوحده يعني مثلا اول مرة يكون انذار بعد كده ربع يوم فتستطيع باستخدام الاستعلام ان تحصي عدد تكرارات التأخير لكل موظف ، وأن تطبق لائحة العقوبات التي تريدها . وفي هذه النقطة قمت بإضافة بإضافة العقوبات حسب عدد التكرارات و إضافة عقوبات جديدة تستطيع حذفها كيفما تريد ) هذا الاستعلام يجلب لك الموظفين المتأخرين :- SELECT Att_Details.serial, Att_Details.[رقم الموظف], Att_Details.[اسم الموظف], Att_Details.[نوع الحركة], Att_Details.[تاريخ الحركة], Att_Details.[وقت الحضور], Att_Details.[وقت الانصراف], Att_Details.الفرق, Att_Details.الملاحظات FROM Att_Details WHERE Att_Details.[وقت الحضور] > #09:30:00 AM#; وهذا الاستعلام يقوم بعد تكرارات التأخير فقط :- SELECT Att_Details.[رقم الموظف], Att_Details.[اسم الموظف], Format(Att_Details.[تاريخ الحركة],"yyyy/mm") AS الشهر, Count(*) AS التكرار FROM Att_Details WHERE (((Att_Details.[وقت الحضور])>#12/30/1899 9:30:0#)) GROUP BY Att_Details.[رقم الموظف], Att_Details.[اسم الموظف], Format(Att_Details.[تاريخ الحركة],"yyyy/mm"); والإستعلام الأخير يقوم بعد التكرارات وبناءً عليها يطبق العقوبات :- SELECT Att_Details.[رقم الموظف], Att_Details.[اسم الموظف], Format(Att_Details.[تاريخ الحركة], "yyyy/mm") AS الشهر, COUNT(*) AS التكرار, IIf(COUNT(*) = 1, "إنذار", IIf(COUNT(*) > 1 AND COUNT(*) < 6, "ربع يوم", IIf(COUNT(*) > 5 AND COUNT(*) < 11, "نصف يوم", "خصم يوم"))) AS الإجراء FROM Att_Details WHERE Att_Details.[وقت الحضور] > #09:30:00 AM# GROUP BY Att_Details.[رقم الموظف], Att_Details.[اسم الموظف], Format(Att_Details.[تاريخ الحركة], "yyyy/mm"); والملف بعد التعديل :- Att - Copy.accdb 1
سامر محمود قام بنشر منذ 14 ساعات الكاتب قام بنشر منذ 14 ساعات 4 ساعات مضت, Foksh said: أخي @سامر محمود ,, بالنسبة للنقطة :- فحلها بسيط وهو أن تضع معيار في الاستعلام Delay report في حقل "وقت الحضور" = >#9:30:00 AM# . أما في هذه النقطة :- فتستطيع باستخدام الاستعلام ان تحصي عدد تكرارات التأخير لكل موظف ، وأن تطبق لائحة العقوبات التي تريدها . وفي هذه النقطة قمت بإضافة بإضافة العقوبات حسب عدد التكرارات و إضافة عقوبات جديدة تستطيع حذفها كيفما تريد ) هذا الاستعلام يجلب لك الموظفين المتأخرين :- SELECT Att_Details.serial, Att_Details.[رقم الموظف], Att_Details.[اسم الموظف], Att_Details.[نوع الحركة], Att_Details.[تاريخ الحركة], Att_Details.[وقت الحضور], Att_Details.[وقت الانصراف], Att_Details.الفرق, Att_Details.الملاحظات FROM Att_Details WHERE Att_Details.[وقت الحضور] > #09:30:00 AM#; وهذا الاستعلام يقوم بعد تكرارات التأخير فقط :- SELECT Att_Details.[رقم الموظف], Att_Details.[اسم الموظف], Format(Att_Details.[تاريخ الحركة],"yyyy/mm") AS الشهر, Count(*) AS التكرار FROM Att_Details WHERE (((Att_Details.[وقت الحضور])>#12/30/1899 9:30:0#)) GROUP BY Att_Details.[رقم الموظف], Att_Details.[اسم الموظف], Format(Att_Details.[تاريخ الحركة],"yyyy/mm"); والإستعلام الأخير يقوم بعد التكرارات وبناءً عليها يطبق العقوبات :- SELECT Att_Details.[رقم الموظف], Att_Details.[اسم الموظف], Format(Att_Details.[تاريخ الحركة], "yyyy/mm") AS الشهر, COUNT(*) AS التكرار, IIf(COUNT(*) = 1, "إنذار", IIf(COUNT(*) > 1 AND COUNT(*) < 6, "ربع يوم", IIf(COUNT(*) > 5 AND COUNT(*) < 11, "نصف يوم", "خصم يوم"))) AS الإجراء FROM Att_Details WHERE Att_Details.[وقت الحضور] > #09:30:00 AM# GROUP BY Att_Details.[رقم الموظف], Att_Details.[اسم الموظف], Format(Att_Details.[تاريخ الحركة], "yyyy/mm"); والملف بعد التعديل :- Att - Copy.accdb 996 kB · 7 downloads طبعا مش جديد عليك والله دايما ضهر وسند وقت الحاجة تسلم يا اخي @Foksh 1
الردود الموصى بها
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.