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

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

هذا الكود الموضح يعمل معى تمام فى استعاده النسخه الاحتياطيه ولكن به مشكله 
عند استعاده النسخه 
يستعيدها بعمليه صحيحيه جدا 
ولكن بعد الاستعاده لو قمت باى اجراء على البرنامج يعطينى انه لا يوجد قاعده البيانات التى مسارها 
الغريب بنها تاخذ المسار الئى اخذت منه النسخه الاحتياطيه 
ولولا ان اقفل البرنامج واعاود فتحه حتى يعود كل شئ كما كان ويعمل البرنامج بشكل صحيح
فهل هناك خطأ فى الكود وماهى الطريقه التى يجعل البرنامج ياخذ نفس مسار قاعده البيانات بدون غلقه
وشكرا 
كود :
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
       Try


           Dim scrpath, destpath, compdestpath As String
           Dim OFD As New OpenFileDialog
           destpath = Application.StartupPath & " "
           compdestpath = Path.Combine(destpath, "SADANY.accdb")
           OFD.Filter = "Microsost Access 2007|*.Accdb"
           If OFD.ShowDialog = Windows.Forms.DialogResult.OK Then
               scrpath = OFD.FileName

           End If
           If My.Computer.FileSystem.FileExists(compdestpath) = True Then
               If MessageBox.Show(" هل تريد فعلا الاستعاده ", "تنبيه", MessageBoxButtons.YesNo) = Windows.Forms.DialogResult.No Then
                   Exit Sub
               Else



                   My.Computer.FileSystem.DeleteFile(compdestpath)
                   My.Computer.FileSystem.CopyFile(OFD.FileName, compdestpath)
                   con.Open()
                   MsgBox("تم ستعاده النسخه بنجاح")

               End If
           End If

       Catch ex As Exception
           MessageBox.Show(ex.Message)
       End Try


   End Sub
ارجو الاجابه
(18-08-19, 12:14 AM)خالد كامل1 كتب : [ -> ]السلام عليكم احبتى فى الله
اعلم باننى كثير الاسئله فاعزرونى واقدر لكم كل مجهوداتكم معى
اتمنى من الله ان تكونوا باتم الصحه والخير 

هذا الكود الموضح يعمل معى تمام فى استعاده النسخه الاحتياطيه ولكن به مشكله 
عند استعاده النسخه 
يستعيدها بعمليه صحيحيه جدا 
ولكن بعد الاستعاده لو قمت باى اجراء على البرنامج يعطينى انه لا يوجد قاعده البيانات التى مسارها 
الغريب بنها تاخذ المسار الئى اخذت منه النسخه الاحتياطيه 
ولولا ان اقفل البرنامج واعاود فتحه حتى يعود كل شئ كما كان ويعمل البرنامج بشكل صحيح
فهل هناك خطأ فى الكود وماهى الطريقه التى يجعل البرنامج ياخذ نفس مسار قاعده البيانات بدون غلقه
وشكرا 
كود :
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
       Try


           Dim scrpath, destpath, compdestpath As String
           Dim OFD As New OpenFileDialog
           destpath = Application.StartupPath & " "
           compdestpath = Path.Combine(destpath, "SADANY.accdb")
           OFD.Filter = "Microsost Access 2007|*.Accdb"
           If OFD.ShowDialog = Windows.Forms.DialogResult.OK Then
               scrpath = OFD.FileName

           End If
           If My.Computer.FileSystem.FileExists(compdestpath) = True Then
               If MessageBox.Show(" هل تريد فعلا الاستعاده ", "تنبيه", MessageBoxButtons.YesNo) = Windows.Forms.DialogResult.No Then
                   Exit Sub
               Else



                   My.Computer.FileSystem.DeleteFile(compdestpath)
                   My.Computer.FileSystem.CopyFile(OFD.FileName, compdestpath)
                   con.Open()
                   MsgBox("تم ستعاده النسخه بنجاح")

               End If
           End If

       Catch ex As Exception
           MessageBox.Show(ex.Message)
       End Try


   End Sub
وعليكم السلام ورحمة الله وبركاته
جرب الكود بعد التعديل وان شاء الله يعمل معك بشكل صحيح
PHP كود :
 Dim scrpathdestpathcompdestpath As String
            destpath 
Application.StartupPath
            compdestpath 
Path.Combine(destpath"SADANY.accdb")
 
           OpenFileDialog1.Filter "Access DB | *.accdb | All Files | *"
 
           If OpenFileDialog1.ShowDialog DialogResult.OK Then
                scrpath 
OpenFileDialog1.FileName
            End 
If

 
           If My.Computer.FileSystem.FileExists(compdestpath) = True Then

                If connSQL
