• 0
sweety78

نسخة إحتياطية كل يوم على مدار الاسبوع

سؤال

السلام عليكم

مطلبي هو (كود) يوضع في عند الاغلاق بحيث:

عند إغلاق قاعدة البيانات يقوم بعمل نسخة احتياطية تحمل اسم قاعدة البيانات + اليوم، على مدار الاسبوع... بحيث لو افترضنا ان اليوم هو الاحد، عند اغلاق قاعدة البيانات يقوم بإنشاء نسخة احتياطية تحمل اسم قاعدة البيانات + اليوم، وان صادف وجود نسخة لنفس اليوم من الاسبوع الماضي يتم استبدالها او النسخ فوقها.

مثال على اسم قاعدة البيانات بعد النسخ... لو افترضنا ان قاعدة البيانات اسمها Test، من المفترض أن يكون اسم ملف النسخة الاحتياطية مثلاُ Test-sat.

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

فإعتقادي ان هذه الطريقة من Backup ستكون مفيدة جداُ للجميع

مع خالص تحيااااتي

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

9 إجابة على هذا السؤال .

  • 0

هذا الكود المطلوب إن شاء الله

جاد به علينا الاستاذ: "ابوالأنس" سابقاً

ونجود به على الجميع الآن، مع اجراء بعض التعديلات المطلوبة

نسخ احتياطي اسبوعي.rar

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

هذا الكود المطلوب إن شاء الله

جاد به علينا الاستاذ: "ابوالأنس" سابقاً

ونجود به على الجميع الآن، مع اجراء بعض التعديلات المطلوبة

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

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

على الرحب والسعة "خالد يحيى الامام"

انت تقصد: كيف ننسخ ملف الجداول؟

الحل بسيط جداً، قم بتعيين مسار واسم ملف الجداول

On Error Resume Next
Dim OldFile As String, DBwithEXT, DBwithoutEXT, NewFile As String, CopyMyDB
OldFile = "D:\data.mdb" 'اسم ومسار الملف الأصلي الذي نرغب في عمل نسخة احتياطية منه
DBwithEXT = Dir(OldFile)
DBwithoutEXT = Left(DBwithEXT, Len(DBwithEXT) - 4)
NewFile = "D:\data" & Format(Date, "dddd") & ".mdb" '& Right(DBwithEXT, 3)'لصق ملف البيانات في المسار المحدد مع امكانية حذف الملف السابق الذي يحمل نفس الاسم إن وجد
CopyMyDB = "cmd.exe /C copy " & """" & OldFile & """" & " " & """" & NewFile & """"
Shell CopyMyDB, 0

ملف البيانات الأصلي ومساره هنا هو: D:\data.mdb

ملف البيانات الاحتياطي ومساره هنا هو: "D:\data" & Format(Date, "dddd") فإذا حصل الحفظ للنسخة الاحتياطية يوم الاثنين فسيكون اسم ملف النسخة الاحتياطية: dataالاثنين.mdb

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

ويمكن أيضا بتشغيل سكربت ( Batch File ) في مجدول المهام بحيث ينسخ جميع مابداخل المجلد و يضعه في قرص آخر مثلا لكل يوم منفردا .

وهذه الطريقة أستخدمها في العمل ليس فقط لقاعدة بيانات أكسس و إنما لقاعدة بيانات MySQL كاملة يوميا خلال ايام الاسبوع الــ 7

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

شكراً لكل من شارك في الحل...

أخي فيصل الحربي

هل من الممكن ان تشرح لنا كيفية عمل Batch file وكيفية تطبيقة؟

في إعتقادي انه سيضيف الكثير لمرتادي وأعضاء المنتدى.

مع جزيل الشكر

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

السلام عليكم

معذرة أخي عبيدالله...

لم يعمل معي المثال الذي وضعته... لقد قمت بالضغط على زر (تكوين) ولكن لم اجد نسخة احتياطية

لقد بحثت في المسار D ولم اجد نسخة احتياطية.

أنا استخدم Access 2007 فهل تؤثر هذه النسخة؟

أو ما المشكلة

أرجو افادتي

تحياااااتي

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

لقد وضعت المثال على فرضية انك تريد عمل نسخة احتياطية لملف قاعدة البيانات المسمى: Data.mdb الموجود على المسار: D:\ وتضعه على نفس المسار مع تغيير اسمه.

الكود يعمل بشكل ممتاز.. قد يكون الخطأ في التطبيع لديك.

إن كانت تريد أن تنسخ الملف الذي تريد فما عليك إلا أن تغير الاسم والمسار الذي في الكود إلى اسم ومسار الملف تبعك.. سواء كان نفس الملف الذي تعمل منه أو ملف آخر..

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

بالتوفيق

تم تعديل بواسطه عبيدالله
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

استاذي عبيدالله...

بالفعل كما اسلفت الكود يعمل بشكل جيد، وقد اخطأت في اسم الملف والمسار وعندما قمت بعمل التغيير اللازم نجحت العملية

شكراً جزيلاً وتقبل تحيااااتي

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

أولا :

ننشئ مجلد على القرص C باسم Backup ثم بداخل هذا المجلد ننشئ 7 مجلدات باسماء الاسبوع

01-Sat
02-Sun
03-Mon
04-Tue
05-Wed
06-Thu
07-Fri

ثانيا :

ننشئ 7 ملفات باتش بواسطة المفكرة ( Notepad )

نضع الاوامر التي نرغب في تنفيذها

مثال لملف باتش يوم السبت :



copy Y:\*.* C:\BackUp\01-SAT\

مثال لملف باتش يوم الأحد :



copy Y:\*.* C:\BackUp\02-Sun\

شرح الاوامر أعلاه

هذا الأمر يقوم بنسخ جميع الملفات الموجوده في القرص Y الى المجلد 01-SAT الموجود تحت المجلد BackUp في القرص C

طبعا بالامكان تحديد ملف بعينه بدلا من *.* التي تفيد جميع الملفات الموجوده بالقرص .

لا ننسى تغيير اللاحقة للملف الناتج من txt إلى bat لكي يصبح ملف باتش .

ثالثا :

نذهب الى مجدول المهام ( Task Schedule )

كما في الصورة التالية :

post-5603-036215200 1318314354_thumb.jpg

ثم نضغط على Add Scheduled task ثم Next

post-5603-054538800 1318314374_thumb.jpg

ثم نضغط على Browse كما بالصورة التالية

post-5603-021340000 1318314395_thumb.jpg

و نختار ملف الباتش الذي قمنا بإنشائه .

ونكرر العملية لكل يوم من ايام الاسبوع

وبهذا سيقوم مجدول المهام من أخذ نسخه كامله من الملفات يوميا حسب الاسم .

كتبت الرد على عجاله فعذرا على اي خطأ

===

1

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

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

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



سجل دخولك الان

  • يستعرض القسم حالياً   0 members

    لا يوجد أعضاء مسجلين يشاهدون هذه الصفحة .