محمد سلامة قام بنشر سبتمبر 18, 2015 قام بنشر سبتمبر 18, 2015 السلام عليكم ورحمة الله لدي برنامج مقسم الي وجهات وجداول ومرتبطين مع بعضهما مسار البرنامج هو D:\archives مسار قاعدة البيانات المرتبطة D:\archives\server اريد عمل نسخه احتياطية للجداول المرتبطة بشكل تلقائي عند الخروج من البرنامج ووضعها في وحفظها في المسار التالي D:\archives\backup وتكون مسمى بالوقت والتاريخ وعند الخروج كل مرة يتم استبدال النسخه القديمة بالنسخه الجديدة علما بانني اطلعت علي رابط مشاركة لاستاذ جعفر والاستاذ اخر الارضي ولكن لم تضبط معي بارك الله فيكم
wael_rafat قام بنشر سبتمبر 18, 2015 قام بنشر سبتمبر 18, 2015 (معدل) اتفضل مثال لاستاذنا المبدع جعفر بارك الله فيه http://www.officena.net/ib/topic/63113-نسخ-ملف-خارجي-في-مجلد-خارجي/#comment-409726 تم تعديل سبتمبر 18, 2015 بواسطه wael_rafat 1
محمد سلامة قام بنشر سبتمبر 18, 2015 الكاتب قام بنشر سبتمبر 18, 2015 شكرا لك اخي وليد رفعت ولكن الرابط به خطا برجاء مراجعته
محمد سلامة قام بنشر سبتمبر 18, 2015 الكاتب قام بنشر سبتمبر 18, 2015 اخي وليد هذا الرابط ان عارفه جدا وحاولت مرارا التجربة علي الامثلة والاكواع التي به ولم افلح. فممكن ترفق لي نسخه من ملفك ويكون موضح به المطلوب
wael_rafat قام بنشر سبتمبر 18, 2015 قام بنشر سبتمبر 18, 2015 المثال الصحيح الذي نجح معي هو اخر مثال في المشاركة وهتلاحظ بعدها شكري للاستاذ جعفر .. جرب ووافيني بالنتيجة ... ولو منجحش معاك هبعتلك المثال بالكامل ولكن باكر صباحا انشالله لانه علي الكمبيوتر وانا حاليا باستخدم الموبيل
محمد سلامة قام بنشر سبتمبر 18, 2015 الكاتب قام بنشر سبتمبر 18, 2015 لقد قمت بتجربته اخي وليد ولم افلح سوف انتظرك حتي غدا
ابوخليل قام بنشر سبتمبر 18, 2015 قام بنشر سبتمبر 18, 2015 السلام عليكم اسمحوا لي بالمشاركة معكم هذا الكود كامل بالمطلوب ويمكنكم تسمية النسخة واللاحقة بما تريدون يتم اخذ النسخة عند اغلاق النموذج / انظر المرفق Dim DBOld As String Dim DBNew As String Private Sub Form_Load() DBOld = CurrentProject.Path & "\Data.mdb" 'اختيار قاعدة بيانات الجداول DBNew = CurrentProject.Path & "\Backup" 'اختيار مكان حفظ النسخة End Sub Private Sub Form_Close() On Error Resume Next Shell "cmd.exe /C copy " & """" & DBOld & """" & " " & """" & DBNew & "\" & "Data.mdb" & """", 0 End Sub xxxx.rar 3
wael_rafat قام بنشر سبتمبر 19, 2015 قام بنشر سبتمبر 19, 2015 (معدل) بارك الله فيك استاذنا ابو خليل اتفضل اخي محمد هذا المثال من استاذنا الجميل جعفر ضع الفولدر Prog والذي يحتوي علي الجداول المرتبطة علي الD كما هو .. ثم قم بفتح البرنامج الاساسي AA وقم بالخروج سوف ينشيء فولدر تلقائي باسم BAk علي الD وبه نسخة من الجداول المرتبطة بالتاريخ والوقت للاسف يوجد مشكلة بالموقع عند تحميل الملفات اتفضل هذا الكود لحين استطيع تحميل المرفقات On Error GoTo err_Form_Close 'make a backup of BE BE_or_FE = "D:\prog" Backup_Folder = "D:\BAK" 'Do a copy from a PC name wael ONLY 'If VBA.Environ("Computername") <> "wael" Then Exit Sub 'Delete the old saved accdb Kill Backup_Folder & "\AA_BE_*.accdb" 'Now lets work on saving the new accdb''Is this PC name = jj' ' BE_Address = BE_or_FE & "\AA_BE.accdb" BK_Address = Backup_Folder & "\AA_BE_" & Format(Date, "dd-mm-yyyy") & "-" & Format(Now(), "Hh-Nn-AMPM") & ".accdb*" 'Debug.Print "xcopy " & Chr(34) & BE_Address & Chr(34) & " " & Chr(34) & BK_Address & Chr(34) Call Shell("xcopy " & Chr(34) & BE_Address & Chr(34) & " " & Chr(34) & BK_Address & Chr(34), vbHide) Exit Suberr_Form_Close: If Err.Number = 2450 Or Err.Number = 53 Then 'ignor Resume Next Else MsgBox Err.Number & vbCrLf & Err.Description End If تم تعديل سبتمبر 19, 2015 بواسطه wael_rafat 1
at_aziz قام بنشر سبتمبر 19, 2015 قام بنشر سبتمبر 19, 2015 بارك الله فيك وجزاك الله خير اخي ابو خليل مثال كنت ابحث عنه من زمان وفقك الله 1
ابوخليل قام بنشر سبتمبر 19, 2015 قام بنشر سبتمبر 19, 2015 وجزاك ربي خيرا اخونا عزيز هذا الكود كامل بالمطلوب ويمكنكم تسمية النسخة واللاحقة بما تريدون اقصد بالنسخة واللاحقة هي اسم قاعد الجداول ولاحقتها : Data.mdb والموجودة بهذه العبارة Shell "cmd.exe /C copy " & """" & DBOld & """" & " " & """" & DBNew & "\" & "Data.mdb" & """", 0 1
محمد سلامة قام بنشر سبتمبر 19, 2015 الكاتب قام بنشر سبتمبر 19, 2015 بارك الله فيك استاذنا العزيز ابو خليل مثالك رائع ولكن ينقصه ان تكون النسخة الاحتياطية بالوقت والتاريخ وان يتم استبدال النسخه القديمة بالنسخه الجديدة فى كل مرة خروج من البرنامج و يكون كمبيوتر او مستخدم معين هو الذي ينفذ النسخ مثل كود الاستاذ جعفر .. ولا اعرف لماذا لا يعمل عندى لو تكرمت استانا ابو خليل تجربة كود الاستاذ جعفر على جهازكم لبيان اذا كان يعمل ام لا شكرا لك وبارك الله فيك وفى اولادك اخى وائل بارك الله فيك استاذنا ابو خليل اتفضل اخي محمد هذا المثال من استاذنا الجميل جعفر ضع الفولدر Prog والذي يحتوي علي الجداول المرتبطة علي الD كما هو .. ثم قم بفتح البرنامج الاساسي AA وقم بالخروج سوف ينشيء فولدر تلقائي باسم BAk علي الD وبه نسخة من الجداول المرتبطة بالتاريخ والوقت للاسف يوجد مشكلة بالموقع عند تحميل الملفات اتفضل هذا الكود لحين استطيع تحميل المرفقات On Error GoTo err_Form_Close 'make a backup of BE BE_or_FE = "D:\prog" Backup_Folder = "D:\BAK" 'Do a copy from a PC name wael ONLY 'If VBA.Environ("Computername") <> "wael" Then Exit Sub 'Delete the old saved accdb Kill Backup_Folder & "\AA_BE_*.accdb" 'Now lets work on saving the new accdb''Is this PC name = jj' ' BE_Address = BE_or_FE & "\AA_BE.accdb" BK_Address = Backup_Folder & "\AA_BE_" & Format(Date, "dd-mm-yyyy") & "-" & Format(Now(), "Hh-Nn-AMPM") & ".accdb*" 'Debug.Print "xcopy " & Chr(34) & BE_Address & Chr(34) & " " & Chr(34) & BK_Address & Chr(34) Call Shell("xcopy " & Chr(34) & BE_Address & Chr(34) & " " & Chr(34) & BK_Address & Chr(34), vbHide) Exit Suberr_Form_Close: If Err.Number = 2450 Or Err.Number = 53 Then 'ignor Resume Next Else MsgBox Err.Number & vbCrLf & Err.Description End If قمت بتجربة هذا الكود واتبعت كل ما ذكرت ولكن لم تفلح النتيجة بشئ فلو تكرمت ممكن مرفق بالبرنامج والجداول المرتبطة به واذا تعذر يمكنك رفعه على موقع خارجي وادراج الرابط هنا لان البرنامج الذي سوف اقوم بالتطبيق عليه يعمل على شبكة داخلية واحتاج كود الاستاذ جعفر حتى اتحكم بمستخدم الكمبيوتر الذي سيقوم بعمل النسخة الاحتياطية بهذه الجملة انظر 'If VBA.Environ("Computername") <> "wael" Then Exit Sub بانتظرك اخى وائل واستاذنا ابو خليل
ابوخليل قام بنشر سبتمبر 19, 2015 قام بنشر سبتمبر 19, 2015 مسألة اننا نحذف النسخة السابقة ونلصق النسخة الجديدة فهي فكرة للحد من تراكم النسخ ولكن ما النتيجة و ماالمخرج من المصيبة حين تأخذ نسخة من قاعدة بيانات معطوبة لتحل محل السابقة السليمة يوجد طريقتين لاخذ الاحتياط من الوقوع بهذا الخطأ الطريقة الاولى : ان تكون النسخة شهرية (اي يتم تسمية النسخة بالسنة والشهر فقط ) وخلال الشهر تتم العملية بالكتابة آليا فوق النسخة فإذا دخل الشهر الجديد يتم وضع نسخة جديدة بجانب نسخة الشهر السابق وهكذا .. نتحصل على 12 نسخة في السنة الواحدة الطريقة الثانية : وهي الافضل على الاطلاق ان يكون هناك عملية تسبق عملية النسخ داخل الاجراء نفسه ومهمتها تحسس مجلد النسخ يتم من خلالها حذف النسخ الزائدة ان وجدت والابقاء على آخر ثلاث نسخ جديدة وبالنسبة لطلبك اظهار التاريخ والوقت في اسم النسخة يمكنك استبدال الجزء الخاص بالنسخ بالكود في مشاركتي الاولى بهذا : Shell "cmd.exe /C copy " & """" & DBOld & """" & " " & """" & _ DBNew & "\" & Format(Now(), "yymmddhhnn") & ".mdb" & """", 0 لاحظ انه يمكنك حذف ما تشاء من تنسيق التاريخ فإن حذفت nn سيتم اخذ نسخة بجانب الاولى بعد دقيقة وان حذفت hh ================= بعد ساعة وان حذفت dd ================= بعد يوم وهكذا ...............
محمد سلامة قام بنشر سبتمبر 19, 2015 الكاتب قام بنشر سبتمبر 19, 2015 الله الله عليك استاذنا ابو خليل يعني افهم من كلامك ان حذفت ال mm وهي الشهر سيتم اخذ نسخه كل شهر تلقائيا. صح كده
ابوخليل قام بنشر سبتمبر 19, 2015 قام بنشر سبتمبر 19, 2015 ليس حذف mm بل الابقاء على mm مع yy وان اردت السنة كاملة مع الشهر : yyyymm وتحذف ما عداها .. كذا يتم الكتابة فوق النسخة الموجودة عند كل ضغطة زر حتى نهاية الشهر وفي بداية الشهر الجديد يتم وضع نسخة جديدة بجانب القديمة والسبب ؟؟ لان اسم القاعدة تغير ارجوا يكون الشرح واضح 1
محمد سلامة قام بنشر سبتمبر 20, 2015 الكاتب قام بنشر سبتمبر 20, 2015 الله الله عليك استاذنا ابوخليل تمام شغاله تمام جدا بارك الله فيك خطر ببالي فكرة جديد لتطوير اداه معاينة لهذا الامر حتي يستفيد منها جميع الاعضاء. واستسمحك هل اكمل الموضوع هنا في هذه المشاركة ام اقوم بفتح موضوع جديد شكرا لحضرتك جدا
ابوخليل قام بنشر سبتمبر 20, 2015 قام بنشر سبتمبر 20, 2015 اثراء المنتدى بعناوين جديدة افضل لاشك بارك الله فيك 1
jjafferr قام بنشر فبراير 27, 2016 قام بنشر فبراير 27, 2016 10 ساعات مضت, محمد سلامة said: تم تكملة الموضوع في هذا الرابط . وهنا بداية جديدة للمرحلة التالية ، ونريد افكارك كذلك : http://www.officena.net/ib/topic/67564-علاج-تراكم-عدد-النسخ-الاحتياطي/ جعفر 1
الردود الموصى بها
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.