اذهب الي المحتوي
أوفيسنا

تعديل كود لإجراء نسخة احتياطية لبرنامج اكسس مرتبط بأكثر من قاعدة بيانات


kassem_geo
إذهب إلى أفضل إجابة Solved by Moosak,

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

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

Public Sub Backupme()

On Error GoTo MyErr

Dim OldFile, NewFile, CopyMyDB, wheretoBackup, BackupFolder, DBName As String

    If IsNull(DFirst("database", "msysobjects", "[Database]<> '""'")) Then
        OldFile = CurrentProject.FullName
        wheretoBackup = CurrentProject.Path
    Else
        OldFile = DFirst("database", "msysobjects", "[Database]<> '""'")
        wheretoBackup = Left(OldFile, InStrRev(OldFile, "\"))
    End If

    BackupFolder = wheretoBackup & "\Backup"

On Error Resume Next
If Len(Dir(BackupFolder)) = 0 Then
    MkDir BackupFolder
    Else
    End If
On Error GoTo MyErr

    DBName = Left(CurrentProject.Name, InStrRev(CurrentProject.Name, ".") - 1)

NewFile = wheretoBackup & "\Backup\" & DBName & "-Backup-" & Format(Date, "dd-mm-yyyy") & "-" & Format(Now(), "Hh-Nn-ss-AMPM.") & Right(OldFile, 5)
CopyMyDB = "cmd.exe /C copy " & """" & OldFile & """" & " " & """" & NewFile & """"
Shell CopyMyDB, 0


MsgBox "Backup........Done" & vbNewLine & vbNewLine & "Saved in :" & vbNewLine & NewFile, , " "

MyErr:
If Err.Number <> 0 Then
MsgBox Err.Number & " - " & Err.Description
End If

End Sub


 لو كان البرنامج متصل بأكثر من قاعدة بيانات   database & database1 & database3
 بحيث كل قاعدة منفصلة عن الاخرى بجداولها واريد ان تكون النسخ الاحتياطية ايضا منفصلة
مع الإشارة بان قواعد البيانات الثلاث موجودة بنفس الفولدر folder وسنضعهم مع بعض في ملف Backup كل على حدا

كيف سيكون الكود؟؟؟؟

على أمل الاستفادة للجميع

 

 

تم تعديل بواسطه kassem_geo
استعمال <> من القائمة ، ثم وضع الكود في نافذته
رابط هذا التعليق
شارك

  • أفضل إجابة

السلام عليكم أخي قاسم 🙂 

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

 

الفكرة تتلخص في كود يحضر لك جميع مسارات القواعد الخلفية BE ويخزنها في متغير من نوع Collection وبدون تكرار .. ثم في حلقة Loop يقوم بإرسال مسارات أو روابط هذه القواعد إلى كود النسخ الإحتياطي Backup ليقوم بحفظ نسخة إحتياطية من القاعدة الخلفية بنفس المسمى + التاريخ والوقت .. يحفظها في مجلد Backup بجانب قاعدة البيانات .

 

في الملف المرفق ستجدون 3 ملفات ( الواجهة : My_App_FE.accdb و القواعد الخلفية : BE_1.accdb و BE_2.accdb )

image.png.04c0709517847e0b561d68ca7a8485d8.png

(ملاحظة : لن تحتاج لإعادة ربط الواجهة بالقواعد الخلفية ، فقد جعلتها ترتبط تلقائيا عند الفتح ) 🙂 

سيفتح لك النموذج واضغط على حفظ وشاهد النتيجة 🙂 

image.png.11489051d2f119297c0bcd796e8f317c.png

إنشاء مجلد الباكب تلقائيا :

image.png.07b7bf3b5f91d9bbf70889665cac583b.png

النسخ الإحتياطية :

image.png.d26f4c1f4c8a4b46ed46a3d4599780b3.png

وهذا هو المرفق: 🙂 

Backup Mor Than One BE.zip

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

السلام عليكم 🙂

 

اخبرتك المرة السابقة:

21 ساعات مضت, jjafferr said:

انزلت مرفقك وما اشتغل !!

 

20 ساعات مضت, jjafferr said:

فيه Combobox ما موجود في النموذج 

 

وبمرفقك الجديد حصلت على نفس المشكلة:

image.png.2f0df3ba7f23aa975b6661864513c63b.png

.

وبالدخول في الكود وعمل Compile:

image.png

.

هذا الكائن Combobox غير موجود في النموذج

image.png.7360bb71a8239903aeef83589b103ac5.png

.

جعفر

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

من فضلك سجل دخول لتتمكن من التعليق

ستتمكن من اضافه تعليقات بعد التسجيل



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

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

Important Information