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

اضافة جميع حقول جدول الى جدول اخر دفعة واحدة بواسطة DAO.Recordset


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

السلام عليكم

اساتذتي الكرام

كيف يمكن استعمال هذا الكود ليضيف جميع حقول الجدول table1 hg الى الجدول table2 دفعة واحدة 

مثل استعمال مود الاحاق باستخدام (*) 

 Dim rstFrom As DAO.Recordset
    Dim rstTo As DAO.Recordset
    Dim StrSql2 As String
    
    Set rstTo = CurrentDb.OpenRecordset("Select * From table2")
    
    Set rstFrom = CurrentDb.OpenRecordset("Select * From table1")

    rstFrom.MoveLast: rstFrom.MoveFirst
    
      RC = rstFrom.RecordCount
    
      For i = 1 To RC
          rstTo.AddNew
           rstTo!codhesab = rstFrom!codhesab
       
          rstTo.Update
          rstFrom.MoveNext
      Next i
 Set rstTo = Nothing
Set rstFrom = Nothing
    
    MsgBox "Done"

وبارك الله فيكم وفي علمكم

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

تفضل ....

Dim db As DAO.Database
Dim rstFrom As Recordset
Dim rstTo As Recordset
Set db = CurrentDb
Dim RC, i As Integer
Set rstTo = db.OpenRecordset("table2", dbOpenDynaset)
Set rstFrom = db.OpenRecordset("table1", dbOpenDynaset)
RC = rstFrom.RecordCount
rstFrom.MoveFirst
  For i = 1 To RC
    rs.AddNew
         rstTo!codhesab = rstFrom!codhesab
    rs.Update
rstFrom.MoveNext
  Next i
rstTo.Close
rstFrom.Close
Set rstTo = Nothing
Set rstFrom = Nothing

Set db = Nothing

 

تم تعديل بواسطه kanory
  • Like 3
رابط هذا التعليق
شارك

اشكرك استاذي العزيز @kanory 

لاكن اولا هذا الكود يضيف سجل واحد فقط

ثانيا يضيف الحقل codhesab فقط 

وما اريده اذا كان الجدول الاول يحتوي على عشرين حقل مثلا فسيكون تسجيل جميع الحقول في الكود امر متعب قليلا

وبما ان الجدول الثاني يحمل نفس حقول الجدول الاول 

فانا اريد الكود يضيف الحقول دفعة واحدة 

وبنفس عدد السجلات كاملة

ارجو ان اكود اوصلت سؤالي بالشكل المطلوب

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

1 ساعه مضت, محمد القدسي said:

لاكن اولا هذا الكود يضيف سجل واحد فقط

الكود يضيف كل السجلات الموجود في الجدول وذلك عن طريق الكود التالي

RC = rstFrom.RecordCount
rstFrom.MoveFirst
  For i = 1 To RC
1 ساعه مضت, محمد القدسي said:

ثانيا يضيف الحقل codhesab فقط 

وما اريده اذا كان الجدول الاول يحتوي على عشرين حقل مثلا فسيكون تسجيل جميع الحقول في الكود امر متعب قليلا

وبما ان الجدول الثاني يحمل نفس حقول الجدول الاول 

فانا اريد الكود يضيف الحقول دفعة واحدة 

وبنفس عدد السجلات كاملة

هذا الكود الذي انت وضعت جزءا منه لا يضيف كل الحقول الا اذا كتبت وحددت له الحقول بالشكل التالي

rs.AddNew
السطر التالي يعبر عن الحقل ..... قم بتكرار السطر بعدد الحقول الموجودة لديك
         rstTo!codhesab = rstFrom!codhesab
         rstTo!الحقل الثاني = rstFrom!الحقل الثاني
وهكذا
rs.Update

أرفق لنا الجدولين وبه بيانات تجريبية للتطبيق

تم تعديل بواسطه kanory
  • Like 3
رابط هذا التعليق
شارك

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

Dim db As DAO.Database
Dim rstFrom As Recordset
Dim rstTo As Recordset
Set db = CurrentDb
Dim RC, i, r As Integer
Set rstTo = db.OpenRecordset("tblB1", dbOpenDynaset)
Set rstFrom = db.OpenRecordset("tblB", dbOpenDynaset)
rstFrom.MoveFirst: rstFrom.MoveLast
RC = rstFrom.RecordCount
rstFrom.MoveFirst
  For i = 1 To RC
    rstTo.AddNew
    For r = 1 To rstFrom.Fields.Count - 1
         rstTo.Fields(r) = rstFrom.Fields(r)
    Next r
     rstTo.Update
rstFrom.MoveNext
  Next i
rstTo.Close
rstFrom.Close
Set rstTo = Nothing
Set rstFrom = Nothing
Set db = Nothing

 

Kan_355.accdb

تم تعديل بواسطه kanory
  • Like 6
رابط هذا التعليق
شارك

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