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

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

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

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

الشكر والثناء لكم مقدما 

مثال.accdb

تم تعديل بواسطه مازن الحسيني
قام بنشر (معدل)

الشكر لله اولا ثم لاخواننا واساتذتنا جزاهم الله خيرا عنا

بالاضافه الى ما ذكره اخى ابو البشر - يجب عليك مراعاه وضع عنوان مناسب للموضوع مثلا كيفيه حذف اسماء مكرره

سؤال هل لهذه الاسماء كود مميز ام لا ؟ حتى يسهل عليك الفرز والحذف لان وجود مسافات زائده او تشابك لن يعتبر تشابه فالاسماء

تقبل تحياتى

درس حذف السجلات المكررة من الجدول اسهل طريقة - بدون استعلامات.rar

تم تعديل بواسطه أحمد الفلاحجى
  • Like 2
قام بنشر

جزاكم الله خيرا اخى خالد

3 دقائق مضت, مازن الحسيني said:

كل الاحترام لك اخي الكريم اريد اخفاء الاسم فقط

 

اخى الفاضل مازن

حذف ام اخفاء ؟

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

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

والمطلوب هو حذف الاسم المكرر وابقاء اسم واحد تحياتي لك ياكريم

الان, أحمد الفلاحجى said:

وده مثال اخر

لحذف مش اخفاء انتبه

تحدد فيه الجدول والحقل المراد وتنفذ

وبه ملف شرح فيديو + رابط

تقبل تحياتى وبالتوفيق

برنامج لحذف الحقول المكرره ببرنامجك مفتوح المصدر.rar 290.71 kB · 0 تنزيلات

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

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

اخى مازن

قبل ارسال الملف لك قمت بتجربته

وسوف اقوم بتجربته على مثالك المرفق وارسله لك

 

هذا ملفك بعد التجربه عليه

ملحوظه الملف المرفق يعمل على قواعد بيانات 2003 وليست 2007 فما فوق

 

تجربه.mdb

قام بنشر
الان, أحمد الفلاحجى said:

اخى مازن

قبل ارسال الملف لك قمت بتجربته

وسوف اقوم بتجربته على مثالك المرفق وارسله لك

 

هذا ملفك بعد التجربه عليه

ملحوظه الملف المرفق يعمل على قواعد بيانات 2003 وليست 2007 فما فوق

 

تجربه.mdb 276 kB · 1 تنزيلات

كل الشكر لك سيدي ولكن الاوفس عندي 2007 

 

قام بنشر

الشكر لله ثم لاخواننا واساتذتنا

وبلاش كلمه سيدى خليها اخى افضل فكلنا اخوان فالله

ممكن تحوله ل 2003 وتشتغل عليه ثم تستورد الجدول بعد ما تخلص شغلك

وان شاء الله احد اساتذتنا يوفرلك حلول اخرى

تقبل تحياتى وتمنياتى لك بالتوفيق

1 ساعه مضت, kha9009lid said:

 

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

في ٢٥‏/١‏/٢٠١٤ at 22:36, ابوخليل said:

يوجد اكثر من طريقة لحذف السجلات المكررة

1- انشاء استعلام البحث عن المتطابقات بواسطة المعالج ثم حذف السجلات المكررة يدويا

وهذا يصلح اذا كانت المكررات قليلة

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

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

النتيجة : نقل البيانات بلا مكررات

ويمكن بدلا من النسخ واللصق استخدام استعلام الالحاق لعمل ذلك

ملحوظة : ستخرج عليك رسائل تفيد بتعذر اللصق بسبب مخالفات  وكل ما عليك هو تجاهلها

 

بالتوفيق ،،،

  • Like 2
قام بنشر

