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

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

بدأه Farhad Karim في 1 يوليو 2011 · 8 رد · 1,046 مشاهدة · في قواعد بيانات Microsoft Access
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

بسم الله الرحمن الرحيم

تحية طيبة للجميع

اساتذة فى برنامجى اريد عندما اقوم بالضغط على زر close فى الفورم اريد ان يقوم بعمل نسخة احتياطية للبرنامج مع تحديد مكان لحفظ البرنامج

Sample.rar

#2

Sample.rar

iبالتوفيق للجميع

"قال رب اشرح لي صدري *ويسر لي امري*واحلل عقدة من لساني يفقهوا قولي" سورة طه
اللهم صل على سيدنا محمد
وعلى آل سيدنا محمد

http://rasoulallah.net/index.php/ar

#3

شكرا اخي الكريم علي الحل ولكن اريد حل أخر وهو عند أغلاق النموذج يتم عمل نسخة إحتياطية في مكان محدد تلقائياُ وليكن فولدر يسمي نسخة إحتياطية من البرنامج داخل محرك الأقراص E

769984420.gif
#4

ضع هذا الكود في زر عند الخروج

If MsgBox("هل تريد بالتأكيد عمل نسخة عن قاعدة البيانات هذه", _
    vbInformation + vbOKCancel, _
    "رسالة تنبيه") = vbOK Then


Dim OldFile, DBwithEXT, DBwithoutEXT, NewFile, CopyMyDB

OldFile = CurrentDb.name
DBwithEXT = Dir(OldFile)
DBwithoutEXT = left(DBwithEXT, Len(DBwithEXT) - 4)
' Next line shows the required path for the backup database
NewFile = "E:\نسخة احتياطية\" & "\" & DBwithoutEXT & "    Backup    Date " & Format(Date, "yyyy_mm_dd") & "      Time " & Format(Now(), "Hh Nn AMPM") & right(DBwithEXT, 4)
CopyMyDB = "cmd.exe /C copy " & """" & OldFile & """" & " " & """" & NewFile & """"
Shell CopyMyDB, 0
'ضغط و اصلاح القاعدة عند وصولها الى حجم معين
'********************************************
      'Dim vStatusBar As Variant

         ' If FileLen(CurrentDb.Name) >125 Then   '5 mb
              'Application.SetOption ("Auto Compact"), 1
             ' Application.SetOption "Show Status Bar", True
              'vStatusBar = SysCmd(acSysCmdSetStatus, "The application must be compacted, please do not interfere with the Compacting process!")
         ' Else
             ' Application.SetOption ("Auto Compact"), 0
         ' End If
'***************************************************

MyErr:
If err.Number <> 0 Then
MsgBox err.Number & " - " & err.Description
End If
Call Shell("regedit.exe /s """ & CurrentProject.path & "\Enable.reg""", 0)
MsgBox "تم نسخ قاعدة البيانات بنجاح ..", vbOKOnly, "تم النسخ بنجاح"
End If

أنشيء مجلد " نسخة احتياطية " على محرك اقراص E

تحياتي

1

سيد الاستغفار

{ اللهم أنت ربي لا إله إلا أنت خلقتني وأنا عبدك وأنا على عهدك ووعدك ما استطعت أعوذ بك من شر ما صنعت أبوء لك بنعمتك علي وأبوء لك بذنبي فاغفر لي فإنه لا يغفر الذنوب إلا أنت}

من قالها من النهار موقنا بها فمات من يومه قبل أن يمسي فهو من أهل الجنة ومن قالها من الليل وهو موقن بها فمات قبل أن يصبح فهو من أهل الجنة .رواه البخاري

#5

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

769984420.gif
#6

الافضل انه يحدث النسخة بدون ما يسأل

اقصد من حيث لا يشعر المستخدم

لان المسألة زيادة في البيانات ، وفي هذه الحال لا محذور

#7

تتبع الكود الذي ذكره الاستاذ malik2010 حتى تصل للسطر التالي

NewFile = "E:\نسخة احتياطية\" & "\" & DBwithoutEXT & "    Backup    Date " & Format(Date, "yyyy_mm_dd") & "      Time " & Format(Now(), "Hh Nn AMPM") & right(DBwithEXT, 4)

وغير السطر الى

NewFile = "E:\نسخة احتياطية\backup.mdb

ستجد ان البرنامج بعد ان تتوافق على عملية النسخ يقوم بنسخ احتياطي للبرنامج في مجلد النسخة الاحتياطية وباسم backup

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

وبالتوفيق

1
#8

شكرا اخي الكريم وبارك الله فيك وهذا ما اريده بالضبط

769984420.gif
#9
malik2010 كتب:

ضع هذا الكود في زر عند الخروج

If MsgBox("هل تريد بالتأكيد عمل نسخة عن قاعدة البيانات هذه", _
    vbInformation + vbOKCancel, _
    "رسالة تنبيه") = vbOK Then


Dim OldFile, DBwithEXT, DBwithoutEXT, NewFile, CopyMyDB

OldFile = CurrentDb.name
DBwithEXT = Dir(OldFile)
DBwithoutEXT = left(DBwithEXT, Len(DBwithEXT) - 4)
' Next line shows the required path for the backup database
NewFile = "E:\نسخة احتياطية\" & "\" & DBwithoutEXT & "    Backup    Date " & Format(Date, "yyyy_mm_dd") & "      Time " & Format(Now(), "Hh Nn AMPM") & right(DBwithEXT, 4)
CopyMyDB = "cmd.exe /C copy " & """" & OldFile & """" & " " & """" & NewFile & """"
Shell CopyMyDB, 0
'ضغط و اصلاح القاعدة عند وصولها الى حجم معين
'********************************************
      'Dim vStatusBar As Variant

         ' If FileLen(CurrentDb.Name) >125 Then   '5 mb
              'Application.SetOption ("Auto Compact"), 1
             ' Application.SetOption "Show Status Bar", True
              'vStatusBar = SysCmd(acSysCmdSetStatus, "The application must be compacted, please do not interfere with the Compacting process!")
         ' Else
             ' Application.SetOption ("Auto Compact"), 0
         ' End If
'***************************************************

MyErr:
If err.Number <> 0 Then
MsgBox err.Number & " - " & err.Description
End If
Call Shell("regedit.exe /s """ & CurrentProject.path & "\Enable.reg""", 0)
MsgBox "تم نسخ قاعدة البيانات بنجاح ..", vbOKOnly, "تم النسخ بنجاح"
End If

أنشيء مجلد " نسخة احتياطية " على محرك اقراص E

تحياتي

اخي ممكن تجعل الكود بحيث يعمل على ملفات ال2010 لاني عندما استخدمه بهذه الهيئة يظهر لدي ملف غير معرف

وشكرا

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

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

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

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

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