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

أفكار سريعة: تمرير البيانات من التقرير الي النموذج


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

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

وددت أن أساهم بالمنتدي - مع قلت ذات اليد - اقصد العلم -  :wub: -

ببعض الأفكار البسيطة والخفيفة

لعل أحدا يفيد منها بشىء فتصيبني منه دعوة بظهر الغيب - فيرد عليه ملك "آمين ولك بمثل"

ستكون ان شاء الله وقدر متفرقة علي قدر سعة الوقت والله المستعان.

فكرة اليوم: 

كما هو بالعنوان تمرير بيانات من التقرير الي النموذج - او من نموج الي نوذج آخر 

احيانا تدعو الحاجة الي حساب بعض الأرقام بالتقرير او بالاستعلام دون النموذج - ونحتاج الي هذه الأرقام المحسوبة لنستخدمها بنموذج آخر لاستعمالها بعمليات حسابية أخري أو حتي عرضها فقط من هنا كانت الفكرة:

أولا- ننشئ هذا الاجراء العام - والذي ستتلخص مهمته في ثلاث أمور 

1- التحقق من كون الفورم المرر اليه البيانات علي قيد الحياه :biggrin: -يعني مفتوح ام لا-

2- استقبال البيانات من التقرير أو النموذج 

3- تمريرها الي النموذج الأخر.

وهذا هو:

Public Sub GetInfoRep(Frm As String, T1rp As Variant, T2rp As Variant, _
                                        T1Fm As String, T2Fm As String)
'Frm            Form name
'T1rp           Text1 on report 
'T2rp           Text2 on report 
'T1Fm          Text1 on Form 
'T2Fm          Text2 on Form 
'================================

'Test if form is open before pass data to it
    If CurrentProject.AllForms(Frm).IsLoaded = True Then
        Forms(Frm).Controls(T1Fm) = T1rp
        Forms(Frm).Controls(T2Fm) = T2rp
    End If
End Sub

ثم نستدعيه عند اغلاق التقرير او النموذج هكذا

GetInfoRep "Form1", Me.TxDays, Me.TxSalary, "Text2", "text4"

والنتيجة:

PassData.gif.342e0e9f36708f20dca6449ac192d3c8.gif

تشاهدونها بالمرفق 

ودمتم  

passDataToForm.rar

  • Like 5
  • Thanks 1
رابط هذا التعليق
شارك

استاذنا ومعملنا الكبير / @أبو عبدالله الحلوانى

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

جزاك الله كل خير ـ وبارك الله فيك وجعله فى ميزان الحسنات ورحم الله والديك

لى ملوحظة صغيرة جدا جدا على هذا العمل الجميل وهو :

عند فتح التقرير تظهر رسالة بان عرض التقرير كبير فيلزم تصغيره ـ هذا للمبتدئين مثل حالى لا تزعجهم هذه الرسالة

فتح الله عليك وبارك فى علمك ورزقك 

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

شكرا أخي العزيز @أبو عبدالله الحلوانى 🙂 

نفعنا الله بك ، وزادك الله من واسع فضله وفتح لك أبواب الخيرات والبركات والأرزاق . :rol:🤲

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

17 ساعات مضت, أبو عبدالله الحلوانى said:

تمرير بيانات من التقرير الي النموذج - او من نموج الي نوذج آخر

ماشاء الله اخي الحلواني عمل جميل بارك الله فيكم

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

الطريقة الاولى من خلال تحميل قيمة حقل او عدة حقول دفعة واحد في زر امر فتح من خلال OpenArgs مع مراعات الفصل بين الحقول عند تحميل اكثر من حقل باستخدام &"|"&

ليكون الامر

DoCmd.OpenForm "frm_item", , , , acFormAdd, , KNUM & "|" & KTEXT

knum و ktext هي الحقول المطلوب تحميل قيمتها

ثم في النموذج المستهدف نستخدم الامر

Dim k As Variant
k = Split(Me.OpenArgs, "|")
Me.KNUM.Value = k(0)
Me.KTEXT.Value = k(1)

الطريقة الثانية باستخدام TempVars وايضا نستخدم &"|"& للفصل بين الحقول المطلوبه لنتمكن من فصلها في النموذج المستهدف

Dim x As TempVars
Dim w As Variant
w = Val([TxDays]) & "|" & Val([TxSalary])
TempVars("x") = w

وفي النموذج المستهدف نضع الامر

Dim a As Variant
a = Split(TempVars!x, "|")
Me.Text2 = a(0)
Me.Text4 = a(1)

طرق بسيطة من زمن الطيبين ولا ترتقي لعملكم ولكن احببت ان اشاركم استاذي

تحياتي

  • Like 4
  • Thanks 2
رابط هذا التعليق
شارك

6 ساعات مضت, مبرمج سابق said:

طرق بسيطة من زمن الطيبين

