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

ضغط قاعدة البيانات تلقائياً


Nofalnss

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

بعد تعامل أكثر من 10 سنوات مع الأكسس وجدت وبالصدفة خيار لم أجده من قبل أو أنه لم يكن موجوداً لا أدري

ولكنه جميل جداً

وبعيدا عن متاهة الأكواد وتعقيداتها والكثير من المواضيع التي تناولت هذه الفكرة

هذا هو الخيار واقفاً أمامنا ليوفر علينا الكثير من الوقت والجهد

وبلا طول كلام الخيار هو:

Tools > Options > General > Compact on Close

أدوات > خيارات > عام > ضغط عند الخروج

ربما جميع مستخدمي الأكسس يعرفونه إلا أنا, ومع ذلك أحببت إيراده هنا عسى ولعل أحداً آخر لم يلحظه من قبل مثلي

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

أخى نوفل

هذا هو الفرق بين المتألقين أمثالك والمتواضعين أمثالى.

فأنا أتعامل ما الأكس منذ أن كان أكسس 2 (ما قبل أكسس 97) .. ومع ذلك لم ألاحظ هذه الميزة البسيطة والرائعة فى نفس الوقت.

وأعرف أن كثلى كثيرون.

تحياتى

محمد ندا

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

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

انقل لكم ما قالته الاخت زهرة فى هذا الموضوع

كما تعلم ان قاعدة البيانات لا تعتمد بحد ذاتها على نفسها او انها كائن مستقل عن بقية قشرة برنامج الأوفيس فنرى انها تعتمد على عدة كائنات يطول بنا المقام لسردها او شرحها بالتفصيل ولكني سأعطيك رؤوس الأقلام بصفتك لديك خبرة كافية في هذا المجال فمن العوامل المؤثرة او بالأحرى الكائنات المؤثره على نجاح أو فشل اي قاعدة البيانات التالي :

1. الفهارس الخاصة بالقاعدة

هنا لا نقصد تحديدا الفهارس التي نقوم بعملها في الجداول ولكن الذي نقصده هو الـ Index الخاص بالقاعدة نفسها ويمكن ان نتعرف عليه ونراه جيدا في الجداول المخفيه الخاصة بنظام القاعدة لأن اي قاعدة بيانات تقوم بعملية فهرسة للكائنات الخاصة بها بواسطة ارقام ورموز كوديه لا تستطيع تغييرها وإن تم العبث بها ففي هذه الحالة سيتم تلف قاعدة البيانات وسينتج لديك ما يسمى خطأ الفهرس وتكون الرسالة بهذا الشكل " AOIndex is not an index in this table " حيث لا يمكن اعادة قاعدة البيانات الى سابق عهدها نتيجة لفقد احد الفهارس الخاصة بالقاعدة ويقصد بالجدول في الرسالة اي الجدول المخفي MSysACEs وأحد الأسباب الرئيسية لهذا الخطأ هو كثرة الضغط والإصلاح لقاعدة البيانات او انه تم اغلاق قاعدة البيانات قسرا وهي في حالة معالجة بيانات كأن يكون الكهرباء انقطع عن الكمبيوتر فجأة او ان الكمبيوتر علق ( هنق ) معاك واستخدمت مفتاح اعادة التشغيل ففي هذه الحالة كانت قاعدة البيانات في حالة معالجة وانت قمت لأي سبب بإيقاف هذه العملية قبل انتهاء المعالجة مما ادى الى فقد احد الفهارس الهامة .

ولحل هذه المشكلة اذا حدثت اما ان تنشأ قاعدة بيانات جديده وتستورد جميع كائنات القاعدة السابقة او تحاول الإستعانه بأحد برامج الإصلاح ونادرا ما يتم اصلاحها .

2. محرك قاعدة البيانات Microsoft Jet Database Engine

يوجد محركين لقاعدة البيانات وهو المحرك القديم Jet 3.5 ( يأتي مع نسخة اكسيس 97 ) والمحرك الجديد Jet 4.0 ( يأتي مع نسخة 2000 وما فوق ) فعند تلف احد هذين المحركين حسب نوع قاعدة البيانات المستخدمة فستظهر لك رسالة خطأ "Unrecognized database format" وتعني انه لم يتم التعرف على هيئة القاعدة وسيخبرك بأنه لا يستطيع فتح قاعدة البيانات "The Microsoft Jet Database Engine cannot open the file " ولحل هذه المشكلة هو تحديث محرك قاعدة البيانات بأخر جديد او عمل فورمات من جديد لكامل الويندوز حيث لا يمكن ازالته بسهوله ، ومن ثم تثبيت برنامج الأكسيس من جديد . اذا لم تقم بحل هذه المشكلة فورا فسوف تحصل على هذه الأخطاء تباعا عند تشغيل اي قاعدة بيانات :

1. Microsoft jet database engine could not find object MSysDB .

2.The Microsoft Jet database engine could not find the object MSysCompactError .

3. The Microsoft Jet database engine could not find the object 'databases'.

4. The Microsoft Jet database engine could not find the object 'filename'.

3. عطب فيجوال بيسك للتطبيقات VBA.

