السلام عليكم ورحمه الله وبركاته
فى النموذج items اريد ان اظهر رسالة بدلا من رسالة الاكسس تفيد بعدم امكانيه ترك حقل الفرع فارغ ولكنه كل مره يظهر رسالة خطأ الاكسس
شكرا
أخي الكريم
بصفة عامة تقدر تخصص اي رسالة خطأ بتظهر في الاكسيس ؛ المهم انك تعرف رقم الخطأ نفسه.
كل خطأ في الاكسيس له رقم ؛ وإذا عرفنا الرقم نقدر نطبق عليه قاعدة IF أو نستخدم Select Case
بتطبيق الكلام ده علي مثالك ؛ انت عايز لما المستخدم يسيب حقل معين فاضي يظهر له رسالة انه نسي الحقل فاضي ؛ انا عملت ايه علشان اقدر اعرف رقم الخطأ ؛ فتحت النموذج في وضع التصميم واختارت حدث عن الخطأ ؛ وحطيت فيه الكود التالي:
MsgBox DataErr
وجربت بعدها أدخل بيانات جديدة وأتعمد اني اغلط ؛ فظهر ليا رسالة بتقولي ان في غلط حصل ورقم الغلط ده 3314
فغيرت الكود اللي موجود في حدث عند الخطأ الي الكود ده
If DataErr = 3314 Then
MsgBox ("أنت لم تقم بتسجيل بعض البيانات الاساسية المطلوبة")
Response = 0
End If
حط الكود ده في حدث عند الخطأ وجرب تنسي تكتب حقل مطلوب حتظهر رسالة الخطأ اللي مكتوبة فوق ؛ ولو غلط غلط تاني حتظهر رسالة الخطأ العادية بتاعت الاكسيس.
بس انت لازم تعرف ان حدث عند الخطأ معاه متغيرين بيجوا معاه ويرجعوا مع الرد ؛ وهما موجودين بعد سطر تعريف الحدث ؛ اللي هما DataErr و Response
الاول علشان يجيب رقم الخطأ اللي حصل ؛ والتاني علشان انت حترد بايه. علشان كده انا رديت بصفر علشان يوقف رسالة الخطأ بتاعت الاكسيس.
أطيب الاماني
السلام عليكم ورحمه الله وبركاته
شكرا اخى الفاضل على المساعده ولكن عند التجربة لاحظت الاتى انه فى اى حاله عدم ادخل قيمه فى اى حقل مطلوب يتم عرض نفس الخطأ لانه فى البرنامج الذى اقوم بتصميمه قد ينسى المستخدم اختيار فرع او قسم او مدينة وبالتالى اريد ان اوجهه برسالة مناسبة توضح لهما ينيغى ان يعدله
شكرا جزيلا
أضف شرط أخر علي قاعدة IF الموجودة
علي أفتراض أن اسم حقل المدينة هو City وأسم حقل الفرع هو Branch
يكون الكود في حدث عند الخطأ
If DataErr = 3314 And IsNull([City]) Then
MsgBox ("أنت لم تقم بكتابة المدينة")
Response = 0
Exit Sub
End If
If DataErr = 3314 And IsNull([Branch]) Then
MsgBox ("أنت لم تقم بكتابة الفرع")
Response = 0
Exit Sub
End If
أطيب الاماني