الحل الاسهل

  1. نقوم بنسخ الجدول الموجود به السجلات المكررة
  2. نقوم بلصقة في نفس القاعدة ومن الاختيارات التي سوف تظهر لنا نختار البنية فقط
  3. نقوم بالدخول على خصائص الجدول الجديد في خانة الاسم في حالتناونجعلة مفتاح اساس لايقبل التكرار
  4. نقوم بعمل استعلام الحاق لكافة البيانات
  5. نقوم بتشغيل الاستعلام ونتجاهل ايرسالة خطأ
  6. بعد انتهاء تنفيذ الاستعلام سوف نجد انالاسماء المكرر حذفت من الجدول الجديد
  7. نقوم بحذف البيانات من الجدول القديم ونستبدلها بالبيانات الغير مكررة ويمكن تنفيذ ذلك يدويا او باستعلام

دائما وابدا نحتفظ بنسخة احتياطية قبل تنفيذ ماسبق

 

رتبت لك الخطوات للتسهيل مع الشكر لاخي احمد على جهوده

  • Like 3
قام بنشر
1 ساعه مضت, ابوآمنة said:

جرب  المرفق


DoCmd.RunSQL "DELETE * FROM table1 WHERE key NOT IN ( SELECT min(key) FROM  table1 GROUP BY FirstName, Address2)"

 

حذف السجلات المكررة.mdb 364 kB · 1 تنزيلات

جزاك الله خيرا اخى صالح

تقبلوا تحياتى وتمنياتى لكم بالتوفيق

قام بنشر (معدل)
الان, أحمد الفلاحجى said:

الشكر لله ثم لاخواننا واساتذتنا

وبلاش كلمه سيدى خليها اخى افضل فكلنا اخوان فالله

ممكن تحوله ل 2003 وتشتغل عليه ثم تستورد الجدول بعد ما تخلص شغلك

وان شاء الله احد اساتذتنا يوفرلك حلول اخرى

تقبل تحياتى وتمنياتى لك بالتوفيق

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

 

 

كل الشكر والثناء لكم اخوتي  على جهودكم . 

اخوتي كل ماقدمتم من حلول جربتها . 

المشكلة . نعم كل الحلول تحذف الاسم المكرر في حقل الاسم ولكنها بنفس الوقت تحذف باقي البيانات للاسم في حقول اخرى 

والمطلوب هو حذف الاسم المكرر في حقل الاسم مع ابقاء البيانات في الحقول الاخرى والفائده من بقاء تلك البيانات هي حفظ الامكنه التي عمل فيها الموظف بمعنى حذف تكرار الاسم وابقاء الامكنه التي عمل بها الاسم . مع العلم ان قاعدة البيانات تحوي على 2 ميلون اسم مع المكرر. دمتم بالف بالف خير 

كما هو في جدول2

 

 

الان, ابوآمنة said:

جرب  المرفق


DoCmd.RunSQL "DELETE * FROM table1 WHERE key NOT IN ( SELECT min(key) FROM  table1 GROUP BY FirstName, Address2)"

 

حذف السجلات المكررة.mdb 364 kB · 6 تنزيلات

كل الشكر والثناء لكم اخوتي  على جهودكم . 

اخوتي كل ماقدمتم من حلول جربتها . 

المشكلة . نعم كل الحلول تحذف الاسم المكرر في حقل الاسم ولكنها بنفس الوقت تحذف باقي البيانات للاسم في حقول اخرى 

والمطلوب هو حذف الاسم المكرر في حقل الاسم مع ابقاء البيانات في الحقول الاخرى والفائده من بقاء تلك البيانات هي حفظ الامكنه التي عمل فيها الموظف بمعنى حذف تكرار الاسم وابقاء الامكنه التي عمل بها الاسم . مع العلم ان قاعدة البيانات تحوي على 2 ميلون اسم مع المكرر. دمتم بالف بالف خير

الان, kha9009lid said:

