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

النسخ والاسترداد


النجاشي

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

السلام عليكم ورحمه الله وبركاته

استاتذتي الكرام

المطلوب

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

زر استراد  يسترد المعلومات  من الدي 

 ملاحظه  في حاله تراكم النسخ اريد مثلا يخلي لي نسخ  الثلاث الايام الاخيره علما باننا بحثت طويلا  ولم اصل لمرادي هل يتحقق لي ذالك  

تحياتي اليكم احبتي

 

نسخ واسترداد.rar

تم تعديل بواسطه ابو زاهر
رابط هذا التعليق
شارك

شكرا استاذي  @محمد التميمي على المشاركه ولكن الفديو لم يحقق المراد 

علي كل حال شكر اليك الله يعطيك العافيه

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

 استاذي   @kanory 

من حسب نظرتي اليه جميل جدا لكن لم استطع ان اطبقه علي قاعدتي 

ياليت تعمله لي بقاعدتي

الله يعطيك العافيه

تحياتي اليك

 

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

 :fff:استاذي  @kanory :fff::fff:

الحمدلله توصلت اليه  وهو اننا لم ادخل اسماء جدوالي بالنموذج فادخلتها الان وتمت العمليه بنجاح فالف الف شكر اليك صراحه جميل وممتع الله يعطيك العافيه

ساخلد الي النوم جانا نعاس ولنا غدا باذن الله نقاش ان وجدت  صراحه اعجبنا جدا  الف الف تحيه اليك :fff::fff:

تحياتي اليك

 

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

10 ساعات مضت, kanory said:

أخي ابا زاهر خذ ما تحتاجه من هذا المثال

 

 

Ka1.zip

اشكرك استاذي روعه ولكن  ما بيشتغل للقاعده المقسمه 

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

19 ساعات مضت, ابو زاهر said:

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

أخي ابا زاهر

رغم تعدد الاسئلة ... ساجيب عليك

لنأخذ الموضوع ببساطة

خلف حدث عند النقر ضع هذه التعريفات

Dim strSourcePath As String
Dim strBackupPath As String
Dim strBackupFile As String

Dim fso As FileSystemObject

ثم ننتقل للتحديدات :

مصدر النسخ ( موقع القاعدة الحالية و اسم القاعدة ) او مسار القاعدة على D كاملا مع اسم القاعدة

strSourcePath = CurrentProject.Path & "\Data.accdb"

مكان تخزين النسخة الاحتياطية ( موقع القاعدة الحالية و اسم المجلد ) او مسار القاعدة على D كاملا مع اسم المجلد

strBackupPath = CurrentProject.Path & "\Backup" & "\"

اسم قاعدة النسخة الاحتياطية ( مع امتداد الملف )

strBackupFile = "DataX.accdb"

ثم نقوم بعملية النسخ

Set fso = New FileSystemObject
fso.CopyFile strSourcePath, strBackupPath & strBackupFile, True
Set fso = Nothing

ثم نشعر المستخدم بنجاح و انتهاء عملية النسخ

MsgBox "Backup Complete. Backup file is located at: " & Chr(13) & strBackupFileName, vbInformation, " BackUp BackEnd"

ليصبح الكود

Dim strSourcePath As String
Dim strBackupPath As String
Dim strBackupFile As String

Dim fso As FileSystemObject

strSourcePath = CurrentProject.Path & "\Data.accdb"
strBackupPath = CurrentProject.Path & "\Backup" & "\"
strBackupFile = "DataX.accdb"

Set fso = New FileSystemObject
fso.CopyFile strSourcePath, strBackupPath & strBackupFile, True
Set fso = Nothing

MsgBox "Backup Complete. Backup file is located at: " & Chr(13) & strBackupFileName, vbInformation, " BackUp BackEnd"

جرب طبق ونتابع ...

 

بعد التطبيق أرسل لي الكود الذي نفذت به العملية على قاعدتك و الذي يحمل الاسماء و المسارات .... لنستكمل بقية الطلبات

و الله من وراء القصد

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

 استاذي الكريم@أبو آدم:fff:

حاولت بالكود  يطلع لي خطاء  كما بالصوره ياليت تعمله له بقاعدتي بارك الله فيك  استاذي الكريم

