مرحبا للجميع
هل هناك طريقة لحذف احد جداول البرنامج او كلها برمجيا
بناء علي شرط معين سواء بعد تاريخ معين او بعد عدد مرات تشغيل معينه
مرحبا للجميع
هل هناك طريقة لحذف احد جداول البرنامج او كلها برمجيا
بناء علي شرط معين سواء بعد تاريخ معين او بعد عدد مرات تشغيل معينه
اولا شكرا علي المشاركه
ثانيا يا ريت التوضيح في الاجابه
الكود غير صحيح او غير مكتمل
وشكرا لحضرتك مرة اخري
شكرا اخي..tbazh على المشاركة.. وتعديل بسيط على مشاركتك..
يستخدم كود SQL في اكسس لحذف الجداول على شكل استعلام تماما كما يكتب اي جملة SQL تحديث او غيرها.. ولكن كما تفضلت تستخدم كلمة Drop..
مثال على ما تطلب اخي الكريم..
ولنفرض ان البرنامج مطلوب منه حذف جدول اذا كان خاليا من البيانات كل فترة محددة ..مثلا 6 أشهر..
هذا طبعا يتطلب انشاء متغير او عمل حقل من جدول معين ليخذ تاريخ اخر حذف ويقارنه مع الحذف الحالي.. وهذا مهم جدا
Dt = Dlast("*","[Dels]")
x=Dcount("*","[Table1]")
If x= 0 And DateDiff("m", Now, Dt) = 6
Docmd.RunSQL "Drop Table Table1"
End Ifوهنا,,السطر الاول ياتي باخر تاريخ الحذف
السطر الثاني يعد السجلات لمعرفة اذا كان الجدول فارغا
السطر الثالث يسال عن عدد السجلات "و" الفترة بين اليوم واخر عملية حذف بالاشهر "m"
السطر الرابع يحذف الجدول عند تحقيق الشرط
تحياتي
وَمِنَ النَّاسِ مَن يُعْجِبُكَ قَوْلُهُ فِي الْحَيَاةِ الدُّنْيَا وَيُشْهِدُ الله عَلَى مَا فِي قَلْبِهِ وَهُوَ أَلَدُّ الْخِصَامِ
الله عليك أ/ همام
بارك الله فيك و زادك الله علما نافعا
تمااااااااااااااام
طيب اسمحلي بتكمله السؤال
الحل اللي حضرتك قولته فعلا تمام و اشتغل معايا
لكن ده في حالة اني عاوز احذف جدول واحد
طيب لو عاوز احذف جميع جداول البرنامج او احذف مجموعه من الجداول
هل يلزم اني اكرر اخر سطر بكل اسم جدول
ام هناك طريقة لحذف الجماعي للجداول كلها مره واحده
وجزاك الله كل خير
اقتباسطيب لو عاوز احذف جميع جداول البرنامج او احذف مجموعه من الجداولهل يلزم اني اكرر اخر سطر بكل اسم جدول
ام هناك طريقة لحذف الجماعي للجداول كلها مره واحده
ممكن حذف الجداول كلها دفعة واحدة او حتى على الاقل بشرط محدد من حيث الاسم.. او شروط اخرى لم اجربها مسبقا مثل عدد السجلات لكن اظن هذا ممكن من خلال RecordSet واموامر اخرى تحصل عليها عند التعامل مع DAO
مثال من موقع شركة مايكروسوفت بالبحث..يقوم هذا الكود بحذف جميع الجداول التي اسمها يبدأ ب Import Errors وبامكانك وضع الشرط الذي تريد.. هذا الكود مجرب .,,
Function DeleteImportErrorTables () Dim db As DAO.Database, t As DAO.TableDef, i As Integer Set db = CurrentDB() For i = db.tabledefs.count - 1 To 0 Step -1 Set t = db.tabledefs(i) If t.name Like "Import Errors*" Then db.tabledefs.Delete t.name End If Next i db.Close End Function
حرب اذا اردت الدمج بين الكود السابق وهذا..
تحياتي
تم تعديل هذه المشاركة بواسطة همام ابوعرقوب في 28 يوليو 2009 في 10:47
وَمِنَ النَّاسِ مَن يُعْجِبُكَ قَوْلُهُ فِي الْحَيَاةِ الدُّنْيَا وَيُشْهِدُ الله عَلَى مَا فِي قَلْبِهِ وَهُوَ أَلَدُّ الْخِصَامِ