اذهب الي المحتوي
أوفيسنا
بحث مخصص من جوجل فى أوفيسنا
Custom Search

حذف سجل بشرط


Omar_Kreem

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

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

الأساتذة الأفاضل

هل يمكن حذف سجل فى حالة تشابه التاريخ وإذا كان الفارق بينه وبين السجل التالى له أقل من دقيقة واحدة

Del_record.rar

حذف السجل إذا كان الفارق بينه وبين السجل.jpg

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

في ١٢‏/٢‏/٢٠١٨ at 10:05, omar19-3 said:

هل يمكن حذف سجل فى حالة تشابه التاريخ وإذا كان الفارق بينه وبين السجل التالى له أقل من دقيقة واحدة

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

DELETE Emp_data.id, Emp_data.Emp_time, DateDiff("s",[Emp_time],DLookUp("[Emp_time] ","Emp_data","[Emp_data]![id]=" & [id]+1)) AS Expr1
FROM Emp_data
WHERE (((DateDiff("s",[Emp_time],DLookUp("[Emp_time] ","Emp_data","[Emp_data]![id]=" & [id]+1)))<60));

اولا افتح استعلام العادي لكي تنظر الى السجلات
وبعدين اذا تريد قم بفتح استعلام الحذف مرة واحدة
اليك الملف
 

Del_record (2).rar

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

جزاك الله خيرا خبيرنا أستاذ/ شفان ..

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

فهل يمكن الحساب لكل شخص على حدى ..

Del_record_2.rar

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

  • 3 weeks later...

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

 

Del_record.rar

تم تعديل بواسطه omar19-3
  • Like 1
رابط هذا التعليق
شارك

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

اعتقد ان اساعدك بفكرة

تحياتي

 

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

حياك الله اخ عمر

استفساراتك عويصة حبتين !!  

ايش رايك نقول ابقاء سجل واحد فقط لنفس الموظف لنفس التاريخ خلال دقيقة؟ وهنا لك خيار في اختيار هذا السجل هل هو الاول في القائمة خلال دقيقة او الاخير ؟

لانه لو مشينا حسب شرحك فكيف احذف سجل احتاج مقارنته مع سجل لاحق ؟

تحياتي

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

جزاك الله خيرا أستاذي رمهان

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

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

عزيزي عمر

لا يوجد بالمف السابق الحالة

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

يوجد query1  للتجميع  و form1   للكود

جرب وتقبل تحياتي

Del_record.mdb

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

أستاذى الكريم ... بتجربة الكود اعطانى هذه الرسالة

Clip.jpg.cd3d1ad525835b13616b2c3a580f3719.jpg

مرفق ملف بعد اضافة الحالة (دخول/خروج).

Del_record_2.mdb

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

2 ساعات مضت, omar19-3 said:

أستاذى الكريم ... بتجربة الكود اعطانى هذه الرسالة

Clip.jpg.cd3d1ad525835b13616b2c3a580f3719.jpg

مرفق ملف بعد اضافة الحالة (دخول/خروج).

Del_record_2.mdb

غير اعدادات جهازك للوقت الى شكل 24 ساعة بحيث لا يظهر حروف تدل على الصباح او المساء بالوقت وخصوصا عمود  emp_time

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

جزاك الله خيراً أستاذ رمهان 

تم عمل الكود بنجاح بعد تغيير إعدادات ويندوز إلى 24 ساعة

query1 فى  Min والملاحظ أنه يتم الحذف وفقاً لشرط الدالة 

query1   وقد يتم فرق الدقيقة فى وقت أكبر من المعروض بـ

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

يوجد خطأ منى بأننى لم أدرج الحالة (دخول/خروج) وقد أنشأت عامود الحالة ووضعته فى المشاركة السابقة بفرض أن حالات الدخول منفصلة عن حالات الخروج فى حساب فارق الدقيقة

 

كذلك يظل بطئ التنفيذ نظرا لضخامة عدد السجلات

 

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

اخ عمر

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

الان لتاكيد الفهم : تريد حذف سجلات حدثت خلال دقيقة لنفس الموظف ونفس التاريخ ونفس الحالة والابقاء على السجل الاول فقط؟

ومسألة البطء خليها بعدين . خلينا نفهم المطلوب تمام ومن ثم التحسين .

