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

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


إذهب إلى أفضل إجابة Solved by Ibrahim IQ,

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

رمضان كريم اعاده الله علينا وعليكم والامة الاسلامية بالخير والبركة

السلام عليكم 

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

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

وشكرا

copy tables only.rar

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

السلام عليكم استاذ ابوخليل

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

وان تلك الطرق لاتخدمني في عملي في بعض البرامج التي تتعامل مع قواعد البيانات .

اما الطريقة الموجوده في الملف المرفق من قبلي اعلاه .

فهي افضل الطرق والتي تخدمني في عملي ولكنها تعمل نسخه كاملة من قاعدة البيانات .

المطلوب هو التصحيح على الكود لتكون عملية النسخ للجداول فقط .

وشكرا

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

بعد اذن الاستاذ ابو خليل

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

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

19 دقائق مضت, النهر العطشان said:

استاذي الفاضل احتاج نسخه من الجداول مع العلاقات

استأذن من استاذنا @ابوخليل و @رمهان

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

الصق هذا في وحدة نمطية

Option Compare Database
Private Declare Function MakeSureDirectoryPathExists Lib "imagehlp.dll" (ByVal lpPath As String) As Long

Public Function ExportNew(myfile As String)
' إنشاء  ملف جديد
Dim wrkDefault As Workspace
Dim dbsNew As Database
Dim mydb
On Error GoTo gv
mydb = Dir(myfile)
If mydb = "" Then
Set wrkDefault = DBEngine.Workspaces(0)
Set dbsNew = wrkDefault.CreateDatabase(myfile, dbLangArabic)
Call exportTbl(myfile)
GoTo gv1
Else
Call exportTbl(myfile)
GoTo gv1
End If
gv:
Resume
gv1:
End Function

Public Function exportTbl(myfile As String)
 'تصدير  نسخة لجميع الجداول الموجودة'
 Dim tdfCurr As TableDef
 Dim strBackupDatabase As String
 strBackupDatabase = myfile
 For Each tdfCurr In CurrentDb().TableDefs
 If (tdfCurr.Attributes And dbSystemObject) = 0 Then
 DoCmd.TransferDatabase acExport, "Microsoft Access", _
 strBackupDatabase, acTable, tdfCurr.Name, _
 tdfCurr.Name
    End If
   Next tdfCurr
End Function
Function ExportRelations(DbName, DbName2 As String) As Integer
'الحاق العلاقات بالجداول المنسوخة
Dim ThisDb As dao.Database, ThatDB As dao.Database
Dim ThisRel As dao.Relation, ThatRel As dao.Relation
Dim ThisField As dao.Field, ThatField As dao.Field
Dim Cr As String, i As Integer, cnt As Integer, RCount As Integer
Dim j As Integer
Dim ErrBadField As Integer
Cr$ = Chr$(13)
RCount = 0
Set ThisDb = DBEngine.Workspaces(0).OpenDatabase(DbName2)
Set ThatDB = DBEngine.Workspaces(0).OpenDatabase(DbName)
For i = 0 To ThatDB.Relations.Count - 1
   Set ThatRel = ThatDB.Relations(i)
     Set ThisRel = ThisDb.CreateRelation(ThatRel.Name, _
      ThatRel.Table, ThatRel.ForeignTable, ThatRel.Attributes)
    ErrBadField = False
     For j = 0 To ThatRel.Fields.Count - 1
      Set ThatField = ThatRel.Fields(j)
         Set ThisField = ThisRel.CreateField(ThatField.Name)
      ThisField.ForeignName = ThatField.ForeignName
       On Error Resume Next
      ThisRel.Fields.Append ThisField
      If Err <> False Then ErrBadField = True
      On Error GoTo 0
   Next j
   If ErrBadField = True Then
         Else
           On Error Resume Next
      ThisDb.Relations.Append ThisRel
      If Err <> False Then
              Else
                 RCount = RCount + 1
      End If
      On Error GoTo 0
   End If
Next i
ThisDb.Close
ThatDB.Close
ExportRelations = RCount
End Function


Public Sub autobackup()
Dim datefile As Date
Dim timefile As Date
Dim pro As String

datefile = Date
timefile = Time

pro = Mid(CurrentProject.Name, 1, (Len(CurrentProject.Name) - 4)) & "   " & _
Format(datefile, "yyyy-mm-dd") & "   " & Format(timefile, "hh-nn-ss")