بدون عنوان.jpg

تم تعديل بواسطه ابو زاهر
رابط هذا التعليق
شارك

 استاذي الكريم@أبو آدم:fff:

عندما افتح النموذج تظهر لي هذه الرساله اعتقد انها حدثت من بعد ما قمتو  بعمل التقسيم 

 

 

 

 

 

77.jpg

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

  شكرا استاذي@ابو ياسين المشولي كما قلت اعاده ربط

استاذي الكريم@أبو آدم

الان بقيه الطلبات  الاسترداد  و مشكله التراكم  للنسخ

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

وجزاك الله خير 

 

 

 

 

 

 

 

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

صباح الخير

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

اما في الواقع لا بد من تمييز الاسم بالحاق نمط تاريخ و / أو وقت عند اللزوم ، فاذا كانت هناك اجراءات برمجية او لزوم لاخذ اكثر من نسخة احتياطية في اليوم يلزم الحاق الوقت مع التاريخ و الا فالتاريخ كافي ، وهو لازم للفكرة الاخيرة التي تتحدث عنها و هي تراكم النسخ الاحتياطية.

وبذلك يصبح تعريف اسم النسخة الاحتياطية

strBackupFile = "Data" & Format(Now, "yyyymmdd") & ".accdb"

بدلا عن

strBackupFile = "DataX.accdb"

و قبل الحديث عن : ما هو مفهوم الاسترداد لديك ؟

لا بد من تصفية و صيانة النسخ الاحتياطية تمهيدا لاسترداد احداها ، و ساجهز لك الكود مع شرح بسيط

و للحديث بقية ...

 

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

47 دقائق مضت, أبو آدم said:

صباح الخير


strBackupFile = "Data" & Format(Now, "yyyymmdd") & ".accdb"

بدلا عن


strBackupFile = "DataX.accdb"

و قبل الحديث عن : ما هو مفهوم الاسترداد لديك ؟

لا بد من تصفية و صيانة النسخ الاحتياطية تمهيدا لاسترداد احداها ، و ساجهز لك الكود مع شرح بسيط

و للحديث بقية ...

 

صباح النور 

بارك الله فيك استاذي الكريم

ربنا يعطيك الصحه 

بانتظارك

تحياتي

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

صباح الخير 

أخي أبا زاهر

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

و في النسخة الموجودة لدي ( من قاعدة بياناتك ) قمت بانشاء زر أمر للتعامل من الروتين عند النقر

Dim strFldr As String
Dim strFile As String
Dim FileToGet As String

strFldr = CurrentProject.Path & "\BackUp"

strFile = Dir(strFldr & "\Data*.*")

Do While Len(strFile) > 0
FileToGet = Left(strFile, Len(strFile) - 6)


If Len(FileToGet) = 12 Then ' only check files with name of correct length

If FileToGet <= CStr("Data" & Format(Date - 1, "yyyymmdd")) & ".accdb" Then ' only check files with name of correct Format

'Renames
Name strFldr & "\" & strFile As strFldr & "\" & "OLD .. " & strFile
'Deletes
'Kill strFldr & "\" & strFile
Else
' do Nothing
End If
Else

'Ignore file
End If

strFile = Dir
Loop

وانت هنا بالخيار بين اعادة تسمية الملفات القديمة و ابقائها أو حذفها ، هنا فعلت كود اعادة التسمية ، و يمكنك ايقاف كود اعادة التسمية و تفعيل كود الحذف

Kill strFldr & "\" & strFile

و هنا اخترت اعادة تسمية الملف بعد يوم واحد ، بينما يمكنك تعديل المدة و اختيار ما تشاء

5ae6bddaf1546_30-04-201809-54-21.png.2e3258c314e4afcc28203a61890289f2.png

و للحديث بقية ...

 

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

 استاذي الكريم@أبو آدم   مساك الله بالخير والسرور:fff:

وضعت الكود علي الزر ولم يعمل معي ياليت استاذي تشوف ايش المشكله الله يعطيك الصحه والعافيه والعمر المديد

الاستاذ ابو ادام النسخ.rar

تم تعديل بواسطه ابو زاهر
رابط هذا التعليق
شارك

المرفق حسب آخر التعديلات