تحياتي

 

تم تعديل بواسطه رمهان
  • Like 1
رابط هذا التعليق
شارك

جرب الملف التالي 

تنبيه : كانت ملاحظتك صحيحة اخ عمر هنا

11 ساعات مضت, omar19-3 said:

جزاك الله خيراً أستاذ رمهان 

تم عمل الكود بنجاح بعد تغيير إعدادات ويندوز إلى 24 ساعة

query1 فى  Min والملاحظ أنه يتم الحذف وفقاً لشرط الدالة 

query1   وقد يتم فرق الدقيقة فى وقت أكبر من المعروض بـ

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

يوجد خطأ منى بأننى لم أدرج الحالة (دخول/خروج) وقد أنشأت عامود الحالة ووضعته فى المشاركة السابقة بفرض أن حالات الدخول منفصلة عن حالات الخروج فى حساب فارق الدقيقة

 

كذلك يظل بطئ التنفيذ نظرا لضخامة عدد السجلات

 

والان يظهر استنتاج : انه لو عمل الموظف كل 50 ثانية خروج ولعدد 10 مرات اي بين كل حركة وحركة 50 ثانية لنفس الحالة خروج فان اجماليهم سيصبح اكثر من دقيقة وهنا سيتم حذف 9 سجلات لانه الفارق بين كل وسجل وماقبله اقل من دقيقة ! هل هذا الاستنتاج صحيح ؟ حيث تم الملف التالي حسب هذا الاستنتاج مع التنبيه بانه تم استبدال عملية الحذف بتأشير السجل بانه مهمل حيث لك الخيار باهمالها بالاستعلام او تحديدها ثم حذفها 

تحياتي

Del_record_2 (1).mdb

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

11 hours ago, رمهان said:

والان يظهر استنتاج : انه لو عمل الموظف كل 50 ثانية خروج ولعدد 10 مرات اي بين كل حركة وحركة 50 ثانية لنفس الحالة خروج فان اجماليهم سيصبح اكثر من دقيقة وهنا سيتم حذف 9 سجلات لانه الفارق بين كل وسجل وماقبله اقل من دقيقة ! هل هذا الاستنتاج صحيح ؟ حيث تم الملف التالي حسب هذا الاستنتاج مع التنبيه بانه تم استبدال عملية الحذف بتأشير السجل بانه مهمل حيث لك الخيار باهمالها بالاستعلام او تحديدها ثم حذفها 

:أستاذ رمهان **

....جزاك الله كل خير *

.حقيقة حل مثالى وعبقرى لدرجة لم أكن أتصورها وهذا ليس بغريب عليك *

 .وملاحظة حضرتك فى محلها فعلا بأن وضعت حلا لاحتمالات ما قد يكون *

.كذلك سرعة أداء الكود فى العمل مع ما يقرب من 160.000 سجل؛ لا تتجاوز الـ 30 ثانية تقريباً **

.زادك الله علماً وأعطاك خير الدنيا والآخرة ***

تم تعديل بواسطه omar19-3
  • Like 2
رابط هذا التعليق
شارك

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

1. ادخال التاريخ كشرط اضافي بحيث يكون التاريخ بداية سجلات لم تعالج

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

تحياتي

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

  • 2 months later...
في ٢٧‏/٣‏/٢٠١٨ at 21:28, رمهان said:

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

أ/ رمهان ..

جزاك الله خيراً ..

........ حاولت تطبيق ذلك لكن للأسف لم أتمكن من إخراج نتيجة مرضية حتى الآن ..

.......... أأمل المساعدة فى وضع التأسير (صح) ولكن لكل سجل تم انطباق الشرط عليه ووضعه فى العمود (rtt)

Del_record_2 (1).mdb

تم تعديل بواسطه omar19-3
تعديل السؤال..
رابط هذا التعليق
شارك

من فضلك سجل دخول لتتمكن من التعليق

ستتمكن من اضافه تعليقات بعد التسجيل



سجل دخولك الان
  • تصفح هذا الموضوع مؤخراً   0 اعضاء متواجدين الان

    • لايوجد اعضاء مسجلون يتصفحون هذه الصفحه
×
×
  • اضف...

Important Information