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

نسخة احتياطية آلية لقاعدة البيانات الحالية أو لأخرى منفصلة


ابوخليل

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

حفظ قاعدة البيانات بأخذ نسخة ووضعها على D:\ عند إغلاق قاعدة البيانات ( أي في كل مرة تغلق فيها قاعدة البيانات ) وتسميتها بالعام مثلا 1429/1430 يتم تحديث بيانات النسخة الاحتياطية عند كل إغلاق ، وفي نهاية السنة وبداية سنة جديدة يتم نسخ قاعدة جديدة باسم العام الجديد ليبقى لكل عام قاعدة تخصه .
تقبلوا تحيات أخيكم ... ابو خليل..

في المرفقات المثال قم بعمل التالي :
1 - اجلب الوحدة النمطية SaveFolder الموجودة في المثال إلى قاعدة بياناتك

     فقد تحتاج اليها مستقبلا عندما تود تحديد مكان النسخة
2- يوجد في النموذج مربعي نص مخفية قم بنسخهما إلى النموذج الرئيسي في قاعدة بياناتك

3 في حد ث عند الإغلاق للنوذج الرئيسي الصق هذا الكود :
 

كود
On Error Resume Next
Dim OldFile As String, DBwithEXT, DBwithoutEXT, NewFile As String, CopyMyDB
OldFile = [DBOld]
DBwithEXT = Dir(OldFile)
DBwithoutEXT = Left(DBwithEXT, Len(DBwithEXT) - 4)
NewFile = [DBNew] & "\" & DBwithoutEXT & "-" & (Format(Date, "yyyy") - 1) & "-" & Format(Date, "yyyy") & Right(DBwithEXT, 4)
CopyMyDB = "cmd.exe /C copy " & """" & OldFile & """" & " " & """" & NewFile & """"
Shell CopyMyDB, 0
Exit Sub

 

وفي حدث عند التحميل الصق هذا الكود :
 

كود
'[DBOld] = CurrentDb.Name  اختيار قاعدة البيانات الحالية
[DBOld] = "c:\z1.mdb"  'اختيار مسار القاعدة البديلة
[DBNew] = "D:\"  'اختيار مكان حفظ النسخة


__________________.rar

 

post-49409-1247777895.jpg

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

  • 4 years later...

الله ينور دربك يابوخليل

وافضالك علي سابقة وياريت تضيف هذي لجمايلك

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

بمعنى النسخ الاحتياطي لقواعد بيانات غير القاعدة المفتوحة والتي يتم الحدث من داخلها

ارجو ان اكون وضحت المطلوب...

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

  • 4 months later...

هذا ممكن وهو موجود في التوضيح اعلاه

 

وهذا مثال آخر محدث  استبدلنا فيه حقول المسارات بمتغيرات نصية

ويحفظ النسخة داخل مجلد البرنامج

Public Function DBOld()
 DBOld = CurrentDb.Name ' قاعدة البيانات الحالية
'DBOld = Application.CurrentProject.Path & "\dbData.db"' قاعد اخرى موجودة بالمسار نفسه
End Function
طبعا ستختار واحدة فقط والاخرى يلزم تعطيلها او حذفها
Public Function DBNew()
DBNew = Application.CurrentProject.Path & "\" 'الموقع الجديد للنسخة داخل مجلد البرنامج
End Function
Public Function BKUp()
On Error Resume Next
Dim OldFile As String, DBwithEXT, DBwithoutEXT, NewFile As String, CopyMyDB
OldFile = DBOld
DBwithEXT = Dir(OldFile)
DBwithoutEXT = Left(DBwithEXT, Len(DBwithEXT) - 4)
Application.SetOption "Use Hijri Calendar", False
NewFile = DBNew & "\" & Format(Now, "yyyymm") & ".txt"
CopyMyDB = "cmd.exe /C copy " & """" & OldFile & """" & " " & """" & NewFile & """"
Shell CopyMyDB, 0
Exit Function
End Function
Private Sub zerExit_Click()
BKUp
DoCmd.Close
End Sub

نسخة احتياطية .rar

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

وفق الله وفتح لك ابواب العلم ، وتنفع الاسلام والمسلمين ، ويكون لك درجات واجر عند الله تعالي,

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

ولك جزيل الشكر

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

  • 1 year later...

شكرا  اخوي صالح على هذا الاطراء

ولا كوكب ولا شي  يمكن   الاسبقية  او ما تسمى الخبرة

فكنت احفظ الاعمال  ثم انقلها اليكم  وربما ينطبق علي المثل : رب حامل فقه الى من هو افقه منه

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

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

شكرا  اخوي صالح على هذا الاطراء

ولا كوكب ولا شي  يمكن   الاسبقية  او ما تسمى الخبرة

فكنت احفظ الاعمال  ثم انقلها اليكم  وربما ينطبق علي المثل : رب حامل فقه الى من هو افقه منه

متعك الله بالصحة والعافية يا ابا خليل

وغفر الله جميع ذنوبك في هذا الشهر الطيب المبارك

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

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

 

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

يبدو انك جمعت بين الطريقتين من غير قصد

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

ولكن في  مشاركتي الثانية  رقم 7 (تعديل وتحديث )  يتم اخذ المسارات من وحدتين نمطيتين

ولو تلا حظ ان المسميات واحدة

فأنت جمعت بين الطريقتين : أنشأت مربعي نص  داخل النموذج  + استخدمت الوحدات النمطية

وبالمسمى نفسه فحصل التعارض

الحل :  احذف مربعي النص 

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

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

أريد عمل زر عند الضغط عليه ينشئ نسخة أحتياطية لقواعد البيانات (الجداول فقط) في مجلد البرنامج و يقوم بتفريغ الجداول المصدر من أجل تقليل حجم البرنامج.

و عمل زر آخر يقوم بإستدعاء النسخة الإحتياطية للبرنامج.

أرجوا أن ألا أكون قد أثقلت عليك يا أخي الكريم.

 

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

ان شاء الله كل ما تفضلت به يمكن عمله

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

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

هذه الطريقة لها فوائد عديدة جمة 

 

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

شكرا أستاذ أبوخليل سوف أقوم بتقسيم البرنامج.

و أنا في إنتظار إجابتك على الأسئلة السابقة.

تقبل الله منا و منكم الصيام و القيام.

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

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

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



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

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

Important Information