الحل الاسهل

  1. نقوم بنسخ الجدول الموجود به السجلات المكررة
  2. نقوم بلصقة في نفس القاعدة ومن الاختيارات التي سوف تظهر لنا نختار البنية فقط
  3. نقوم بالدخول على خصائص الجدول الجديد في خانة الاسم في حالتناونجعلة مفتاح اساس لايقبل التكرار
  4. نقوم بعمل استعلام الحاق لكافة البيانات
  5. نقوم بتشغيل الاستعلام ونتجاهل ايرسالة خطأ
  6. بعد انتهاء تنفيذ الاستعلام سوف نجد انالاسماء المكرر حذفت من الجدول الجديد
  7. نقوم بحذف البيانات من الجدول القديم ونستبدلها بالبيانات الغير مكررة ويمكن تنفيذ ذلك يدويا او باستعلام

دائما وابدا نحتفظ بنسخة احتياطية قبل تنفيذ ماسبق

 

رتبت لك الخطوات للتسهيل مع الشكر لاخي احمد على جهوده

كل الشكر والثناء لكم اخوتي  على جهودكم . 

اخوتي كل ماقدمتم من حلول جربتها . 

المشكلة . نعم كل الحلول تحذف الاسم المكرر في حقل الاسم ولكنها بنفس الوقت تحذف باقي البيانات للاسم في حقول اخرى 

والمطلوب هو حذف الاسم المكرر في حقل الاسم مع ابقاء البيانات في الحقول الاخرى والفائده من بقاء تلك البيانات هي حفظ الامكنه التي عمل فيها الموظف بمعنى حذف تكرار الاسم وابقاء الامكنه التي عمل بها الاسم . مع العلم ان قاعدة البيانات تحوي على 2 ميلون اسم مع المكرر. دمتم بالف بالف خير

المطلوب.accdb

تم تعديل بواسطه مازن الحسيني
قام بنشر (معدل)

من الواضح ان قاعدة البيانات لديك لم يتم اعدادها بشكل صحيح

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

امر اخر خطأ ان يكون اسم الموظف وجهة العمل في نفس الجدول جدول للموظفين جدول للوظائف جدول لجهات العمل الخ وتربط الجداول بعلاقات حينها لو تغيرت جهة العمل 1000 مرة لن يحصل تكرار

اعتقد ان الا جراء الصحيح ان تبدأ في انشاء قاعدة بيانات جديدة تبنى بشكل صحيح

تم تعديل بواسطه kha9009lid
  • Like 3
قام بنشر

اخى مازن

بالنسبه للمثال الذي ارفقته لك نعم يفعل ذلك جربته الان بعدما اشرت الى ذلك

منذ ساعه, kha9009lid said:

من الواضح ان قاعدة البيانات لديك لم يتم اعدادها بشكل صحيح

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

امر اخر خطأ ان يكون اسم الموظف وجهة العمل في نفس الجدول جدول للموظفين جدول للوظائف جدول لجهات العمل الخ وتربط الجداول بعلاقات حينها لو تغيرت جهة العمل 1000 مرة لن يحصل تكرار

اعتقد ان الا جراء الصحيح ان تبدأ في انشاء قاعدة بيانات جديدة تبنى بشكل صحيح

اتفق مع اخى واستاذى خالد وكذلك اخى kanory

وبالرغم من ذلك فالحل كان امامك ايضا فى مثال اخى صالح

وذلك لان المثال الذى ارفقته ينبغى مراعه شرط آخر  غير تكرار الاسم وهو الدائره

وفى مثالك 1 فقط فقط الذى ينطبق عليه الوصف التكرار محمد يوسف - البلديه

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

جرب واخبرنا بالنتيجه قم باضافه الاسم مره اخرى كما هو وجرب تشغيل استعلام الحذف

تقبل تحياتى وتمنياتى لك وللجميع بالتوفيق

 

تجربه اخرى.accdb

قام بنشر
الان, kanory said:

ما ذكرة أخي @kha9009lid صحيح لكن جرب هذا المرفق لربما يخرجك من مأزق 2 مليون اسم مكرر 

 

مثال (5).accdb 376 kB · 5 تنزيلات

السلام عليكم اخي المحترم

