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

نقل بيانات من عده مربعات نص غير منضمة إلى نموذج فرعي

مغلقمُجاب
بدأه el-shazly في 23 يونيو 2013 · 11 رد · 607 مشاهدة · في قواعد بيانات Microsoft Access
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

الساده / مشرفي المنتدي       المحترمين

الساده / أعضاء المنتدي      المحترمين

 

قمت بإنشاء نموذجين كما هو موضح بالصورة المرفقه و بالفعل استطيع أن انقل بيانات النموذج inter_process إلى النموذج الفرعى Process_id_sub مع الإحتفاظ بالتركيز على النموذج inter_process

المشكلة هى :

عند إضافة صنف أخر يقوم بإدراج البيانات على نفس السجل فى النموذج الفرعى Process_id_sub دون أن ينتقل إلى سجل جديد ، أريد عند فقدان التركيز فى الحقل sh_out الموجود بالنموذج inter_process أن ينتقل إلى سجل جديد بالنموذج الفرعى Process_id_sub وينقل البيانات إليه مع مراعاه إذا كان هذا أول سجل بالنموذج الفرعى أن يضيف إليه مباشرتا

 

ولكم جزيل الشكر

post-195510-0-17438500-1371991934_thumb.

wax.rar

تم تعديل هذه المشاركة بواسطة el-shazly في 23 يونيو 2013 في 21:47

#2

تفضل :)

 

أضف السطرين الاول والثاني للكود ، هكذا:

Forms!Process_id!Process_id_sub.SetFocus
DoCmd.GoToRecord , , acNewRec
Forms![Process_id]![Process_id_sub]![item_n] = Me.sh_item_n
Forms![Process_id]![Process_id_sub]![item_name] = Me.sh_item_name

 

جعفر

#3

أشكرك أخي جعفر ، لكن مازالت المشكلة كما هى لم يقم الكود بإنشاء سجل جديد 

#4

الحمد لله بعد محاولات كثيرة تم التوصل إلى الحل

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

الحل : وضع الكود  DoCmd.GoToRecord , , acNewRec

         فى حدث - عند الإدخال - بالنموذج الفرعى فى حالة عرض التصميم للنموذج الرئيسى

post-195510-0-07857800-1372027836_thumb.

#5 أفضل إجابة

اخي الشاذلي

 

المشكلة تكمن في ان النموذج inter_process منبثق ، مما لا يمكننا من ان نجعل setfocus على النموذج الفرعي.

 

رجاء مسح جميع الكود الذي في النموذج الفرعي ، واستعمال هذا الكود:

Private Sub sh_out_AfterUpdate()

'if the Form inter_Process was NOT MODAL, we could have used this simple code
'Forms!Process_id!Process_id_sub.SetFocus
'DoCmd.GoToRecord acActiveDataObject, , acNewRec
'Forms![Process_id]![Process_id_sub]![item_n] = Me.sh_item_n
'Forms![Process_id]![Process_id_sub]![item_name] = Me.sh_item_name
'Forms![Process_id]![Process_id_sub]![commb4] = Me.sh_commb4
'Forms![Process_id]![Process_id_sub]![in] = Me.sh_in
'Forms![Process_id]![Process_id_sub]![out] = Me.sh_out

'however, we will have to use this code now
' Dim rst As DAO.Recordset
Set rst = Forms!Process_id!Process_id_sub.Form.RecordsetClone

rst.AddNew
rst![item_n] = Me.sh_item_n
rst![item_name] = Me.sh_item_name
rst![unit] = Me.sh_commb4
rst![in] = Me.sh_in
rst![out] = Me.sh_out
rst.Update
rst.Close: Set rst = Nothing

Me.sh_item_n = ""
Me.sh_item_name = ""
Me.sh_commb4 = ""
Me.sh_in = 0
Me.sh_out = 0

End Sub

 

جعفر

1
#6

تسلم يد من كل سوء أخي جعفر

الكود شغال و كله تمام

:clapping: :clapping:

:plusone: :plusone:

#7

أخي جعفر

ظهرت عندى مشكلة وهى : أن بعد إدراج الأصناف بالنموذج الفرعى يتم حفظ البيانات المدرجة و عند الرجوع الى رقم العملية لا تظهرالسجلات بالنموذج الفرعى ، ولاحظت ان السبب فى ذلك عدم تسجيل رقم العملية مع كل سجل

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

#8

حياك الله :)

 

انا في الواقع استخدمت معادلاتك ، فالظاهر انك لم تكتب هذه المعادلة :(

 

رجاء إضافة هذا السطر (في اي مكان بين مجموعته :) ) :

rst![id_no] = Forms![Process_id]![id_no]

 

واخبرني بالنتيجة لوسمحت :)

 

جعفر

#9

كله تمام يا أخي جعفر

 

بس لو فيها إزعاج لك ، ممكن أعرف معنى الجذئيتين من الكود

1 / 
'if the Form inter_Process was NOT MODAL, we could have used this simple code
'Forms!Process_id!Process_id_sub.SetFocus
'DoCmd.GoToRecord acActiveDataObject, , acNewRec
'Forms![Process_id]![Process_id_sub]![item_n] = Me.sh_item_n
'Forms![Process_id]![Process_id_sub]![item_name] = Me.sh_item_name
'Forms![Process_id]![Process_id_sub]![commb4] = Me.sh_commb4
'Forms![Process_id]![Process_id_sub]![in] = Me.sh_in
'Forms![Process_id]![Process_id_sub]![out] = Me.sh_out

 

2 /

'however, we will have to use this code now
' Dim rst As DAO.Recordset
Set rst = Forms!Process_id!Process_id_sub.Form.RecordsetClone

rst.AddNew
rst![item_n] = Me.sh_item_n
rst![item_name] = Me.sh_item_name
rst![unit] = Me.sh_commb4
rst![in] = Me.sh_in
rst![out] = Me.sh_out
rst.Update
rst.Close: Set rst = Nothing

 

وهل يمكن أن اعتمد على الجذئية الثانية فقط

 

ولك كل إحترامي و تقديري

#10

اخي الشاذلي

 

في الكود ، اذا كان اول السطر كلمة rem او الاشارة '

فإنك سترى ان الكتابة في بقية السطر تحول لونها الى اخضر ، وهذا معناه بأن هذا السطر عبارة عن ملاحظات ، ولا يقرأها البرنامج :)

وفي حالة برنامجنا ، فإن القسم الاول لا يعمل ، والقسم الثاني هو الذي يعمل :)

 

الملاحظة للجزء الاول قلت فيها: بأن هذا الكود الاسهل ، لا نستطيع استعماله ، لانك تستخدم نموذج منبثق ، والذي لا يسمح بان نجعل التركيز على النموذج الفرعي (النموذج المنبثق يحتفظ بالتركيز دائماً ، لهذا السبب هو منبثق).

 

الملاحظة للجزء الثاني: بسبب ان النموذج الآخر منبثق ولا يمكن وضع التركيز على النموذج الفرعي ، فلهذا السبب فإننا نستخدم طريقة اصعب لعمل الازم :)

 

جعفر

1
#11

ربنا يبارك فيك و يزيدك من علمه الذى لا يعلمه إلا غيره

#12

ولك ولمن تحب  إن شاء الله مثل دعواك :)

 

تحت أمرك يا باشا :)

 

جعفر

هذا الموضوع مغلق.

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

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…