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

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

مغلق
بدأه فتى الوادي في 26 فبراير 2007 · 8 رد · 919 مشاهدة · في قواعد بيانات Microsoft Access
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ...

لدي كود يظهر رسالة في حالة عدم وجود أي سجل في النموذج ...

وقد قمت بتعديله إلى وحدة نمطية ليتم أستدعاء من اي نموذج :

Dim txtmot As Recordset
Dim txta As String
Dim txtb As String
	Set txtmot = Me.RecordsetClone
	If txtmot.RecordCount = 0 Then
MsgBox "عفواً ... لا يوجد سجلات مطابقة لشروط البحث", 0, "رسالة عدم وجود البيانات المطلوبة"
Cancel = True
Else
'DoCmd.Maximize
End If

والمشكلة أن الروتين الفرعي لا يتعرف على . ME

والمطلوب :

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

سواء على هذا الكود أو كود آخر يقوم بنفس المهمة .... أهم شيء أن يتم استدعاءه من اي نموذج .

mk17481_26bccea871.gif
#2

جرب الأتي:

1- عرف متغيرا من نوع Form في الوحدة النمطية ويكون نوع التعريف Public والهدف منه استيعاب اسم النموذج الحالي

2- استخدم هذا المتغير بدلا من ME في الجملة Set txtmot = Me.RecordsetClone

أو

بدل الخطوة 2 اكتب Screen.ActiveForm.Name

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

وَمِنَ النَّاسِ مَن يُعْجِبُكَ قَوْلُهُ فِي الْحَيَاةِ الدُّنْيَا وَيُشْهِدُ الله عَلَى مَا فِي قَلْبِهِ وَهُوَ أَلَدُّ الْخِصَامِ

مواضيعي ومشاركاتي

#3

أستاذي الكريم ....

ممكن تعيد صياغة الروتين .. ليعمل من اي نموذج

mk17481_26bccea871.gif
#4

طبعا في الموديول الذي قمت ببناءه في برنامجك اي الوحدة النمطية التي ذكرتها في مشاركتك الأولى...

وَمِنَ النَّاسِ مَن يُعْجِبُكَ قَوْلُهُ فِي الْحَيَاةِ الدُّنْيَا وَيُشْهِدُ الله عَلَى مَا فِي قَلْبِهِ وَهُوَ أَلَدُّ الْخِصَامِ

مواضيعي ومشاركاتي

#5

في وحدة نمطية عامة أكتب الكود التالي :

Public Function sheckRec(MyFrm As Form)
If MyFrm.RecordsetClone.RecordCount = 0 Then
MsgBox "أكتب هنا ما تريد في حال وجود سجلات"
 Else
MsgBox "أكتب هنا ما تريد في حال عدم وجود سجلات"
End If
End Function

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

Call sheckRec(Me)

جرب وأخبرنا بالنتيجة

#6

استاذي مصلح .. اسعدني مرورك حمداً لله على السلامة ...

جميل جداً .... لكن اريد من الروتين في حالة عدم وجود سجلات أن يعطي الرسالة ولا يفتح النموذج .

بارك الله فيك .

mk17481_26bccea871.gif
#7

الله يسلمك ويسعدك أخي الكريم

أضف في الوحدة النمطية العامة السطران التاليان :

DoCmd.CancelEvent

Exit Function

وضع كود الاستدعاء في حدث عند الفتح للنموذج

ستصبح الوحدة النمطية العامة كما يلي :

Public Function sheckRec(MyFrm As Form)
If MyFrm.RecordsetClone.RecordCount = 0 Then
MsgBox "أي كلام"
DoCmd.CancelEvent
Exit Function
Else
MsgBox "أي كلام"
End If
End Function
1
#8

الإخوة الكرام

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

أتمنى إرفاق مثال على هذا الموضوع الشيق والمهم

#9

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

mk17481_26bccea871.gif

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

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

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

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

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

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