جزاك الله خيرا 

معلومات قيمة 

جعلنا الله واياكم ومن قال آمين - ممن ينادون يوم القيمة - طبتم فادخلوها خالدين - 

وأشكر اساتذتي الأكارم الأفاضل علي تشجيعهم وكلماتهم الطيبة

جزاكم الله عنا خيرا وأحسن اليكم

 

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

15 ساعات مضت, مبرمج سابق said:

مع مراعات الفصل بين الحقول عند تحميل اكثر من حقل باستخدام &"|"&

طبعا هذا مجرد فاصل (ممكن يكون علامة/علامات او رقم/ارقام او حرف/حروف) بين بيانات الحقول ، وممكن استعمال اي فاصل ولكن بشرط هذا الفاصل لا يكون في بيانات الحقول ، لأن هذه الحقول يتم تجميعها كجمله واحدة ،

مثلا: اذا كانت بيانات :

الحقل1: /ذهبت الى السوق، ومنها الى المتجر./

الحقل 2: /قيمة المادة: 75/

الحقل 3: /الاحد - 22/05/2022 // 11:32ص/

 

فإذا جمعنا الحقول الثلاث اعلاه ، فتكون الجملة:

/ذهبت الى السوق، ومنها الى المتجر.//قيمة المادة: 75//الاحد - 22/05/2022 // 11:32ص/

 

فيجب ان نختار فاصل غير موجود في هذه الجملة (او اي جمل في المستقبل) ،

فبإختيار مبرمج سابق العلامة | تصبح الجملة اعلاه:

/ذهبت الى السوق، ومنها الى المتجر./|/قيمة المادة: 75/|/الاحد - 22/05/2022 // 11:32ص/

ونلاحظ من السهل فصل الجملة الى 3 جُمل 🙂

 

نعم ممكن استعمال اي فاصل آخر (نلاحظ بأن العلامات التالية موجودة في الحقول الثلاث اعلاه هي: ، . : - / _ فلا يمكن استعمالها) ، 

فممكن نستعمل (لاحظ اني استعملت عدد كبير من الارقام او الاشارات ، فأكون متأكد انه من المستحيل ان يكون هذا الفاصل جزء من بيانات الحقول) :

11111 فتصبح الجملة: /ذهبت الى السوق، ومنها الى المتجر./11111/قيمة المادة: 75/11111/الاحد - 22/05/2022 // 11:32ص/

جججججج فتصبح الجملة: /ذهبت الى السوق، ومنها الى المتجر./جججججج/قيمة المادة: 75/جججججج/الاحد - 22/05/2022 // 11:32ص/

/\/\ فتصبح الجملة: /ذهبت الى السوق، ومنها الى المتجر.//\/\/قيمة المادة: 75//\/\/الاحد - 22/05/2022 // 11:32ص/

******** فتصبح الجملة: /ذهبت الى السوق، ومنها الى المتجر./********/قيمة المادة: 75/********/الاحد - 22/05/2022 // 11:32ص/

 

ولكن حذار من استخدام //  كفاصل ، وإلا ستكون الجملة اعلاه من 4 حقول وليس من 3 !!

 

امثله اخرى من الفواصل اعلاه وانها تعمل بطريقة صحيحة ، وسأترك لكم طريقة تفكيك الحقول الثلاث :

11111 : عدد الطلبة 11111111معدل الدرجات1111111وهذه نسبة ضئيلة

جججججج : تأجججججججججمال القمرججججججيوم اصبح بدرا

 

شكرا اخوي ابو عبدالله ، واخوي مبرمج سابق ، خليتونا نعصر افكارنا 🙂

 

جعفر

  • Like 2
  • Thanks 1
رابط هذا التعليق
شارك

  • 8 months later...

السلام عليكم اخى الفاضل حلوانى 

ممكن توضيح اكتر ليا  انا عايز انقل قيمه واحد وهى عبار عن مربع نص بيجمع مجموع عمود 

عند الضغط على الزر الى نموزج اخر مبنى على جدول 

ولتوضيح 

والجدول والنموزج الى هيتنقل ليه القيمه مفيش ارتباط فيهم مع اى حاجه تانيه فى باقى البرنامج ولا حتى فى علاقات مع باقى الجداول والنمازج 

وملحوظه ايضا ان الجدول ال منقول اليه والنموزج فيهم حقل تاريخ اليوم والوقت تلقائي 

وايضا حقل ترقيم تلقائي بمفتاح رئيسي بس من غير ارتباط 

 

1.jpg

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

السلام عليكم

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

سوف افصل طلبك لاحقا عن هذا الموضوع

على كل حال ؛ الحل هو استخدم استعلام الحاق

او ارفق مثالك ان اردت الاجابة الكاملة ( يكتفى بالجدولين والنموذجين فقط )

 

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

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