يرجى مساعدتي بانشاء نسخة احتياطية لقاعدة بيانات موجودة على الشبكة
علما ان مسار الملف
\\backupsrv\new\db1
اي ﻻ يوجد محرك اقرص مثل d ااو c
ولكم جزيل الشكر
يرجى مساعدتي بانشاء نسخة احتياطية لقاعدة بيانات موجودة على الشبكة
علما ان مسار الملف
\\backupsrv\new\db1
اي ﻻ يوجد محرك اقرص مثل d ااو c
ولكم جزيل الشكر
من يعرف ان يعمل حسنا و لا يعمل فذلك خطية له.(يعقوب 4: 17)
اشكرك اخي very على المشارمة المفيدة
ولكن اريد المساعدة في تحديد مسار قاعدة البيانات
ﻻن عند الضغط ع خصائص قاعدة البيانات
يعطيني مسار دون قرص
\\backupsrv\new\db1
يرجى المساعدة
اين الخبراء
مافي ردود
السلام عليكم
استخدم كود النسخ التالي:
FileCopy "Source File", "Destination Direct"
مثال علي الكود "مع تغيير المسارات":
FileCopy "\\192.168.1.1\common\AAA.xlsx", "D:\Profiles\BBB.xlsx"
تقدر تحط الكود في اي حدث
برجاء العلم إذا كان الملف قيد التشغيل لن يعمل كود النسخ.
كمان في أمثلة كتير أتقدمت في المنتدي بخصوص موضوع نسخ قاعدة البيانات ... أستخدام البحث
بالتوفيق
تم تعديل هذه المشاركة بواسطة Hisham_wz في 4 فبراير 2014 في 12:45
جزاك الله كل خير اخي هشام
انا عامل ارتباط بقاعدة البيانات المراد عمل نسخة احتياطية لها
هل توجد تعليمة لنسخ القاعدة المرتبط بها
بدل تحديد المسار
اي اني احتاج نسخة للبيانات
السلام عليكم
أخري الكريم
قمت بعمل مثال لك يقوم بالاستعلام من داخل قاعدة البيانات عن الجدوال المرتبطة ثم يقوم بانشاء جدوال مؤقتة جديدة بنفس الاسماء والحقول والبيانات ثم يقوم بتصدير هذه الجدوال الي قاعدة بيانات محددة مقدما ثم يقوم بحذف كل الملفات المؤقتة مرة أخري
كل ما هو مطلوب منك ان تقوم بربط جداول داخل قاعدة البيانات المرفقة في المثال ثم تقوم بتحديد الملف الذي تريد نسخ الجدوال اليه (قاعدة بيانات النسخ الاحتياطي) ثم تقوم بتشغيل الكود
تسطتيع تحديد المسار الذي تريد نقل الجدوال اليه بشكل دائم من خلال القيمة الافتراضية لمربع النص نفسه .. كذلك يمكنك تغيره من خلال زر الاستعراض
الكود كامل مع الشرح :
' إذا وجد أنك لم تحدد مسار الحفظ يخرج من الحدث
If IsNull([TxtFilename]) Then
MsgBox "أنت لم تحدد مسار القاعدة المراد نسخ الجدوال بها", vbInformation
Exit Sub
End If
Dim 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مرفق قاعدة البيانات التي بها المثال كامل
بالتوفيق
اشكرك اخي هشام على الاجابة المفصله والمثال المرفق
وجعله الله في ميزان حسناتك
هذا الموضوع مغلق.
المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية
جارٍ التحقق من المتواجدين…