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

كيف يمكن تمرير نموذج

مغلق
بدأه ketkat في 12 ديسمبر 2002 · 6 رد · 502 مشاهدة · في مراجعة المواضيع
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

وكيف يتم أستدعائها من خلال الحدث call

#2

هل جربت الأمر

function something ( myform as form)

docmd.close myform

end function

إذا لم ينفع الأمر معك أخبرني ماذا تريد بالضبط وسوف أساعدك بإذن الله

تحياتي

#3

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

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

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

#4

أخي العزيز لقد جرب هذا الكود

function namefunction(x as form ) 
docmd.open(x)
end funcion

والحقيقة لم ينجح وكان الاستدعاء كالتالي

call namefunction (myform)

ولم تنجح العملية ماهو السبب يا ترى تحياتي

#5

أخي الكريم

الأكواد التي كتبتها فيها مجموعة من الأخطاء على سبيل المثال

فتح النموذج يتم باستخدام الأمر openform وليس الأمر open

على كل في مثالك السابق وإذا افترضنا أنك حالياً في نموذج frm0 وتريد فتح نموذج frm1 ووضع قيمة معينة لمربع نص باسم aaa موجود داخل النموذج يمكنك استخدام الدالة التالية

Function namefunction(x As String)

DoCmd.OpenForm x

Forms(x)!aaa = "How are you"

End Function

وإذا افترضنا أنك حالياً في نموذج frm0 فيمكنك استدعاء الدالة كالتالي

Call namefunction("frm1")
#6

أخي شكراً لك ولتعاونك ولكن انت في الدالة قد مررت متغير من نوع حرف وليس كائن بمعنى داخل الدالة لا يمكن عمل تغيرات على هذا المتغير لماذا ؟ لأنه متغير وليس كائن

انت تمرر سلسلة حرووف ولم تمرر متغير كائن من كائنات ADO مثل النماذج

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

أرجوا أن يكون شرحي قريب من الفهم وتقبل تحياتي

وخلاصة ما لدي أنني أريد فقط للمعرفة وليس لتنفيذ شي عمل التنسيقات المكررة على النماذج وجعلها في نموذج وفقط يستدعى الدالة )

شكراً مرة أخرى لك

#7

أخي الكريم

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

Forms(x)!aaa = "How are you"

وذلك من خلال استخدام ما يسمى collection وهو forms

وثمة أمر آخر يجب التنبه له وهو أنك تريد تنفيذ أمر يتطلب متغيراً من نوع سلسة وهو الأمر openform ولذلك فأنت لا تستطيع تمرير متغير من نوع form إلا إذا كنت ستعود مرة أخرى وتستنتج السلسلة المطلوبة وهي في الأمر السابق اسم النموذج من المتغير نفسه وفي هذه الطريقة تعقيد لا داعي له

خاصة أننا نستطيع تحويل السلسلة إلى كائن إذا احتجنا إلى ذلك عن طريق ما يسمى بـ collection وأنت تعلم أنه يمكننا فعل ذلك مع كافة الكائنات الأخرى في أكسس

أما مسألة أنك مررت كائن أو سلسلة فهي لا يؤثر في تنفيذ الأمر شيئاً

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

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