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

إظهار السجل الأول في حال تكرار البيانات وإخفاء البقية


jandbi
إذهب إلى أفضل إجابة Solved by Shivan Rekany,

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

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

مهما انقطعنا وانشغلنا الا ان هذا المنتدى يبقى المرجع والملجأ بعد الله سبحانه وتعالى بسبب تعاون أعضائه ومشرفيه

المشكلة كالتالي :

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

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

طبعاً كما هو في الصورة .. موظف رقم 5 سجل دخول بتاريخ 22/10/2017 مرتين ، والفرق بين البصمتين ثواني فقط ..

2017-10-22.jpg.2d32c69aa5f5d32d01563a3d79ea0e14.jpg

TimeINOUT.zip

رابط هذا التعليق
شارك

37 دقائق مضت, jandbi said:

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

طبعاً كما هو في الصورة .. موظف رقم 5 سجل دخول بتاريخ 22/10/2017 مرتين ، والفرق بين البصمتين ثواني فقط ..

استخدم first في الاستعلام
 

 

TimeINOUT.zip

  • Like 2
رابط هذا التعليق
شارك

1 ساعه مضت, Shivan Rekany said:

استخدم first في الاستعلام
 

 

TimeINOUT.zip

شكراً أخ شفان ..

لكن الحل غير مكتمل والسبب عدم ظهور الموظف رقم 1 و رقم 2 في الاستعلام ؟!

رابط هذا التعليق
شارك

منذ ساعه, jandbi said:

شكراً أخ شفان ..

لكن الحل غير مكتمل والسبب عدم ظهور الموظف رقم 1 و رقم 2 في الاستعلام ؟!

اعتذر بشدة ... لم انتبهت على ذلك
اتفضل اليك هذا استعلام

SELECT CHECKINOUT.USERID, Max(CHECKINOUT.CHECKTIME) AS MaxOfCHECKTIME, [11].ID, [11].FristName, Max(Format([CHECKTIME],"dd/mm/yyyy")) AS DateIN, First(Format([CHECKTIME],"hh:nn:ss AM/PM")) AS TimeIN
FROM 11 INNER JOIN CHECKINOUT ON [11].USERID = CHECKINOUT.USERID
GROUP BY CHECKINOUT.USERID, [11].ID, [11].FristName
HAVING (((Max(Format([CHECKTIME],"dd/mm/yyyy")))=[Forms]![ADSEmployees]![iDate2]) AND ((First(Format([CHECKTIME],"hh:nn:ss AM/PM"))) Between #12/30/1899 5:0:0# And #12/30/1899 9:59:59#));

 

TimeINOUT.zip

  • Like 2
رابط هذا التعليق
شارك

5 ساعات مضت, Shivan Rekany said:

اعتذر بشدة ... لم انتبهت على ذلك
اتفضل اليك هذا استعلام


SELECT CHECKINOUT.USERID, Max(CHECKINOUT.CHECKTIME) AS MaxOfCHECKTIME, [11].ID, [11].FristName, Max(Format([CHECKTIME],"dd/mm/yyyy")) AS DateIN, First(Format([CHECKTIME],"hh:nn:ss AM/PM")) AS TimeIN
FROM 11 INNER JOIN CHECKINOUT ON [11].USERID = CHECKINOUT.USERID
GROUP BY CHECKINOUT.USERID, [11].ID, [11].FristName
HAVING (((Max(Format([CHECKTIME],"dd/mm/yyyy")))=[Forms]![ADSEmployees]![iDate2]) AND ((First(Format([CHECKTIME],"hh:nn:ss AM/PM"))) Between #12/30/1899 5:0:0# And #12/30/1899 9:59:59#));

 

TimeINOUT.zip

الشكر الجزيل لك .. يعمل الان بشكل صحيح :fff:

لكن فيه ملاحظة .. عند ادخال تاريخ 22/10/2017 يظهر لنا سجل الموظف رقم 5 ( المتكرر ) التسجيل الأخير في حقل MaxOfCHECKTIME: CHECKTIME وفي حقل TimeIN: First(Format([CHECKTIME];"hh:nn:ss AM/PM")) يظهر لنا التسجيل الأول :blink:

تم تعديل بواسطه jandbi
رابط هذا التعليق
شارك

  • أفضل إجابة
4 ساعات مضت, jandbi said:

الشكر الجزيل لك .. يعمل الان بشكل صحيح :fff:

لكن فيه ملاحظة .. عند ادخال تاريخ 22/10/2017 يظهر لنا سجل الموظف رقم 5 ( المتكرر ) التسجيل الأخير في حقل MaxOfCHECKTIME: CHECKTIME وفي حقل TimeIN: First(Format([CHECKTIME];"hh:nn:ss AM/PM")) يظهر لنا التسجيل الأول :blink:

القي نظرتا الى هذا

SELECT CHECKINOUT.USERID, First(CHECKINOUT.CHECKTIME) AS FirstOfCHECKTIME, [11].ID, [11].FristName, Format([CHECKTIME],"dd/mm/yyyy") AS DateIN, First(Format([CHECKTIME],"hh:nn:ss AM/PM")) AS TimeIN
FROM 11 INNER JOIN CHECKINOUT ON [11].USERID = CHECKINOUT.USERID
GROUP BY CHECKINOUT.USERID, [11].ID, [11].FristName, Format([CHECKTIME],"dd/mm/yyyy")
HAVING (((Format([CHECKTIME],"dd/mm/yyyy"))=[Forms]![ADSEmployees]![iDate2]) AND ((First(Format([CHECKTIME],"hh:nn:ss AM/PM"))) Between #12/30/1899 5:0:0# And #12/30/1899 9:59:59#));

 

TimeINOUT.zip

  • Like 2
رابط هذا التعليق
شارك

8 ساعات مضت, Shivan Rekany said:

القي نظرتا الى هذا


SELECT CHECKINOUT.USERID, First(CHECKINOUT.CHECKTIME) AS FirstOfCHECKTIME, [11].ID, [11].FristName, Format([CHECKTIME],"dd/mm/yyyy") AS DateIN, First(Format([CHECKTIME],"hh:nn:ss AM/PM")) AS TimeIN
FROM 11 INNER JOIN CHECKINOUT ON [11].USERID = CHECKINOUT.USERID
GROUP BY CHECKINOUT.USERID, [11].ID, [11].FristName, Format([CHECKTIME],"dd/mm/yyyy")
HAVING (((Format([CHECKTIME],"dd/mm/yyyy"))=[Forms]![ADSEmployees]![iDate2]) AND ((First(Format([CHECKTIME],"hh:nn:ss AM/PM"))) Between #12/30/1899 5:0:0# And #12/30/1899 9:59:59#));

 

TimeINOUT.zip

أشكرك جزيل الشكر .. :wub:

رابط هذا التعليق
شارك

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