بعد فك الضغط افتح قاعدة البيانات وقم باعادة الربط للجداول

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

في النموذج زر امر جديد ... اضغط عليه 

و وافني بالنتيجة ....

 

NA_B&R.rar

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

4 ساعات مضت, أبو آدم said:

ا

و وافني بالنتيجة ....

NA_B&R.rar

 السلام عليكم

ممتاز الله يبارك فيك استاذي الكريم ابو ادم

النتيجه بالتصفيه ممتازه جدا  الله ينور عليك استاذي كما بالصوره 

الان جاء دور الاسترداد 

تحياتي اليك يالغالي

1.jpg

2.jpg

تم تعديل بواسطه ابو زاهر
رابط هذا التعليق
شارك

في ٣٠‏/٤‏/٢٠١٨ at 16:08, أبو آدم said:

اثثث

في ٣٠‏/٤‏/٢٠١٨ at 20:41, ابو زاهر said:

 السلام عليكم

ممتاز الله يبارك فيك استاذي الكريم ابو ادم

النتيجه بالتصفيه ممتازه جدا  الله ينور عليك استاذي كما بالصوره 

الان جاء دور الاسترداد 

تحياتي اليك يالغالي

1.jpg

2.jpg

للرفع

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

1 ساعه مضت, أبو آدم said:

السلام عليكم

هل يمكن ان توضح لي مفهومك ( او حاجاتك .. ) بخصوص الاسترداد

فالصور عديدة و الحاجات مختلفة

شكرا

....

 

وعليكم السلام ورحمه الله وبركاته

استاذي الكريم عملت لى في السابق نسخ احتياطي

وعملت لي زر تصفيه يفتح لي النسخ المحفوظ حق الثلاث الايام الأخير فهنا 

 اريد استرداد لنسخه مثلا اي إرجاع نسخه الي القاعده وان شاء الله يكون وصلتك فكرتي اي عكس النسخ تحياتي إليك 

استاذنا الكريم

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

السلام عليكم

أخي ابا زاهر ليس لديه طلبات خاصة ... المهم تطبيق الفكرة بشكل عام ، و اذا ظهرت امور اخرى نعالجها باذن الله

الكود المرفق كما هو خلف حدث عند النقر لزر أمر الاسترداد في التطبيق لديك

Dim fdg As FileDialog, vrtSelectedItem As Variant
Dim strSelectedFile As String
 
Set fdg = Application.FileDialog(msoFileDialogFilePicker)
 
With fdg
  .AllowMultiSelect = False
  .InitialView = msoFileDialogViewDetails
  .InitialFileName = Application.CurrentProject.Path & "\Backup"
  .Title = "Please select BackUp File"
  .Filters.Clear
  .Filters.Add "Access Databases", "*.MDB,*.MDE,*.ACCDB,*.ACCDE"
  .Filters.Add "All Files", "*.*"
  .ButtonName = "Restore"

    If .Show = -1 Then
      For Each vrtSelectedItem In .SelectedItems
        strSelectedFile = vrtSelectedItem
      Next vrtSelectedItem
     
     Else
      MsgBox "You did not select a BackUp File." & _
      vbNewLine & "The Restore process was stopped ... ", vbCritical, "Operation Stopped"
      Exit Sub
    End If
End With
 
Set fd = Nothing

relinkTables (strSelectedFile)

ثم انسخ الروتين التالي في محرر اكواد النموذج

Public Sub relinkTables(NewPathname As String)
    Dim Dbs As Database
    Dim tdf As TableDef
    Dim Tdfs As TableDefs
    Set Dbs = CurrentDb
    Set Tdfs = Dbs.TableDefs
'Loop through the tables collection
       For Each tdf In Tdfs
        If tdf.SourceTableName <> "" Then 'If the table source is other than a base table
            tdf.Connect = ";DATABASE=" & NewPathname 'Set the new source
            tdf.RefreshLink 'Refresh the link
        End If
    Next 'Goto next table
End Sub

جرب و وافني بالنتيجة

....

 

كل مرة تختار فيها نسخة للاسترداد و تتم العملية

اذهب الى الجداول لترى ان مصدرها هو النسخة التى اخترتها

.......

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

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

زائر
اضف رد علي هذا الموضوع....

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

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

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

Important Information