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

الكود DoCmd.CopyObject "", "OOO", acTable, "XXX"


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

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

قام بنشر

السلام عليكم ورحمة الله وبركاته 

الاخوة الاعزاء حياكم الله

عندي هذا الكود ينسخ جدول من نفس قاعدة البيانات ( DoCmd.CopyObject "", "OOO", acTable, "XXX" ) والذي اريده نسخ جدول من قاعدة بيانات اخرى او بمعنا اصح قاعدة بيانات مقسمة كيف اعمل ذلك بالكود المذكور مع العلم ان الكود يطلب مني وضع اسم قاعدة البيانات المطلوبة فلم اعرف كيف افتونا جزاكم الله خير .

ملاحظة / ممكن ان تكون قاعدة البيانات للجداول بكلمة مرور فكيف يكون العمل في هذه الحالة .

قاعدة بيانات مقسمة.rar

قام بنشر

وعليكم السلام ورحمة الله وبركاته .. 🙂 

1- هل تريد نسخ الجدول كجدول كامل لأنه غير موجود في القاعدة المستهدفة ؟ 

2- أم أنك تريد نقل البيانات فقط ؟

في الأولى يمكنك نقل (نسخ) الجدول من قاعدة بيانات إلى أخرى عن طريق الكود التالي :

Sub CopyTable()
    Dim sourceDB As DAO.Database
    Dim destinationDB As DAO.Database
    Dim sourceTable As DAO.TableDef
    Dim destinationTable As DAO.TableDef
    
    ' افتح قاعدة البيانات المصدر
    Set sourceDB = OpenDatabase("مسار قاعدة البيانات المصدر.accdb")
    
    ' افتح قاعدة البيانات الهدف
    Set destinationDB = OpenDatabase("مسار قاعدة البيانات الهدف.accdb")
    
    ' حدد الجدول المصدر الذي ترغب في نسخه
    Set sourceTable = sourceDB.TableDefs("اسم الجدول المصدر")
    
    ' إنشاء جدول في قاعدة البيانات الهدف بنفس التركيبة
    Set destinationTable = destinationDB.CreateTableDef("اسم الجدول الهدف")
    For Each fld In sourceTable.Fields
        destinationTable.Fields.Append destinationTable.CreateField(fld.Name, fld.Type, fld.Size)
    Next fld
    
    ' إضافة الجدول الجديد إلى قاعدة البيانات الهدف
    destinationDB.TableDefs.Append destinationTable
    
    ' نسخ بيانات الجدول
    destinationDB.Execute "INSERT INTO [اسم الجدول الهدف] SELECT * FROM [اسم الجدول المصدر]"
    
    ' أغلق قواعد البيانات
    sourceDB.Close
    destinationDB.Close
    
    ' تحرير الذاكرة
    Set sourceTable = Nothing
    Set destinationTable = Nothing
    Set sourceDB = Nothing
    Set destinationDB = Nothing
    
    MsgBox "تم النسخ بنجاح!"
End Sub

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

 

  • Like 1
  • Thanks 1
قام بنشر

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

DoCmd.CopyObject "", "OOO", acTable, "XXX"

  • أفضل إجابة
قام بنشر (معدل)

مسار قاعدة البيانات المنسوخ منها مثلاً ("C:\Users\DbName.accdb").:fff:

 

 

استاذ موسي 

6 دقائق مضت, Moosak said:

مرجع التعليمات من مايكروسوفت :

https://learn.microsoft.com/en-us/office/vba/api/access.docmd.copyobject

هذا للنسخ من نفس القاعدة

تم تعديل بواسطه kkhalifa1960
  • Thanks 1

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