.State 1 Then connSQL.Close()
 
               connSQL.Open()
 
               connSQL.Close()
 
               My.Computer.FileSystem.DeleteFile(compdestpath)
 
               My.Computer.FileSystem.CopyFile(OpenFileDialog1.FileNamecompdestpathTrue)
 
               MsgBox("تم استرجاع البيانات بنجاح")
 
           Else
                MsgBox
("قاعدة البيانات مفقوده")
 
           End If 
(18-08-19, 02:55 AM)Emam emam كتب : [ -> ]
(18-08-19, 12:14 AM)خالد كامل1 كتب : [ -> ]السلام عليكم احبتى فى الله
اعلم باننى كثير الاسئله فاعزرونى واقدر لكم كل مجهوداتكم معى
اتمنى من الله ان تكونوا باتم الصحه والخير 

هذا الكود الموضح يعمل معى تمام فى استعاده النسخه الاحتياطيه ولكن به مشكله 
عند استعاده النسخه 
يستعيدها بعمليه صحيحيه جدا 
ولكن بعد الاستعاده لو قمت باى اجراء على البرنامج يعطينى انه لا يوجد قاعده البيانات التى مسارها 
الغريب بنها تاخذ المسار الئى اخذت منه النسخه الاحتياطيه 
ولولا ان اقفل البرنامج واعاود فتحه حتى يعود كل شئ كما كان ويعمل البرنامج بشكل صحيح
فهل هناك خطأ فى الكود وماهى الطريقه التى يجعل البرنامج ياخذ نفس مسار قاعده البيانات بدون غلقه
وشكرا 
كود :
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
       Try


           Dim scrpath, destpath, compdestpath As String
           Dim OFD As New OpenFileDialog
           destpath = Application.StartupPath & " "
           compdestpath = Path.Combine(destpath, "SADANY.accdb")
           OFD.Filter = "Microsost Access 2007|*.Accdb"
           If OFD.ShowDialog = Windows.Forms.DialogResult.OK Then
               scrpath = OFD.FileName

           End If
           If My.Computer.FileSystem.FileExists(compdestpath) = True Then
               If MessageBox.Show(" هل تريد فعلا الاستعاده ", "تنبيه", MessageBoxButtons.YesNo) = Windows.Forms.DialogResult.No Then
                   Exit Sub
               Else



                   My.Computer.FileSystem.DeleteFile(compdestpath)
                   My.Computer.FileSystem.CopyFile(OFD.FileName, compdestpath)
                   con.Open()
                   MsgBox("تم ستعاده النسخه بنجاح")

               End If
           End If

       Catch ex As Exception
           MessageBox.Show(ex.Message)
       End Try


   End Sub
وعليكم السلام ورحمة الله وبركاته
جرب الكود بعد التعديل وان شاء الله يعمل معك بشكل صحيح
PHP كود :
 Dim scrpathdestpathcompdestpath As String
            destpath 
Application.StartupPath
            compdestpath 
Path.Combine(destpath"SADANY.accdb")
 
           OpenFileDialog1.Filter "Access DB | *.accdb | All Files | *"
 
           If OpenFileDialog1.ShowDialog DialogResult.OK Then
                scrpath 
OpenFileDialog1.FileName
            End 
If

 
           If My.Computer.FileSystem.FileExists(compdestpath) = True Then

                If connSQL
.State 1 Then connSQL.Close()
 
               connSQL.Open()
 
               connSQL.Close()
 
               My.Computer.FileSystem.DeleteFile(compdestpath)
 
               My.Computer.FileSystem.CopyFile(OpenFileDialog1.FileNamecompdestpathTrue)
 
               MsgBox("تم استرجاع البيانات بنجاح")
 
           Else
                MsgBox
("قاعدة البيانات مفقوده")
 
           End If 
لم تفلح الطريقه يعطينى نفس الخطأ
السلام عليكم اخي خالد
الامر الذي تتحدث عنه طبيعي يجب اعادة تشغيل البرنامج بعد اعادة قاعدة البيانات ليتم الاتصال مع القاعدة الجديدة حتى ولو كانت بنفس الاسم
يمكنك كتابة السطر التالي في نهاية كود Restore ليتم عمل Restart للبرنامج

كود :
Application.Restart()
(18-08-19, 04:21 AM)ابراهيم ايبو كتب : [ -> ]
السلام عليكم اخي خالد
الامر الذي تتحدث عنه طبيعي يجب اعادة تشغيل البرنامج بعد اعادة قاعدة البيانات ليتم الاتصال مع القاعدة الجديدة حتى ولو كانت بنفس الاسم
يمكنك كتابة السطر التالي في نهاية كود Restore ليتم عمل Restart للبرنامج

كود :
Application.Restart()
الله عليك بارك الله فيك