اذهب الي المحتوي
أوفيسنا
بحث مخصص من جوجل فى أوفيسنا
Custom Search

نسخ قيم كل 6 سجلات على التوالي من عمود في جدول A الى ستة حقول معينة من جدول B


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

بعد التحية والسلام على كل اساتذة وأعضاء المنتدى الأعزاء

 

في الملف المرفق قاعدة بيانات تحتوي على جدولين الأول vtb ويحتوي حقل النص val 

 

وجدول ثاني rtb يحتوي 6 حقول نص تبدأ من B1  وتنتهي بــ B6

 

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

اي من B1 الى B6  في السجل الأول ,, وبعدها ستة حقول أخرى في سجل جديد من rtb

 

 

مع الشكر مقدما .

 

أبو منتظر

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

عمل جميل استاذ مارد

واسمح لي عملت تعديل بسيط على مثالك 

وكانت النتيجة مقبولة ولكن العملية ليست سريعة 

الوقت متأخر وسأغفو قليلا قبل الفجر

 

لعلك تجرب المرفق وتكتشف سبب هذا البطء

Insert 6 Fields0.rar

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

عمل جميل استاذ مارد

واسمح لي عملت تعديل بسيط على مثالك 

وكانت النتيجة مقبولة ولكن العملية ليست سريعة 

الوقت متأخر وسأغفو قليلا قبل الفجر

 

لعلك تجرب المرفق وتكتشف سبب هذا البطء

 

 

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

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

 

وكل هذا لاتفادى عملية البطء هذه هههههههههههه لا حرمنا الله منك  اخى ابو خليل

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

عملية البطء سببها الدوارة الداخلية

والسرعة زادت الضعف تقريبا عندما استبدلتها

 

Do While Not Rst.EOF
Rst1.Fields(m) = Rst.Fields(0)
m = m + 1
Rst.MoveNext
Loop

حين استبدلتها بهذه

For p = 1 To n
Rst1.Fields(m) = Rst.Fields(0)
m = m + 1
Rst.MoveNext
Next p
  • Like 1
رابط هذا التعليق
شارك

اعزائي 

هذا كود رمهاني .. سريع مجاني ..!

DoCmd.SetWarnings False
Set rs = CurrentDb.OpenRecordset("vtb"): rs.MoveLast: rs.MoveFirst
For i = 1 To rs.RecordCount Step 6
Set rs1 = CurrentDb.OpenRecordset("select * from vtb where id between " & i & " and " & i + 5 & " order by id"): rs1.MoveFirst
Do While Not rs1.EOF
xsql_val = xsql_val & "'" & rs1(1) & "',"
rs1.MoveNext
Loop
xsql_val = Left(xsql_val, Len(xsql_val) - 1)
DoCmd.RunSQL "insert into rtb(b1,b2,b3,b4,b5,b6) values(" & xsql_val & ")"
xsql_val = ""
Next i
DoCmd.SetWarnings True

اخي ابو منتظر : يمكنك تنفيذ الكود في اي مكان . مثلا خلف زر امر وعند النقر ! 

مع ملاحظة : لو نفذته اكثر من مرة سيكرر البيانات فيمكن وضع سطر واحد حذف سجلات الجدول قبل تنفيذ الكود !

 

تحياتي وبالتوفيق

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

اشكر جميع الأخوة الذين تفاعلوا من أجل أعطاء الجواب الأمثل .

 

الاستاذ العزيز مارد ..في مرفق ردك الأول يحصل خطأ في إلحاق القيم للحقول بداية من السجل 43 ويكون الترتيب غير صحيح !!

 

الاستاذ الجليل ابو خليل ..ان الكود في مثالك الاخير لايحقق المطلوب .. حيث لاتتم توزيع محتويات كل ستة حقول متتالية من العمود Valx  على الحقول الستة من B1 الى B2

 

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

post-23816-0-85704700-1432629970_thumb.j

تم تعديل بواسطه أبو منتظر
رابط هذا التعليق
شارك

معذرة كان المرفق السابق تعديل سريع احببت ان اشارك به الاخ مارد

 

تفضل تم الاصلاح

تم ضبط التكرار 

يمكنك منع التكرار بجعل الحقل A  مفتاحا 

_تحويل العمود الى سجلات .rar

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

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