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

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

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

01.png.527721e335791220626cc940aee3d3ef.png

أخواني وأساتذتي ومعلمينا ( دون استثناء )

 

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

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

 

صورة من واجهة الأداة :-

image.png.7d70f41e95d6b827ccd182939a8dd8fc.png

 

الواضح من الواجهة ، أن الأداة ستمكنك من :-

00.png.19e93a2c3d40195ef4811a3fbad63221.pngأولاً :- إنشاء نسخة احتياطية ضمن الإعدادات التي تحددها في زر "خيارات الحفظ" . عند النقر عليه ستجد هذه الإعدادات في الصورة ..

image.png.f427b088b2eee1986081500a8a8814a6.png

  • مسار الحفظ للنسخ الإحتياطية سيكون فقط في المجلد Backup في المجلد الرئيسي Data الموجود بجانب قاعدة البيانات .
  • نوع الملحق سيكون MDB و DAT . وهما النوعين الأكثر شمولاً واستخداماً في جميع الأفكار التي لها نفس الوظيفة .
  • عدد النسخ التي ستحتفظ بها هو فقط ما تحدده . وسيتم حذف النسخ الأقدم تباعاً .
  • بإمكانك تحديد كلمة مرور لحماية قاعدة بيانات الجداول . ولا ننصح بتغييرها لكل نسخة كي لا تتوه وتفقد بياناتك .
  • إمكانية النسخ التلقائي حسب عدد الأيام أو الساعات الي تريد أخذ نسخة تلقائية فيه .

 

00.png.19e93a2c3d40195ef4811a3fbad63221.pngثانياً :- إنشاء نسخة احتياطية لجداول تقوم بتحديدها - ولك حرية اختيار الجداول في كل نسخة - حيث أنها لن تؤثر على سير عملية الإسترجاع لاحقاً . انظر الصورة للتوضيح :-

image.png.0d9d696f2209b39df9c57888d1b0d3c4.png

على اليمين تظهر أسماء الجداول في القاعدة الحالية ( مرتبطة أو محلية ) . ولك الحرية باختيار جداول محددة بالنقر المزدوج على الجدول ، أو تحديد الكل / إلغاء الكل . حسب حاجتك .

 

00.png.19e93a2c3d40195ef4811a3fbad63221.pngثالثاً :- الأزرار كما هي في صورة واجهة الأداة ، تشير إلى :-

  1. زر "حفظ نسخة إحتياطية جديدة" :- لإنشاء نسخة إحتياطية حسب الإعدادات اتي تم تحديدها .
  2. زر "تحديث بيانات النُسخ الإحتياطية" :- لإعادة ترتيب السجلات في الجدول حسب النسخ الموجودة في مجلد انسخ الإحتياطي .
  3. زرا "نُسخ محددة" و "كافة النُسخ" :- لحذف محدد أو لجميع النسخ الإحتياطية .
  4. زر "إنشاء" في قسم "نسخة خاصة:- مخصص لإنشاء نسخة خاصة في مكان يقوم المستخدم بتحديده وليس ضمن المسار المحدد في الإعدادات ، وبإسم متغير كيفما يريد .
  5. زر "استرجاع" في قسم "نسخة خاصة:- مخصص لإسترجاع نسخة يقوم المستخدم بتحديدها بشكل يدوي من خلال مربع حوار اختيار ملف .
  6. زر "استرجاع" في قسم "استرجاع النسخة رقم:- مخصص لاختيار نسخة محددة برقمها . حيث تظهر النسخ التي تم أخذها إحتياطياً ، في أعلى جزء النموذج والتنقل بينها من خلال الزرين < > .

 

 

00.png.19e93a2c3d40195ef4811a3fbad63221.pngرابعاً :- في هذا الإصدار ( V1.0 ) من الأداة على عدم الإعتماد على أي مكتبات خارجية أو من مكتبات أكسيس . حيث تمت التجربة على إصدارات اكسيس ( 2010 فما فوق ) .

 