عندما ترى مثل هذه الرسالة "Visual Basic for Applications Project in This Database Is Corrupt" فهذا يعني انك لا تستطيع الوصول الى الأكواد الداخلية لقاعدة البيانات بسبب هذا العطل ويمكن مشاهدة اثار هذا العطل عندما تدخل الى ريجستري نظام الويندوز ثم تبحث عن الـ VBA وسترى مقدار الضرر الحاصل به طبعا اذا لم يكن لديك خبرة في التعامل مع ريجستري النظام فمن الأولى تركه حتى لا تقوم بإحداث تلف اكبر في محرر الريجستري وبهذا تفقد كامل النظام ولذا فإن الحل الوحيد هو ازالة برنامج الأكسيس كاملا واستبداله بنسخة جديده مع ترك جميع قواعد البيانات كما هي وعدم العبث بها حتى يتم اصلاح مشكلة الفيجول بيسك للتطبيقات وبعدها ستجد ان القاعدة المعطوبه في هذه النقطة قد عادت للعمل .

هناك نقطة هامة وخطيره في نفس الوقت اذا كانت قاعدة البيانات من نوع MDE وحدث لها مثل هذا العطب في مشغل الفيجول بيسك للتطبيقات فإن قاعدة البيانات MDE سوف تتحول مباشرة الى MDB ولكن مع وجود اخطاء ستظهر اثناء فتح اي كائن سواء نماذج او أي كائن من كائنات القاعدة يعتمد اساسا على الكود البرمجي الخاص بالـ VBA ولكن عندما تريد مشاهدة الأكواد الخاصة بالبرنامج لن ترى شيئا لأنه سبق وان تحولت جميع الأكواد في القاعدة عند تحويلها الى MDE الى بيانات ثنائية اما التصاميم فيمكن عرضها ورب ضارة نافعة .

4. خطأ في الكتابة الى الذاكرة

في حالة حدوث خطأ في قاعدة البيانات وتكرار الخطأ اكثر من مره ومع هذا نحاول فتحها لأكثر من مره فإنه سيأتي وقت عليها وتظهر لك هذه الرسالة "التعليمة في 0x11111111 ومرجع الذاكرة في 0x11111111. لا يمكن إعادة كتابة الذاكرة " . "The instruction at "0x11111111" referenced memory at "0x22222222". The memory could not be "written" ففي هذه الحالة يجب علينا فورا اغلاق قاعدة البيانات بطريقة سليمة ثم اغلاق برنامج الأكسيس ثم اعادة تشغيل الكمبيوتر من جديد حتى يتم افراغ الذاكره من جميع البيانات ومن ثم عمل تنظيف للبرامج العالقة في الذاكره .

5. تحول حجم بعض قواعد البايانات الى ( صفر كيلوبايت )

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

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

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

مع تمنياتي لكم بالتوفيق .

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

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

هذا صحيح وذلك عن اكثر من تجربه

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

إخوانى الكرام

كل هذا كلام صحيح وطيب ...

ولكن ما الحل فى التعاظم المستمر لحجم قاعدة البيانات مع التعديلات فى التصميم وإضافة وحذف كائنات طوال الوقت ؟؟؟

لأن هذا بالنسبة لى هو السبب الأول وربما الوحيد لإجراء عمليات الضغط والإصلاح بشكل روتينى.

تحياتى

محمد ندا

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

شكراً لك أخي محمد ندا على مرورك وطيب كلماتك

والشكر للأخ m_orouk لنقله موضوع المتألقة زهرة التي دائم لديها ما هو جديد عنا

ومع ذلك أحب أن أقول:

استعمالي لقاعدة البيانات التي أعمل عليها حالياً يومياً ودائمة الإغلاق والفتح حوالي 50 مرة في اليوم وكادت رسالة

"حدث خطأ ....................... <> الإغلاق والإصلاح" المشهورة عالمياً أن تذهب بي إلى الجنون

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

ورأيي الشخصي بغض النظر عن التحليلات العلمية لذلك أرى أن شركة مايكروسوفت لن تضع خياراً من شأنه تدمير قاعدة البيانات عند التكرار حتى لو كان احتمال ذلك 1%

وبرأيي أن الأخطاء الكثيرة التي تحدث في أكسس يكمن ورائها معالج VBA

فقد لاحظت أنه كلما زادت الأكواد في قاعدة البيانات كلما حدث أخطاء أكثر وبتواتر أكبر

وللعلم فإني أستطيع تحليل ذلك علميا وإثبات بطئ معالج VBA وطول زمن الاستجابة والتحديث

ولكني ومنذ فترة اقتنعت أن التجارب العملية هي التي يجب الأخذ بها

وهي البرهان الأكيد على صحة مقولة أو عدمها

مع تحياتي للجميع واحترامي لكافة آراء الأخوة

أخوكم نوفل

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

أخى نوفل

طبعاً لك الحرية فى الرأى كما هى للجميع ...

ولكن

إذا كان الأمر يتعلق بالخبرة والعلم فعلينا أن نأخذ (وأقصد نفسى شخصياً) علينا أن نأخذ برأى الأساتذة وهم كثيرون.

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

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

ولذلك نجد أن كل المبرمجين مولعين بأساليب الحماية والإصلاح والنسخ الاحتياطى ومنع العبث.

تحياتى

محمد ندا

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

أخي محمد

لم ولن أقلل من شأن زهرة وخبرتها وحتى لو حاولت لن أستطيع ولها كل الاحترام والتقدير

وللمصداقية فمعلومتها جديدة عليّ كليا وطبعا أنا لم أقصد تدمير قواعد بيانات جميع أخواننا في المنتدى...... :wavetowel:

ولكن لو أكلت من تفاحة ووجدتها لذيذة وأكل منها جميع أعضاء المنتدى وأخبروك أنها سيئة الطعم (طبعا التفاحة لن تكفي الجميع............. :wink2: ) فهل ستقتنع حتى لو كان بينهم أطباء؟!!

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

أخوكم

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

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

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



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

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

Important Information