الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

اضافة مجموعة من السجلات من recordset الى recordset

بدأه yassin123 في 27 مارس 2011 · 10 رد · 1,003 مشاهدة · في قواعد بيانات Microsoft Access
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

كيف اضافة مجموعة من السجلات من recordset الى recordset

فمثلا بفرض وجود جدولين متماثليت فى الاعمده

T1 ,T2

dim db as database

dim Tr1,Tr2 as recordset

set db = current db

set Tr1=openerecordset("tr1

set Tr2=openrecordset("tr2

لكن ما هو الامر الذى يمكن كتابته حتى يمكن الحاق كل السجلات الموجوده فى Tr1 فى Tr2

#2

استخدم الاستعلام الالحاقي

اسهل

سيد الاستغفار

{ اللهم أنت ربي لا إله إلا أنت خلقتني وأنا عبدك وأنا على عهدك ووعدك ما استطعت أعوذ بك من شر ما صنعت أبوء لك بنعمتك علي وأبوء لك بذنبي فاغفر لي فإنه لا يغفر الذنوب إلا أنت}

من قالها من النهار موقنا بها فمات من يومه قبل أن يمسي فهو من أهل الجنة ومن قالها من الليل وهو موقن بها فمات قبل أن يصبح فهو من أهل الجنة .رواه البخاري

#3

اعتقد تستخدم :

INSERT INTO t2 ( id, txtname, txtnum)
SELECT t1.id, t1.txtname, t1.txtnum
FROM t1;

حيث أن T1 الجدول المراد نقل بيانات منه

T2 الجدول المراد نقل البيانات إليه

iid - txtname - txtnum هي الحقول في الجدولين

تم تعديل هذه المشاركة بواسطة فتى الوادي في 27 مارس 2011 في 15:14

mk17481_26bccea871.gif
#4

ولو وضعت هذا الأمر في زر يكون كالتالي :

DoCmd.RunSQL "INSERT INTO t2 ( id, txtname, txtnum ) SELECT t1.id, t1.txtname,t1.txtnum from t1"

وما يحتاج أنك تضع غيره شيء .. فقط ضع السطر السابق في حدث عند النقر على الزر وينقل لك بيانات جدول t1 إلى جدول t2

mk17481_26bccea871.gif
#5

شكرا للسادة الزملاء للتكرم بالرد

لكنى اريد ان اجرى هذه العملية من خلال

Recordset

تم تعديل هذه المشاركة بواسطة yassin123 في 27 مارس 2011 في 16:24

#6

طيب اخي الكريم :

ممكن تقول لنا لماذا تريدها بـ Recordset

للفائدة فقط .

mk17481_26bccea871.gif
#7

الجداول التى اعمل عليها توجد فعليا فى قاعدة بيا نات sql

وعند قيامى باستخدام اسلوب odbc

وجدت البرنامج اصبح بطئ جدا

ووجدت طريقة الاتصال من خلال dao اسرع بكثير\وهذه الطريقة تستلزم التعامل مع ال Record set

#8

طيب جرب هذا الكود:

 Dim db As Database
 Dim rs2 As Recordset
Set db = DBEngine.Workspaces(0).Databases(0)
Set rs2 = db.OpenRecordset("t1", dbOpenTable)
Do While Not rs2.EOF
rs2.Edit
       Set rs = db.OpenRecordset("T2")
       rs.AddNew
       rs("ID") = rs2![ID]
       rs("TXTNAME") = rs2![TXTNAME]
       rs("txtnum") = rs2![txtnum]
       rs.Update
       rs2.MoveNext
  Loop
rs2.Close

مع الأخذ بعين الأعتبار :

حيث أن T1 الجدول المراد نقل بيانات منه

T2 الجدول المراد نقل البيانات إليه

iid - txtname - txtnum هي الحقول في الجدولين

mk17481_26bccea871.gif
#9

شكرا جزيلا للتكرم بالرد

لكن انا كنت ابحث عن كود يقوم بعملية الحاق كافة الحقول الى recordset

على غرار الحركة التى تتم فى الستعلام الالحاقى

حيث ان الاعمدة كثيرة فى الجداول

وان هذه الحركة ستتم كثيرا

وكنت بحث ووجدت خاصية اسمها Append مثلها مثل ال Edit

ةلكنى لم استطع تطبيقها

#10

والله ما ادري ماذا تريد بالضبط ...!

انا طبقت الكود وشغال تمام ويؤدي الغرض ...

لعل الأخوة يقدرون يساعدوك في ذلك .

mk17481_26bccea871.gif
#11

تفضل اخى

مادامت حقول الجدولين متماثلة يمكنك استخدام هذا الكود

 Dim rs1, rs2 As Recordset
 Dim c, i, f, r As Integer

Set rs1 = CurrentDb.OpenRecordset("T1")
Set rs2 = CurrentDb.OpenRecordset("T2")
c = rs1.RecordCount
r = rs1.Fields.Count

For i = 1 To c
rs2.AddNew
    For f = 0 To r - 1
       rs2.Fields(f) = rs1.Fields(f)
    Next
  rs2.Update
  rs1.MoveNext
Next

rs1.Close
rs2.Close
Set rs1 = Nothing
Set rs2 = Nothing

مدونتى:-

احترف الأكسس مع أبو يوسف

متغيب حاليا لانشغالى الشديد

مواضيع مشابهة