05.png.f64d8638f341dcfceb79002c7b34330e.png

Backup 2025 - V1.0.accdb.zip

 

 

05.png.8fe3b502e8827cbc9c5d0d0a8c4e8770.png:-

     06.png.c7f5646d99be5018df13d4454c7fc7b6.png دائماً يسعدني إبدائكم الرأي والملاحظات حول الأخطاء والمشاكل التي يمكن مواجهتها في أي مشروع يتم تأسيسه في آكسيس أو غيره من لغات البرمجة .

 

 

04.png.6f21c203916a426bee557b50aef5304b.png

   06.png.c7f5646d99be5018df13d4454c7fc7b6.pngأولاً تأكد من وجود جدولي الأداة ( USysMyCopies و USysOptCopies ) عند نسخها الى مشروعك . مع العلم أنها مخفية كجداول نظام ، ويمكنك إظهارها كما في الصورة التالية :-

image.png.8c40e25c3654d2c39f3a1cdb634626b2.png

   06.png.c7f5646d99be5018df13d4454c7fc7b6.pngثانياً ، قم بالدخول الى خيارات الحفظ ، والنقر على زر "انقر لضبط مسار مجلد الحفظ بشكل آلي" لضبط وتحديد مسار مجلد الحفظ الرئيسي . فقط لأول مرة .

تم تعديل بواسطه Foksh
إضافة توضيح لطريقة العمل + صورة توضيحية
  • Like 1
  • Thanks 2
قام بنشر
24 دقائق مضت, 2saad said:

عند نقل النماذج والوحدة النمطية الي برنامجي وتشغيل نموذج BringData يعطيني رسالة خطأ

 

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

هذا لأنك لم تنقل جدولي النظام الخاصين بالأداة :yes: .

USysMyCopies و USysOptCopies

قام بنشر
21 دقائق مضت, 2saad said:

أخي الفاضل لم تظهر عندي الجداول

أخي الفاضل ، الجداول مخفية ..

انظر الصورة لإظهارها

image.png.8c40e25c3654d2c39f3a1cdb634626b2.png

 

تم ذكر التوضيح في المشاركة الأصلية   Like.png.ca4dbd3b7b450d2b1a051a679142599e.png

  • Like 1
قام بنشر
20 دقائق مضت, ابو جودي said:

ما انت لو وضعت كود انشاء الجداول مكنش حصل كده :yes:

مهو انا ما وضعتهوش وقاصد ده .. لأنه لسه في تحديثات جديدة  :biggrin:

وقلت نشوقكم حبتين :wink2: 

  • Haha 1
قام بنشر
19 ساعات مضت, Foksh said:

 

05.png.8fe3b502e8827cbc9c5d0d0a8c4e8770.png:-

     06.png.c7f5646d99be5018df13d4454c7fc7b6.png دائماً يسعدني إبدائكم الرأي والملاحظات حول الأخطاء والمشاكل التي يمكن مواجهتها في أي مشروع يتم تأسيسه في آكسيس أو غيره من لغات البرمجة .

 

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

اذا صحيح 

وجهة نظري ان هذا الاجراء خطير ..

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

قام بنشر
59 دقائق مضت, ابوخليل said:

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

اذا صحيح 

وجهة نظري ان هذا الاجراء خطير ..

نعم صحيح ، يتم التعامل مع الجداول فقط دون الحاجة الى حذفها وإعادة العلاقات اليها ..

ما يتم هو حف السجلات بدءً بجداول الأبناء للعلاقات ، ثم حذف السجلات من الجداول الآباء .

وعند الإستعادة يتم الأمر بالعكس !!

حيث ستكون الإستعادة أولاً لجداول الآباء ثم الأبناء تباعاً ,,

التجربة هي الفيصل في الأمر 😅 .

حيث قمت بالتجربة على اكثر من مشروع لدي وكان الأمر ناجحاً دون حدوث اي مشاكل ولله الحمد 

 

