منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب

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

كود النسخ هو

كود :
Private Sub BtnBackup_Click(ByVal sender As Object, ByVal e As EventArgs) Handles BtnBackup.Click
       If fbd.ShowDialog = Windows.Forms.DialogResult.OK Then
           Dim sourcepath As String = Application.StartupPath & "\vacc.accdb"
           Dim destinationpath As String = fbd.SelectedPath & "\vacc.accdb"
           File.Copy(sourcepath, destinationpath, True)
           'File.Copy(sourcepath, True)
           MsgBox("تمت عملية النسخ الاحتياطي بنجاح", MsgBoxStyle.Information, "تأكيد")
       End If
   End Sub

وكود الاستعادة هو

كود :
Private Sub BtnRestore_Click(ByVal sender As Object, ByVal e As EventArgs) Handles BtnRestore.Click
       ofd.Filter = "Access files |*.accdb"
       If ofd.ShowDialog = Windows.Forms.DialogResult.OK Then
           Dim fi As New FileInfo(ofd.FileName)
           If fi.Name = "vacc.accdb" Then
               Dim source As String = ofd.FileName
               Dim destination As String = Application.StartupPath & "\vacc.accdb"
               File.Copy(source, destination, True)
               MsgBox("تمت عملية الاستعادة بنجاح", MsgBoxStyle.Information, "تأكيد")
           Else
               MsgBox("الملف المطلوب يجب أن يكون باسم " & "vacc.accdb", MsgBoxStyle.Information, "خطأ")
           End If
       End If
   End Sub

الكود شغال تمام في حالة ان قاعدة البيانات موجودة في مجلد المشروع    
ولان وجود قاعدة البيانات في مجلد المشروع يسبب مشكلة عند تتبيث البرنامج على جهاز اخر لهذا السبب وضعت قاعدة البيانات في مجلد Roaming موجود بهذا الامتداد  

C:\Users\MY PC\AppData\Roaming

علماً اني استعمل جملة الاتصال هذه للأتصال بقاعدة البيانات    

 
كود :
Public con As New OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;" & "Data Source=" & (Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData)) & "\vacc.accdb")

المشكلة عند وضع قاعدة البيانات في هذا المسار كود النسخ والاستعادة لا يعمل كيف يمكن تعديل الكود ليتناسب مع هذا المسار بحيث يتعرف على مسار قاعدة البيانات ؟؟؟
شكراً لكل من مر على الموضوع وشكراً لكل من حاول المساعدة ولم يتمكن تم حل الاشكال ولله الحمد بمساعدة chat gpt

والاكواد بعد التعديل ستكون على الشكل التالي ربما يستفاد منها

كود النسخ الاحتياطي لقاعدة البيانات هو

كود :
If fbd.ShowDialog = Windows.Forms.DialogResult.OK Then
           Dim sourcePath As String = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) & "\vacc.accdb"
           Dim destinationpath As String = fbd.SelectedPath & "\vacc.accdb"
           Try
               File.Copy(sourcePath, destinationpath, True)
               MessageBox.Show("تمت عملية النسخ الاحتياطي بنجاح")
           Catch ex As Exception
               MessageBox.Show("حصل خطأ عند نسخ قاعدة البيانات " & ex.Message)
           End Try
       End If


وكود استعادة النسخة الاحتياطية هو

كود :
ofd.Filter = "Access files |*.accdb"
       If ofd.ShowDialog = Windows.Forms.DialogResult.OK Then
           Dim fi As New FileInfo(ofd.FileName)
           If fi.Name = "vacc.accdb" Then
               Dim source As String = ofd.FileName
               Dim destination As String = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) & "\vacc.accdb"
               File.Copy(source, destination, True)
               MsgBox("تمت عملية الاستعادة بنجاح", MsgBoxStyle.Information, "تأكيد")

               SelectAll_vacc(dgv_vacc)   تحميل قاعدة البانات بعد الاسترجاع

           Else
               MsgBox("الملف المطلوب يجب أن يكون باسم " & "vacc.accdb", MsgBoxStyle.Information, "خطأ")
           End If
       End If


وشكراً للجميع دون استتناء