RE: كيف يُمكن إجراء نسخ تلقائي لقاعدة البيانات كل يوم بملف خارج المشروع؟ - elgokr - 23-09-18
اخى الحبيب النسخة الاحتياطية لقاعدة البيانات من نوع Access
لا يحتاج الى اكواد وما غيره لتقول بعمل نسخة احتياطية
حتى ابسط الامر لك تخيل ان قاعدة البيانات ملف او صورة او اى شئ
وانت تريد عمل نسخ الملف من مكان الى مكان من خلال البرنامج
طيب عشان اقوم بعمل ذلك مع قاعدة البيانات من نوع Access
ما المطلوب فعله تماماً
اذا كنت تريد عمل نسخة احتياطية كل يوم مرة واحدة
فهنا يجب ان تقوم بعمل حقل فى Settings يكون تحت اسم وليكن BupDB
ويكون من نوع تاريخ وسيكون القيمة الافتراضية تاريخ اليوم مثلاً
طيب الان قمنا بعمل هذا ماذا بعد ذك
قبل اتمام عمل النسخ ستحتاج لكود يقوم بالتحقق هل الاتصال بقاعدة البيانات
مغلق ام لا واذا كان لا فيجب عليك تنفيذ امر الاغلاق
جميل حتى الان الكود بسيط ويمكننا فعل ذلك
طيب ماذا بعد ذلك كل الفكرة والامر هو تنفيذ كود نسخ قاعدة البيانت الى مسار ثابت
طيب كيف يمكننى فعل الكود كاملاً
الامر كالتالى سيكون الكود بهذا الشكل اذا كان فى واجهة فتح البرنامج
او فى جميع الشاشات البرنامج فكما تشاء اين تريد وضع الكود
كود :
REM كود التحقق من التاريخ اخر سحب نسخة باكس اب اصبح اصغر من التاريخ الحالى
If My.Settings.BupDB < Now.Date Then
REM كود اغلاق الاتصال بقاعدة البيانات
If con.State = ConnectionState.Open Then con.Close()
REM هذا السطر يقوم بالتحقق بمسار مجلد الاحتفاظ بنسخة قاعدة البيانات الا كان غير موجود يقوم بانشاء المجلد
If (Not System.IO.Directory.Exists("C:\Backup\")) Then IO.Directory.CreateDirectory("C:\Backup\")
REM اتمام عملية نسخ قاعدة البيانات
My.Computer.FileSystem.CopyFile(Application.StartupPath & "/NameDB.accdb", "C:\Backup\BupDB-" & Now.Date.ToString("dd-MM-yyyy") & ".accdb", True)
End If
القى نظرة لهذا الكود يحتوى على الشرح
كل ما عليك فقط تغيير مسمى قاعدة البيانات التى لديك
والمسمى والمسار المطلوب حفظ به قاعدة البيانات
وبكده تكون انهيت عمل النسخة الاحتياطية لقاعدة البيانات
تحياتى لك
وتمنياتى لك التوفيق
RE: كيف يُمكن إجراء نسخ تلقائي لقاعدة البيانات كل يوم بملف خارج المشروع؟ - Hazem1 - 23-09-18
(23-09-18, 08:30 PM)elgokr كتب : اخى الحبيب النسخة الاحتياطية لقاعدة البيانات من نوع Access
لا يحتاج الى اكواد وما غيره لتقول بعمل نسخة احتياطية
حتى ابسط الامر لك تخيل ان قاعدة البيانات ملف او صورة او اى شئ
وانت تريد عمل نسخ الملف من مكان الى مكان من خلال البرنامج
طيب عشان اقوم بعمل ذلك مع قاعدة البيانات من نوع Access
ما المطلوب فعله تماماً
اذا كنت تريد عمل نسخة احتياطية كل يوم مرة واحدة
فهنا يجب ان تقوم بعمل حقل فى Settings يكون تحت اسم وليكن BupDB
ويكون من نوع تاريخ وسيكون القيمة الافتراضية تاريخ اليوم مثلاً
طيب الان قمنا بعمل هذا ماذا بعد ذك
قبل اتمام عمل النسخ ستحتاج لكود يقوم بالتحقق هل الاتصال بقاعدة البيانات
مغلق ام لا واذا كان لا فيجب عليك تنفيذ امر الاغلاق
جميل حتى الان الكود بسيط ويمكننا فعل ذلك
طيب ماذا بعد ذلك كل الفكرة والامر هو تنفيذ كود نسخ قاعدة البيانت الى مسار ثابت
طيب كيف يمكننى فعل الكود كاملاً
الامر كالتالى سيكون الكود بهذا الشكل اذا كان فى واجهة فتح البرنامج
او فى جميع الشاشات البرنامج فكما تشاء اين تريد وضع الكود
كود :
REM كود التحقق من التاريخ اخر سحب نسخة باكس اب اصبح اصغر من التاريخ الحالى
If My.Settings.BupDB < Now.Date Then
REM كود اغلاق الاتصال بقاعدة البيانات
If con.State = ConnectionState.Open Then con.Close()
REM هذا السطر يقوم بالتحقق بمسار مجلد الاحتفاظ بنسخة قاعدة البيانات الا كان غير موجود يقوم بانشاء المجلد
If (Not System.IO.Directory.Exists("C:\Backup\")) Then IO.Directory.CreateDirectory("C:\Backup\")
REM اتمام عملية نسخ قاعدة البيانات
My.Computer.FileSystem.CopyFile(Application.StartupPath & "/NameDB.accdb", "C:\Backup\BupDB-" & Now.Date.ToString("dd-MM-yyyy") & ".accdb", True)
End If
القى نظرة لهذا الكود يحتوى على الشرح
كل ما عليك فقط تغيير مسمى قاعدة البيانات التى لديك
والمسمى والمسار المطلوب حفظ به قاعدة البيانات
وبكده تكون انهيت عمل النسخة الاحتياطية لقاعدة البيانات
تحياتى لك
وتمنياتى لك التوفيق
جزاك الله خيراً أخي الحبيب، قمت بعمل الخطوات في Settings ثم انتقلت لكتابة الكود في الفورم، الكود بالكامل سليم عدا أن السطر التالي ظهر فيه خطأ ، اعتقد بسبب أنني ربطت قاعدة البيانات بالأدوات كما ذكرت لي من قبل وليس بالكود فلذلك هُناك مُشكلة في قناة الأتصال.
PHP كود :
If con.State = ConnectionState.Open Then con.Close()
بعد البحث فهمت أنه يلزم إنشاء Module فقمت بإنشاءه وكتبت داخله الكود التالي :
PHP كود :
Public con As New OleDb.OleDbConnection Public cmd As New OleDb.OleDbCommand
ثُم عدلت في المسارات وجعلتها على قرص D والحمد لله بفضل الله ثم بفضلك تم نسخ قاعدة البيانات، هذا هو الكود بعد التعديل
PHP كود :
REM كود التحقق من التاريخ اخر سحب نسخة باكس اب اصبح اصغر من التاريخ الحالى If My.Settings.BupDB < Now.Date Then REM كود اغلاق الاتصال بقاعدة البيانات If con.State = ConnectionState.Open Then con.Close() REM هذا السطر يقوم بالتحقق بمسار مجلد الاحتفاظ بنسخة قاعدة البيانات الا كان غير موجود يقوم بانشاء المجلد If (Not System.IO.Directory.Exists("D:\Backup\")) Then IO.Directory.CreateDirectory("D:\Backup\") REM اتمام عملية نسخ قاعدة البيانات My.Computer.FileSystem.CopyFile(Application.StartupPath & "/A18.accdb", "D:\Backup\BupDB-" & Now.Date.ToString("dd-MM-yyyy") & "A18.accdb", True) End If
جزاك الله خيراً ورضي عنك وغفر لك ورزقك الهُدى والتُقى والعفاف والغنى.
RE: كيف يُمكن إجراء نسخ تلقائي لقاعدة البيانات كل يوم بملف خارج المشروع؟ - elgokr - 23-09-18
(23-09-18, 09:22 PM)Hazem1 كتب : جزاك الله خيراً أخي الحبيب، قمت بعمل الخطوات في Settings ثم انتقلت لكتابة الكود في الفورم، الكود بالكامل سليم عدا أن السطر التالي ظهر فيه خطأ ، اعتقد بسبب أنني ربطت قاعدة البيانات بالأدوات كما ذكرت لي من قبل وليس بالكود فلذلك هُناك مُشكلة في قناة الأتصال.
PHP كود :
If con.State = ConnectionState.Open Then con.Close()
بعد البحث فهمت أنه يلزم إنشاء Module فقمت بإنشاءه وكتبت داخله الكود التالي :
PHP كود :
Public con As New OleDb.OleDbConnection Public cmd As New OleDb.OleDbCommand
ثُم عدلت في المسارات وجعلتها على قرص D والحمد لله بفضل الله ثم بفضلك تم نسخ قاعدة البيانات، هذا هو الكود بعد التعديل
PHP كود :
REM كود التحقق من التاريخ اخر سحب نسخة باكس اب اصبح اصغر من التاريخ الحالى If My.Settings.BupDB < Now.Date Then REM كود اغلاق الاتصال بقاعدة البيانات If con.State = ConnectionState.Open Then con.Close() REM هذا السطر يقوم بالتحقق بمسار مجلد الاحتفاظ بنسخة قاعدة البيانات الا كان غير موجود يقوم بانشاء المجلد If (Not System.IO.Directory.Exists("D:\Backup\")) Then IO.Directory.CreateDirectory("D:\Backup\") REM اتمام عملية نسخ قاعدة البيانات My.Computer.FileSystem.CopyFile(Application.StartupPath & "/A18.accdb", "D:\Backup\BupDB-" & Now.Date.ToString("dd-MM-yyyy") & "A18.accdb", True) End If
جزاك الله خيراً ورضي عنك وغفر لك ورزقك الهُدى والتُقى والعفاف والغنى. 
الحمد لله والحمد لله على كل حال
الاهم هل وضحت لك الفكرة واصبح الامر بسيط لديك
ام انك قمت بتطبيق كا النسخ واللصق
لا حرج فى السؤال والاستفسار ولو على حرف قد اكون سهوت عن شرحه
فاتمنى ان ينور العلم للجميع من اجل الخير
تحياتى لك
وتمنياتى لك التوفيق
RE: كيف يُمكن إجراء نسخ تلقائي لقاعدة البيانات كل يوم بملف خارج المشروع؟ - Hazem1 - 23-09-18
(23-09-18, 10:10 PM)elgokr كتب : (23-09-18, 09:22 PM)Hazem1 كتب : جزاك الله خيراً أخي الحبيب، قمت بعمل الخطوات في Settings ثم انتقلت لكتابة الكود في الفورم، الكود بالكامل سليم عدا أن السطر التالي ظهر فيه خطأ ، اعتقد بسبب أنني ربطت قاعدة البيانات بالأدوات كما ذكرت لي من قبل وليس بالكود فلذلك هُناك مُشكلة في قناة الأتصال.
PHP كود :
If con.State = ConnectionState.Open Then con.Close()
بعد البحث فهمت أنه يلزم إنشاء Module فقمت بإنشاءه وكتبت داخله الكود التالي :
PHP كود :
Public con As New OleDb.OleDbConnection Public cmd As New OleDb.OleDbCommand
ثُم عدلت في المسارات وجعلتها على قرص D والحمد لله بفضل الله ثم بفضلك تم نسخ قاعدة البيانات، هذا هو الكود بعد التعديل
PHP كود :
REM كود التحقق من التاريخ اخر سحب نسخة باكس اب اصبح اصغر من التاريخ الحالى If My.Settings.BupDB < Now.Date Then REM كود اغلاق الاتصال بقاعدة البيانات If con.State = ConnectionState.Open Then con.Close() REM هذا السطر يقوم بالتحقق بمسار مجلد الاحتفاظ بنسخة قاعدة البيانات الا كان غير موجود يقوم بانشاء المجلد If (Not System.IO.Directory.Exists("D:\Backup\")) Then IO.Directory.CreateDirectory("D:\Backup\") REM اتمام عملية نسخ قاعدة البيانات My.Computer.FileSystem.CopyFile(Application.StartupPath & "/A18.accdb", "D:\Backup\BupDB-" & Now.Date.ToString("dd-MM-yyyy") & "A18.accdb", True) End If
جزاك الله خيراً ورضي عنك وغفر لك ورزقك الهُدى والتُقى والعفاف والغنى. 
الحمد لله والحمد لله على كل حال
الاهم هل وضحت لك الفكرة واصبح الامر بسيط لديك
ام انك قمت بتطبيق كا النسخ واللصق
لا حرج فى السؤال والاستفسار ولو على حرف قد اكون سهوت عن شرحه
فاتمنى ان ينور العلم للجميع من اجل الخير
تحياتى لك
وتمنياتى لك التوفيق
والله كان الشرح واضح جداً، وقمت بتطبيق النسخ اليدوي في زر وجربته وجزاك الله خيراً أن تركت لي مساحة في البحث والتفكير، زادك الله علمًا ورزقك الفردوس الأعلى أخي الحبيب elgokr
RE: كيف يُمكن إجراء نسخ تلقائي لقاعدة البيانات كل يوم بملف خارج المشروع؟ - elgokr - 23-09-18
الحمد للع والحمد لله على كل حال
تقبل الله منك الدعاء لى ولك وللجميع باذن الله
تحياتى لك
وتمنياتى لك التوفيق
|