ولإجراءاتكم بالتجربة والإفادة بالنتيجة 😇 

قام بنشر

وجهة نظري ليست لآلية الاجراءات التي تحدث

ولكن للبيانات التي تحتويها الجداول

فحين تريد استرجاع بيانات سابقة ( جدول او جداول )

مؤكد 100% وجود بيانات جديدة في الجداول الحالية .. او بالاصح مختلفة عن الموجود في النسخة المحفوظة

فلما استرجع جدول محفوظ سوف تختفي البيانات ( المختلفة او المغايرة او الجديدة .. سمها ما شئت) 

سوف تختفي نهائيا للأبد

............................................................

رأي شخصي يخصني .. ومتمسك به .. بغض النظر عن من يوافقني او يعارضني :

1- يمنع منعا باتا اخذ نسخة للجداول واسترجاعها اذا هي غير مقسمة .. 

بمعنى يمكن اخذ نسخة من الجداول مثلها مثل التصدير ولكن الاسترجاع يتم يدويا على جزء محدد ويتم بالنسخ واللصق .

2- الاسترجاع البرمجي يتم على قاعدة الجداول كتلة واحدة .. والاسترجاع هو عبارة عن ارتباط .. أي التبديل بين النسخ

 

 

قام بنشر
9 دقائق مضت, ابوخليل said:

وجهة نظري ليست لآلية الاجراءات التي تحدث

ولكن للبيانات التي تحتويها الجداول

فحين تريد استرجاع بيانات سابقة ( جدول او جداول )

مؤكد 100% وجود بيانات جديدة في الجداول الحالية .. او بالاصح مختلفة عن الموجود في النسخة المحفوظة

فلما استرجع جدول محفوظ سوف تختفي البيانات ( المختلفة او المغايرة او الجديدة .. سمها ما شئت) 

سوف تختفي نهائيا للأبد

وجهة نظرك سليمة 100% ، ولا اختلف معك فيها ..

فالنسخة الإحتياطية التي تم استعادتها من الطبيعي انها تحتوي سجلات سابقة ولا يوجد بها السجلات الجديدة !!!!

كحال اي برنامج يقوم على استعادة نسخة احتياطية سابقة ، والهدف الوظيفي هو الإستعادة وليس التحديث !!!!

 

قام بنشر

ولكن الفرق واضح

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

يعني وجود خط رجعة

وهذا يحدث دوما

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

............

بكذا يكون في الأمان

قام بنشر
32 دقائق مضت, ابوخليل said:

يعني وجود خط رجعة

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

ما رأيكم 🤔 ؟؟

وبهذا سيكون له حرية الرجوع إليها متى يشاء !!!

قام بنشر
35 دقائق مضت, Foksh said:

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

ما رأيكم 🤔 ؟؟

 

نعم  .. كذا لا بأس .. حيث يتوفر أمان عن الخطأ غير المقصود

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

خاصة اذا النسخ الاحتياطي يتم دوريا .. سواء يوميا او اسبوعيا

  • Like 1
قام بنشر
12 ساعات مضت, ابوخليل said:

نعم  .. كذا لا بأس .. حيث يتوفر أمان عن الخطأ غير المقصود

 

هو الحل الأبسط من باب الأمان عند التراجع 😅 

12 ساعات مضت, ابوخليل said:

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

 

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

12 ساعات مضت, ابوخليل said:

خاصة اذا النسخ الاحتياطي يتم دوريا .. سواء يوميا او اسبوعيا

النسخ الإحتياطي التلقائي ( حسب ضبط الإعدادات ) متاح التحديد بعدد الساعات أو الأيام !!

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

 

هي إما مرونة أو تضخيم للفكرة 😁 

قام بنشر

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

من ذلك يمكن ايضا اخذ نسخة احتياطية من سجل واحد من احد الجداول

اخي  العزيز  @Foksh لعلك فهمتني .. ليس نقاشي واعتراضي كمسألة برمجية