Path = "D:\Backup\"
x = Path
Select Case x
End Select
    
MakeSureDirectoryPathExists Path & "\"

Call ExportNew(x & "\" & pro & ".dat")
Call ExportRelations(CurrentProject.FullName, x & "\" & pro & ".dat")

MsgBox "تم انشاء نسخة احتياطية بشكل آلي بنجاح في المسار" & vbCrLf & "D:\Backup\", vbInformation

End Sub

وفي نموذج خلف زر اكتب هذا

Call autobackup

 

تم تعديل بواسطه Shivan Rekany
  • Like 4
رابط هذا التعليق
شارك

السلام عليكم

استاذي الفاضل الكود الذي تفضلت بكتابته لايتوافق مع مطلبي واشكر سعيك بما تفضلت به فهو يقوم بعمل Backup_tables.

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

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

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

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

واتمنى التعديل على الملف المرفق والذي عند الضغط على زر (نسخه من الجداول فقط) ليعمل نسخه من الجداول فقط .

وشكرا

copy tables only.rar

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

9 ساعات مضت, النهر العطشان said:

 

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

 

 كل الحلول اعلاه لعمل نسخة من قاعدة الجداول فقط

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

رمضان كريم 

السلام عليكم

الى الاساتذه الكرام والى القيمين على هذا الموقع المحترمين .

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

طلبي واضح وهو التعديل على نفس الكود ليقوم عند الضغط على رز (نسخه من الجداول فقط) يقوم بعمل نسخه للجداول فقط .

واكون شاكرا لمن لبى طلبي

copy tables only.rar

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

في 5/28/2017 at 22:48, Shivan Rekany said:

استأذن من استاذنا @ابوخليل و @رمهان

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

الصق هذا في وحدة نمطية


Option Compare Database
Private Declare Function MakeSureDirectoryPathExists Lib "imagehlp.dll" (ByVal lpPath As String) As Long

Public Function ExportNew(myfile As String)
' إنشاء  ملف جديد
Dim wrkDefault As Workspace
Dim dbsNew As Database
Dim mydb
On Error GoTo gv
mydb = Dir(myfile)
If mydb = "" Then
Set wrkDefault = DBEngine.Workspaces(0)
Set dbsNew = wrkDefault.CreateDatabase(myfile, dbLangArabic)
Call exportTbl(myfile)
GoTo gv1
Else
Call exportTbl(myfile)
GoTo gv1
End If
gv:
Resume
gv1:
End Function

Public Function exportTbl(myfile As String)
 'تصدير  نسخة لجميع الجداول الموجودة'
 Dim tdfCurr As TableDef
 Dim strBackupDatabase As String
 strBackupDatabase = myfile
 For Each tdfCurr In CurrentDb().TableDefs
 If (tdfCurr.Attributes And dbSystemObject) = 0 Then
 DoCmd.TransferDatabase acExport, "Microsoft Access", _
 strBackupDatabase, acTable, tdfCurr.Name, _
 tdfCurr.Name
    End If
   Next tdfCurr
End Function
Function ExportRelations(DbName, DbName2 As String) As Integer
'الحاق العلاقات بالجداول المنسوخة
Dim ThisDb As dao.Database, ThatDB As dao.Database
Dim ThisRel As dao.Relation, ThatRel As dao.Relation
Dim ThisField As dao.Field, ThatField As dao.Field
Dim Cr As String, i As Integer, cnt As Integer, RCount As Integer
Dim j As Integer
Dim ErrBadField As Integer
Cr$ = Chr$(13)
RCount = 0
Set ThisDb = DBEngine.Workspaces(0).OpenDatabase(DbName2)
Set ThatDB = DBEngine.Workspaces(0).OpenDatabase(DbName)
For i = 0 To ThatDB.Relations.Count - 1
   Set ThatRel = ThatDB.Relations(i)
     Set ThisRel = ThisDb.CreateRelation(ThatRel.Name, _
      ThatRel.Table, ThatRel.ForeignTable, ThatRel.Attributes)
    ErrBadField = False
     For j = 0 To ThatRel.Fields.Count - 1
      Set ThatField = ThatRel.Fields(j)
         Set ThisField = ThisRel.CreateField(ThatField.Name)
      ThisField.ForeignName = ThatField.ForeignName
       On Error Resume Next
      ThisRel.Fields.Append ThisField
      If Err <> False Then ErrBadField = True
      On Error GoTo 0
   Next j
   If ErrBadField = True Then
         Else
           On Error Resume Next
      ThisDb.Relations.Append ThisRel
      If Err <> False Then
              Else
                 RCount = RCount + 1
      End If
      On Error GoTo 0
   End If
Next i
ThisDb.Close
ThatDB.Close
ExportRelations = RCount
End Function


Public Sub autobackup()
Dim datefile As Date
Dim timefile As Date
Dim pro As String

datefile = Date
timefile = Time

pro = Mid(CurrentProject.Name, 1, (Len(CurrentProject.Name) - 4)) & "   " & _
Format(datefile, "yyyy-mm-dd") & "   " & Format(timefile, "hh-nn-ss")

Path = "D:\Backup\"
x = Path
Select Case x
End Select
    
MakeSureDirectoryPathExists Path & "\"

Call ExportNew(x & "\" & pro & ".dat")
Call ExportRelations(CurrentProject.FullName, x & "\" & pro & ".dat")

MsgBox "تم انشاء نسخة احتياطية بشكل آلي بنجاح في المسار" & vbCrLf & "D:\Backup\", vbInformation

End Sub

وفي نموذج خلف زر اكتب هذا


Call autobackup

 

شكرا استاذ شفان وهذا عمل رائع .... وماذا عن استرجاع الجداول ؟؟؟

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

رمضان كريم

شكرا استاذ Rebaz Bahram على سرعة الاجابة

استاذي انا لا احتاج الى نسخه backup للجداول .

انا احتاج الى نسخه من قاعدة البيانات حقيقية للجداول تعمل بصورة منفصله عن القاعدة الاصليه تحتوي على الجداول فقط .

واتمنى ان يتم التعديل على النسخه المرفوعه من قبلي .

وشكرا

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

منذ ساعه, النهر العطشان said:

انا احتاج الى نسخه من قاعدة البيانات حقيقية للجداول تعمل بصورة منفصله عن القاعدة الاصليه تحتوي على الجداول فقط .

اخي العزيز
كل الطرق الاعلاه بيوصلك الى مطلبك

ما عليك الا ان تفتحه بواسطة اكسس
للتجربة افتح برامج اكسس

واختر اوبين وبعدين اختر ذاك الملف اللي بيعطيك نتيجة باك اب 

او اضغط كليك يمين على تلك الملف اللي وصات اليه بواسطة باك اب

واختر فتح بواسطة

بعدين اختر اخرى

سيفتح لك النافذة

بعدين اختار بواسطة اكسس

 

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

 غريب جدا الحلول كلها امامك

يمكن انك لم تطرح سؤالك بالطريقة المناسبة الصحيحة

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

 

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

السلام عليكم

شكرا استاذ Rebaz Bahram على اهتمامكل واجابتك .

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

1111111.JPG

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

2 ساعات مضت, النهر العطشان said:

السلام عليكم

شكرا استاذ Rebaz Bahram على اهتمامكل واجابتك .

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

1111111.JPG

 

جرب هذا اتمنى ليس لديها المشكلة ... تحياتى

Rebaz Backup.accdb.rar

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

السلام عليكم رمضان كريم

استاذي الفاضل لقد تمت تجربة الملف المرفق من قبلكم مشكورا عليه .

ولكن هنالك امران :

1- اين يتم تغيير اسماء الجداول في الكود ليعمل الكود في برامج اخرى .

2- هذه الطريقة لاتخدم العلاقات في الجداول .

وشكرا

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

  • أفضل إجابة
21 دقائق مضت, النهر العطشان said:

السلام عليكم رمضان كريم

استاذي الفاضل لقد تمت تجربة الملف المرفق من قبلكم مشكورا عليه .

ولكن هنالك امران :

1- اين يتم تغيير اسماء الجداول في الكود ليعمل الكود في برامج اخرى .

2- هذه الطريقة لاتخدم العلاقات في الجداول .

وشكرا

وعليكم السلام اخي الكريم 

بالنسبة للمرفق الثاني

1- لا حاجة لتغير اسماء الجداول في الاكواد ولكن يحتاج ان اكتب اسماء الجداول في الجدول (OptNaskh) وبعد كل اسم اكتب علامة ; 

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

2- هذه الطريقة سيحذف كل العلاقان و يصنعه بنفسه تلقائيا كما كان سابقا .

تحياتى لك

Untitled.jpg

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

في ٢٨‏/٥‏/٢٠١٧ at 14:48, Shivan Rekany said:

استأذن من استاذنا @ابوخليل و @رمهان

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

الصق هذا في وحدة نمطية


Option Compare Database
Private Declare Function MakeSureDirectoryPathExists Lib "imagehlp.dll" (ByVal lpPath As String) As Long

Public Function ExportNew(myfile As String)
' إنشاء  ملف جديد
Dim wrkDefault As Workspace
Dim dbsNew As Database
Dim mydb
On Error GoTo gv
mydb = Dir(myfile)
If mydb = "" Then
Set wrkDefault = DBEngine.Workspaces(0)
Set dbsNew = wrkDefault.CreateDatabase(myfile, dbLangArabic)
Call exportTbl(myfile)
GoTo gv1
Else
Call exportTbl(myfile)
GoTo gv1
End If
gv:
Resume
gv1:
End Function

Public Function exportTbl(myfile As String)
 'تصدير  نسخة لجميع الجداول الموجودة'
 Dim tdfCurr As TableDef
 Dim strBackupDatabase As String
 strBackupDatabase = myfile
 For Each tdfCurr In CurrentDb().TableDefs
 If (tdfCurr.Attributes And dbSystemObject) = 0 Then
 DoCmd.TransferDatabase acExport, "Microsoft Access", _
 strBackupDatabase, acTable, tdfCurr.Name, _
 tdfCurr.Name
    End If
   Next tdfCurr
End Function
Function ExportRelations(DbName, DbName2 As String) As Integer
'الحاق العلاقات بالجداول المنسوخة
Dim ThisDb As dao.Database, ThatDB As dao.Database
Dim ThisRel As dao.Relation, ThatRel As dao.Relation
Dim ThisField As dao.Field, ThatField As dao.Field
Dim Cr As String, i As Integer, cnt As Integer, RCount As Integer
Dim j As Integer
Dim ErrBadField As Integer
Cr$ = Chr$(13)
RCount = 0
Set ThisDb = DBEngine.Workspaces(0).OpenDatabase(DbName2)
Set ThatDB = DBEngine.Workspaces(0).OpenDatabase(DbName)
For i = 0 To ThatDB.Relations.Count - 1
   Set ThatRel = ThatDB.Relations(i)
     Set ThisRel = ThisDb.CreateRelation(ThatRel.Name, _
      ThatRel.Table, ThatRel.ForeignTable, ThatRel.Attributes)
    ErrBadField = False
     For j = 0 To ThatRel.Fields.Count - 1
      Set ThatField = ThatRel.Fields(j)
         Set ThisField = ThisRel.CreateField(ThatField.Name)
      ThisField.ForeignName = ThatField.ForeignName
       On Error Resume Next
      ThisRel.Fields.Append ThisField
      If Err <> False Then ErrBadField = True
      On Error GoTo 0
   Next j
   If ErrBadField = True Then
         Else
           On Error Resume Next
      ThisDb.Relations.Append ThisRel
      If Err <> False Then
              Else
                 RCount = RCount + 1
      End If
      On Error GoTo 0
   End If
Next i
ThisDb.Close
ThatDB.Close
ExportRelations = RCount
End Function


Public Sub autobackup()
Dim datefile As Date
Dim timefile As Date
Dim pro As String

datefile = Date
timefile = Time

pro = Mid(CurrentProject.Name, 1, (Len(CurrentProject.Name) - 4)) & "   " & _
Format(datefile, "yyyy-mm-dd") & "   " & Format(timefile, "hh-nn-ss")

Path = "D:\Backup\"
x = Path
Select Case x
End Select
    
MakeSureDirectoryPathExists Path & "\"

Call ExportNew(x & "\" & pro & ".dat")
Call ExportRelations(CurrentProject.FullName, x & "\" & pro & ".dat")

MsgBox "تم انشاء نسخة احتياطية بشكل آلي بنجاح في المسار" & vbCrLf & "D:\Backup\", vbInformation

End Sub

وفي نموذج خلف زر اكتب هذا


Call autobackup

 

 

ماذا عن استيراد هذه الجداول auto restore

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

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