• 0
ebraheem-w

نسخة احتياطية لقاعدة بيانات على الشبكة

سؤال

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

علما ان مسار الملف

\\backupsrv\new\db1

اي ﻻ يوجد محرك اقرص مثل d ااو c

ولكم جزيل الشكر

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

9 إجابة على هذا السؤال .

  • 0

السلام عليكم

 

 

أخري الكريم

 

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

 

كل ما هو مطلوب منك ان تقوم بربط جداول داخل قاعدة البيانات المرفقة في المثال ثم تقوم بتحديد الملف الذي تريد نسخ الجدوال اليه (قاعدة بيانات النسخ الاحتياطي) ثم تقوم بتشغيل الكود

 

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

 

الكود كامل مع الشرح :

'  إذا وجد أنك لم تحدد مسار الحفظ يخرج من الحدثIf IsNull([TxtFilename]) ThenMsgBox "أنت لم تحدد مسار القاعدة المراد نسخ الجدوال بها", vbInformationExit SubEnd IfDim CountOFTablesNames As Integer   '  لمعرفة عدد الجدوال المرتبطة داخل قاعدة البياناتDim StartWhileFrom As Long '   متغير يحمل قيمة رقم بداية اللوب منهDim EndWhileFrom As Long  '  متغير يحمل قيمة رقم لنهاية اللوب' للاستفسار عن عدد الجدوال المرتبطة داخل قاعدة البيانات حتي نقوم بتشغيل الكود او الخروج منهCountOFTablesNames = Nz(DCount("Name", "MSysObjects", "(((Left([Name],1))<>'~') AND ((Left([Name],4))<>'MSys') AND ((MSysObjects.Type) In (1,4,6)) AND ((MSysObjects.Database) Is Not Null) AND ((Right([ForeignName],3))<>'txt'))"), 0)    ' يتم تشغيل الكود في حالة انه يوجد جدوال مرتبطة داخل قاعدة البيانات    '  اذا وجد ان عدد الجدوال المرتبطة اكبر من الصفر يبدا في تشغيل الكود    If CountOFTablesNames > 0 Then                            On Error Resume Next   '  اذا وجد خطئ يتخطي الخطأ                DoCmd.RunSQL "DROP TABLE TempLinkedTablesNames" '     يقوم هنا بحذف جدول مؤقت يتم انشائه لكتابة اسماء الجدول المرتبطة به                On Error GoTo 0    '  لتشغيل اذا وجد خطا يظهر الخطا                'نقوم بانشاء جدول مؤقت لكتابة اسماء الجدول المرتبطة به                DoCmd.RunSQL "CREATE TABLE TempLinkedTablesNames (auto_no AUTOINCREMENT,TableName VARCHAR(255),CONSTRAINT RegA_PK PRIMARY KEY(auto_no))"                '  نقوم هنا بادراج اسماء الجدول المرتبطة بالجدول المؤقت                    DoCmd.SetWarnings False                DoCmd.RunSQL "INSERT INTO TempLinkedTablesNames ( TableName ) SELECT MSysObjects.Name AS table_name FROM MSysObjects WHERE (((Left([Name],1))<>'~') AND ((Left([Name],4))<>'MSys') AND ((MSysObjects.Type) In (1,4,6)) AND ((MSysObjects.Database) Is Not Null) AND ((Right([ForeignName],3))<>'txt'));"                    DoCmd.SetWarnings True                ' نقوم بالاستعلام عن اكبر قيمة داخل الجدول المؤقت لكي نسطتيع ايقاف اللوب عندها                StartWhileFrom = 1                EndWhileFrom = DMax("auto_no", "TempLinkedTablesNames")                Dim SelectTableName As String   '  متغير يقوم بحمل قيمة اسم الجدول المراد العمل عليه                                                                   ' طول ما قيمة عدد الجدوال اكبر من قيمة البداية يستمر في عمل اللوب                                While EndWhileFrom >= StartWhileFrom                                                                      DoCmd.SetWarnings False   '  نوقف تحذيرات نقل البيانات                                                                             '  نقوم هنا بالاستعلام عن قيمة أول اسم جدول حتي نقوم بترحيل الجدول الي القاعدة المحددة مقدما                                         SelectTableName = DLookup("TableName", "TempLinkedTablesNames", "auto_no=" & StartWhileFrom)                                                                                  ' نقوم هنا بانشاء جدول جديد بنفس خصائص وقيم حقول الجدول المرتبط                                         DoCmd.RunSQL "SELECT " & SelectTableName & ".* INTO xxx_" & SelectTableName & " FROM " & SelectTableName & "; "                                             'نقوم هنا بتصدير الجدول الذي قمنا بانشائه الي قاعدة البيانات المحددة                                         DoCmd.TransferDatabase acExport, "Microsoft Access", Me.TxtFilename, acTable, "xxx_" & SelectTableName, SelectTableName, False                                           '  نقوم هنا بحذف الجدول الذي قمنا بانشائه                                         DoCmd.RunSQL "DROP TABLE " & "xxx_" & SelectTableName                                          'نقوم باضافة قيمة واحد لكي نستطيع التنقل الي الجدول التالي                                         StartWhileFrom = StartWhileFrom + 1  '  نقوم باضافة قيمة واحد للقيمة حتي المرة القادمة ننتقل للسجل التالي                                                                          DoCmd.SetWarnings True   '  نقوم بتشغيل تحذيرات نقل البيانات مرة اخري                                                                 Wend                                                                MsgBox "تم نسخ الجدوال المرتبطة بنجاح", vbInformation                            Else                            MsgBox "لا يوجد جدوال مرتبطة داخل قاعدة البيانات", vbInformation    End If    

مرفق قاعدة البيانات التي بها المثال كامل

 

Backup Linked Tables.rar

 

 

 

 

بالتوفيق

1

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

اشكرك اخي very على المشارمة المفيدة

ولكن اريد المساعدة في تحديد مسار قاعدة البيانات

ﻻن عند الضغط ع خصائص قاعدة البيانات

يعطيني مسار دون قرص

\\backupsrv\new\db1

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

السلام عليكم

 

استخدم كود النسخ التالي:

FileCopy "Source File", "Destination Direct"

 مثال علي الكود "مع تغيير المسارات":

FileCopy "\\192.168.1.1\common\AAA.xlsx", "D:\Profiles\BBB.xlsx"

تقدر تحط الكود في اي حدث

 

برجاء العلم إذا كان الملف قيد التشغيل لن يعمل كود النسخ.

 

 كمان في أمثلة كتير أتقدمت في المنتدي بخصوص موضوع نسخ قاعدة البيانات ... أستخدام البحث

 

 

بالتوفيق

تم تعديل بواسطه Hisham_wz
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

جزاك الله كل خير اخي هشام

انا عامل ارتباط بقاعدة البيانات المراد عمل نسخة احتياطية لها

هل توجد تعليمة لنسخ القاعدة المرتبط بها

بدل تحديد المسار

اي اني احتاج نسخة للبيانات

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

اشكرك اخي هشام على الاجابة المفصله والمثال المرفق

وجعله الله في ميزان حسناتك

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
زوار
This topic is now closed to further replies.

  • يستعرض القسم حالياً   0 members

    لا يوجد أعضاء مسجلين يشاهدون هذه الصفحة .