بارك الله بجهودكم ودمت سالما 

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

لايسعني الا شكرك والثناء عليك وان كان لديك حل اخر اكون شاكر لك وللجهود التي بذلتها 

دمت بخير  وسعادة.

الان, أحمد الفلاحجى said:

اخى مازن

بالنسبه للمثال الذي ارفقته لك نعم يفعل ذلك جربته الان بعدما اشرت الى ذلك

اتفق مع اخى واستاذى خالد وكذلك اخى kanory

وبالرغم من ذلك فالحل كان امامك ايضا فى مثال اخى صالح

وذلك لان المثال الذى ارفقته ينبغى مراعه شرط آخر  غير تكرار الاسم وهو الدائره

وفى مثالك 1 فقط فقط الذى ينطبق عليه الوصف التكرار محمد يوسف - البلديه

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

جرب واخبرنا بالنتيجه قم باضافه الاسم مره اخرى كما هو وجرب تشغيل استعلام الحذف

تقبل تحياتى وتمنياتى لك وللجميع بالتوفيق

 

تجربه اخرى.accdb 508 kB · 4 تنزيلات

السلام عليكم اخي الكريم

لايسعني الا شكرك والثناء عليك لما بذلته من جهد ولسعة صدرك معي 

اخي الكريم المثال الذي قدمته حضرتك لايعمل فيه الاستعلام ويظهر لي ىكما في الصوره المرفقة 

دمتم بخير وسعادة

Doc1.docx

قام بنشر

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

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

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

 

قام بنشر

جرب

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

ويعمل بشكل جيد انظر لاستعلام التكرار ثم نفذ استعلام الحذف

ووافنا بالنتيجه

مثال(3).accdb

قام بنشر
الان, أحمد الفلاحجى said:

جرب

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

ويعمل بشكل جيد انظر لاستعلام التكرار ثم نفذ استعلام الحذف

ووافنا بالنتيجه

مثال(3).accdb 452 kB · 1 تنزيلات

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

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

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

دمت بالف خير وسعادة

 

مثال(3).accdb

قام بنشر

اخى الفاضل

5 ساعات مضت, أحمد الفلاحجى said:

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

ويعمل بشكل جيد انظر لاستعلام التكرار ثم نفذ استعلام الحذف

حقل الترقيم ID مهم لتتم عمليه الحذف بنجاح

فى مثالك الاخير اللذى قمت بارفاقه انت حذفت حقل الترقيم التلقائى انت سوف تضيفه بنفس الاسم وان غيرته غيره فالاستعلام كذلك

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

جرب اضف الاسم مره اخرى محمد يوسف - البلديه

DELETE t1.الاسم, *
FROM t1
WHERE تاريخ Not In (SELECT min(تاريخ) FROM  t1 GROUP BY الاسم, الدائرة);

جرب ووافنا بالنتيجه

بالتوفيق اخى

مثال(3)(1).accdb

قام بنشر
الان, أحمد الفلاحجى said:

اخى الفاضل

حقل الترقيم ID مهم لتتم عمليه الحذف بنجاح

فى مثالك الاخير اللذى قمت بارفاقه انت حذفت حقل الترقيم التلقائى انت سوف تضيفه بنفس الاسم وان غيرته غيره فالاستعلام كذلك

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

جرب اضف الاسم مره اخرى محمد يوسف - البلديه


DELETE t1.الاسم, *
FROM t1
WHERE تاريخ Not In (SELECT min(تاريخ) FROM  t1 GROUP BY الاسم, الدائرة);

جرب ووافنا بالنتيجه

بالتوفيق اخى

مثال(3)(1).accdb 456 kB · 1 تنزيلات

السلام عليكم اخي اسف جدا لم يعمل 

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

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

مثال (5).accdb

قام بنشر
17 ساعات مضت, مازن الحسيني said:

السلام عليكم اخي اسف جدا لم يعمل 

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

 

مثال (5) (1).accdb

  • Like 1
  • Thanks 1

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