السلام عليكم اسلتذتي الافاضل
في المرفق قمت بعمل خطوة تنبه المستخدم ان رصيد المادة المستخدمة غير كافي اذا تجاوز كمية المادة المباعة نسبة المخزون
لكن المشكلة لدي ان الرسالة تظهر حتى و ان كان الرصيد كافي و في الصورة توضيح للمشكلة
وعليكم السلام اختي :)
استخدمي هذا الكود:
Private Sub Qt_out_Exit(Cancel As Integer)
If Nz(Me.Qt_out, 0) > Val(Nz(Me.Parent.txt52, 0)) Then
MsgBox "ÇáßãíÉ ÇáãäÕÑÝÉ ÇßÈÑ ãä ÇáÑÕíÏ ÇáÍÇáí", vbCritical + vbOKOnly, "ÑÓÇáÉ ÊÍÐíÑíÉ"
Cancel = -1
End If
End Subجعفر
السلام عليكم استاذي الفاضل و اخي الكريم
الحمدلله الكود شتغل تمام في تنفيذ مهمته النطلوبة بس لما بيطلع عندي و اظغط ok و احاول اكمال عملي بيستمر يطلع مرارا و تكررا دون انقطاع حتى عند محاولتي اغلاق النموذج...فما السبب؟؟
و لما الكود الي انا كنت مستعملتة لا يعمل مظبوط؟؟؟
وعليكم السلام :)
هذا لآنك خليتي الكود على
Qt_out_Exit
خلي الكود على الحدث "قبل التحديث" :)
ما اشتغل كودك:
1. هل عندك الحقل txt52 في النموذج الفرعي؟
هو موجود في النموذج الرئيسي ، ولكنك لم تشيري اليه كذلك!
2. انا اسخدمت الامر val ، ومعناه value اي قيمة الحقل ، حيث الحقل txt52 غير مربوط بالجدول ، لذا فهو ليس برقم ، وتحويل النص الى رقم يحتاج الى الامر val :)
3. عندما تريدين ان تشيري الى اسم حقل ، فيجب ان يكون هكذا [Qt_out] او me.Qt_out ، اما Qt_out فمعناه انه متغير في الكود ، وفي حالتك لم تكن له قيمة ، اي انه صفر ،
4. الحقل Qt_out ، عندما يكون فاضي ، فما قيمته؟
قيمته Null ، وهو ليس برقم ، فلتحويل الخانه Null الى صفر ، فاننا نستخدم Nz ، عندها قيمة Qt_out تكون صفر ، فيمكن القيام بعمليات حسابية عليها :)
وللعلم ، هذه آخر مشاركة لي قبل سفري الليلة ان شاء الله :)
جعفر
تم تعديل هذه المشاركة بواسطة jjafferr في 29 أكتوبر 2014 في 17:09
شكرا على الشرح الوافي و المفهوم يا سيد (سندباد) :)
و اكيد 1+
ساجرب و ضعه في حدث قبل التحديث و ان شاءالله يضبط معي
ياريت سفرتك ماطول ... و ترجع بسلامه
و ضعته في حدث عند النقر و ماشي الوضع تمام و الحمدلله
جزاك الله الف خير