الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

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

مغلقمُجاب
بدأه SANDANET في 1 يونيو 2014 · 4 رد · 1,195 مشاهدة · في قواعد بيانات Microsoft Access
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

 

أما بعد ..

 

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

Dim FrontObj As AccessObject, FrontDB As Object
Set FrontDB = Application.CurrentData

For Each FrontObj In FrontDB.AllTables
If left(FrontObj.NAME, 4) <> "MSys" And FrontObj.NAME <> "BackDBs" Then
DoCmd.DeleteObject acTable, FrontObj.NAME
End If
Next FrontObj

كيف نجعله يستثني جدول معين من عملية الحذف؟

forms.rar

ما من كاتبٍ إلا سيفنى ... ويبقي الدهر ما كتبت يداه

فلا تكتب بخطك غير شيءٍ ... يسرك في القيامة أن تراه

 

 

مواضيع مفيدة

 

منظومة حضور وغياب موظفين/index.php/topic/290636-%D8%A5%D9%87%D8%AF%D8%A7%D8%A1-%D8%A7%D9%84%D9%89-%D9%85%D9%86%D8%AA%D8%AF%D9%89-%D8%A7%D9%84%D8%A3%D9%83%D8%B3%D8%B3-%D9%85%D9%86%D8%B8%D9%88%D9%85%D8%A9-%D8%AA%D8%B3%D8%AC%D9%8A%D9%84-%D8%AD%D8%B6%D9%88%D8%B1-%D9%88%D8%BA%D9%8A%D8%A7%D8%A8-%D9%85/

#2

اخي الفاضل : اوس

 

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

 

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

 

'Delete All  Attached Tables
Dim db As DAO.Database
Dim tdf As DAO.TableDef
 
DoCmd.SetWarnings False
Set db = CurrentDb()
For Each tdf In db.TableDefs
If (tdf.Attributes And dbAttachedTable) = dbAttachedTable Then
DoCmd.DeleteObject acTable, tdf.Name
End If
Next
 
ستجد الكود في الوحدة النمطية بدلا من كود الحذف السابق

forms.rar

تم تعديل هذه المشاركة بواسطة zahrah في 1 يونيو 2014 في 14:23

#3

أشكرك أستاذتي الكريمة زهرة لكني اريد استثناء جدول من عملية الحذف هذه فهل هذا ممكن؟

ما من كاتبٍ إلا سيفنى ... ويبقي الدهر ما كتبت يداه

فلا تكتب بخطك غير شيءٍ ... يسرك في القيامة أن تراه

 

 

مواضيع مفيدة

 

منظومة حضور وغياب موظفين/index.php/topic/290636-%D8%A5%D9%87%D8%AF%D8%A7%D8%A1-%D8%A7%D9%84%D9%89-%D9%85%D9%86%D8%AA%D8%AF%D9%89-%D8%A7%D9%84%D8%A3%D9%83%D8%B3%D8%B3-%D9%85%D9%86%D8%B8%D9%88%D9%85%D8%A9-%D8%AA%D8%B3%D8%AC%D9%8A%D9%84-%D8%AD%D8%B6%D9%88%D8%B1-%D9%88%D8%BA%D9%8A%D8%A7%D8%A8-%D9%85/

#4 أفضل إجابة

بعد إذن أستاذتنا / زهرة

 

هذا استثناء بالكود الأول للجدول (record) على سبيل المثال ،  يضاف للاستثناءات الموجودة أصلاً

:

Dim FrontObj As AccessObject, FrontDB As ObjectSet FrontDB = Application.CurrentDataFor Each FrontObj In FrontDB.AllTablesIf left(FrontObj.Name, 4) <> "MSys" And FrontObj.Name <> "BackDBs" ThenIf FrontObj.Name <> "record" ThenDoCmd.DeleteObject acTable, FrontObj.NameEnd IfEnd IfNext FrontObj

وهذا استثناء بالكود الثاني :

Dim db As DAO.DatabaseDim tdf As DAO.TableDefDoCmd.SetWarnings FalseSet db = CurrentDb()For Each tdf In db.TableDefsIf (tdf.Attributes And dbAttachedTable) = dbAttachedTable ThenIf tdf.Name <> "record" Then DoCmd.DeleteObject acTable, tdf.NameEnd IfNext
2
#5

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

ما من كاتبٍ إلا سيفنى ... ويبقي الدهر ما كتبت يداه

فلا تكتب بخطك غير شيءٍ ... يسرك في القيامة أن تراه

 

 

مواضيع مفيدة

 

منظومة حضور وغياب موظفين/index.php/topic/290636-%D8%A5%D9%87%D8%AF%D8%A7%D8%A1-%D8%A7%D9%84%D9%89-%D9%85%D9%86%D8%AA%D8%AF%D9%89-%D8%A7%D9%84%D8%A3%D9%83%D8%B3%D8%B3-%D9%85%D9%86%D8%B8%D9%88%D9%85%D8%A9-%D8%AA%D8%B3%D8%AC%D9%8A%D9%84-%D8%AD%D8%B6%D9%88%D8%B1-%D9%88%D8%BA%D9%8A%D8%A7%D8%A8-%D9%85/

هذا الموضوع مغلق.

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…