... نظرتي للمسألة الضبط بصورة عامة وتقوم باللازم على اكمل وجه ... وابسط صورة

2 ساعات مضت, Foksh said:

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

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

وما خط بالاخضر يلزم شرط وهو ضروري الا تكون الجداول محلية

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

  • Like 1
قام بنشر

شكرا لك حبيبنا @Foksh على هذي العطية الرائعة 🙂 

موضوع قديم متجدد وباب الإبداع فيه والتنوع بحر لا ساحل له 😊🖐

وكل فنان وله بصمته فيه .. والأفكار كثيرة لا يمكن حصرها .. لذلك سأكتفي بالتجربة والاستمتاع بهديتك القيمة 😄🌹

 

فقط مما واجهني عند الضغط على زر ضبط مسار الحفظ بشكل آلي : .. المفروض ينعمل المجلد تلقائيا أليس كذلك ؟! :rol:
image.png.d7eeca069685a6f07670f98aa00d2d30.png

لذلك زر الحفظ يظهر رسالة الخطأ التالية :
image.png.cd6174318ff5a88f8717ad4fb7f9f7bd.png

أنشأت نسخة خاصة بالأمتداد Dat .. ولكن عند الاسترجاع :
image.png.5908aa8e3a4ffec548596e615f6cf2d2.png

ملاحظة : النسخ الخاصة لا يتم حفظ بياناتها في الجدول !! وربما التلقائية كذلك (لم أجرب) .. أم هذا مقصود ؟ :biggrin:

 

والباقي راائع كروعتك 😎👌

  • Like 1
قام بنشر

  

19 دقائق مضت, ابوخليل said:

اخي  العزيز  @Foksh لعلك فهمتني .. ليس نقاشي واعتراضي كمسألة برمجية

 

فهمتك معلمي الفاضل ..

 

20 دقائق مضت, ابوخليل said:

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

 

بالطبع ، ويمكن تقييد المستخدم العادي من عدم الدخول أساساً الى لوحة النسخ الإحتياطي ( وهذا لا خلاف عليه ) 

 

22 دقائق مضت, ابوخليل said:

وما خط بالاخضر يلزم شرط وهو ضروري الا تكون الجداول محلية

 

في الأداة جعلتها قادرة على التعامل مع القواعد المنقسمة والغير .. وإذا كان النسخ الإحتياطي الذي نريده ان يتم على القاعدة لجميع الجداول ( عند محاولة استرجاع طبعاً ) محصوراً فقط بالجداول المحلية ، فلا أعلم الهدف ( والسبب أن 99% ممن يقوم بتقسيم قواعد بياناته هو لتجنب تلف وتضخم قواعد البيانات بسرعة ولحمابة البيانات والجداول ) .

 

على العموم سأرى ما يمكن تفعيله وتعديله في النسخة الجديدة ان شاء الله :fff: 

  أهلا مهندسنا الغالي :wub: ,,

14 دقائق مضت, Moosak said:

فقط مما واجهني عند الضغط على زر ضبط مسار الحفظ بشكل آلي : .. المفروض ينعمل المجلد تلقائيا أليس كذلك ؟! :rol:

في الواقع ، من المفترض أن يتم انشاء المجلدات عند فتح الواجهة ، ولكن يبدو أنني لم أعد استدعاء الدالة الى حدث عند الفتح ,:biggrin:,

لذا تم التعديل لاحقاً في النسخة الجديدة ان شاء الله 👍

 

17 دقائق مضت, Moosak said:

أنشأت نسخة خاصة بالأمتداد Dat .. ولكن عند الاسترجاع :

الإسترجاع في الإصدار السابق محصور فقط للـ MDB ، وقد التعديل والتطوير في الإصدار الجديد أيضاً ..

 

لكني هنا في طور استنتاج النقاط التي يمكن إضافتها وتحسينها 😊 

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.

×
×
  • اضف...

Important Information