f16 قام بنشر فبراير 12, 2018 قام بنشر فبراير 12, 2018 السلام عليكم اخواني الأعزاء سؤال : هل يمكن وضع كود واحد في النموذج لمنع ظهور رسائل الخطاء ؟ حتى لا يقوم المستخدم بالدخول على الاكواد والتعديل او مسحها بالخطاء . حيث ما اعرفه هو انه بالأمكان وضع كود ولاكن لا بد من وضعها مع كل كود تقوم بعملة . وما اريد عمله هو كود واحد لجميع الاكواد التي بالنموذج . ولكم جزيل الشكر 1
أبو آدم قام بنشر فبراير 12, 2018 قام بنشر فبراير 12, 2018 اولا ، استخدام معالج الاخطاء Error Handler يعطي رسائل موجهة و منسقة للمستخدم تشعره بحدوث خطأ و تعطيه التفاصيل المتاحة و في حال عدم استخدام معالج الاخطاء يقوم VBA بتوجيه رسائل الخطأ ، بالمتاح من المعلومات و يوجهك نحو محرر الأكواد للتعرف على موقع الخطأ لتصويبه ثانيا ، يمكن في بداية كل كود أو في أي مكان مختار ولتعطيل معالج الاخطاء و رسائل النظام ان تستخدم العبارة ( الكود ) On Error Resume Next و حين ترغب باعادة تفعيل معالج الاخطاء تستخدم مثلا On Error GoTo PROC_ERR ويكون في ذيل الكود PROC_ERR: MsgBox "Error " & Err.Number & " " & Err.Description Resume PROC_EXIT ثالثا ، لمعالجة كامل النماذج او التطبيق ، فالامر قيد البحث في مكتبتي ... و اوافيك بالرد 3
أبو آدم قام بنشر فبراير 12, 2018 قام بنشر فبراير 12, 2018 يقول معظم أهل هذا العلم أن الاصح ان يحمل كل اجراء معالج الاخطاء الخاص به شكرا 2
kaser906 قام بنشر فبراير 12, 2018 قام بنشر فبراير 12, 2018 1 ساعه مضت, أبو آدم said: يقول معظم أهل هذا العلم أن الاصح ان يحمل كل اجراء معالج الاخطاء الخاص به شكرا اشكرك استاذنا الكريم كنت راح افتح موضوع جديد بخصوص استفسار ورأيت هذا الموضوع يحمل نفس الصلة ولكن بختلاف التفصيل حيث اني اريد أن استفيد من الخطأ في توجيه البرنامج لاجراء حدث معين الحدث هو عند فتح النموذج يتم الاتصال بالوحدة النمطية وهي قد تم حذفها او تغييراسم الاجراء اريد أن احصل على رقم هذا الخطأ لكن لاتظهر لدي سوى ههذه الرسالة
أبو آدم قام بنشر فبراير 12, 2018 قام بنشر فبراير 12, 2018 رمز الخطأ 35 Sub or Function not defined وهذا رابط البحث عن الحلول عل الانترنت https://www.google.co.uk/search?q=VBA+Error+35+OR+"Sub+or+Function+not+defined"&gws_rd=ssl أخي الحبيب لا تظهر لك الرسالة التوضيحية المفصلة برمز الخطأ لان مرسل الرسالة هو VBA وليس معالج الاخطاء الخاص بالاجراء او الكود و بالتالي يتم تزويدك بالحد الادنى من المعلومات 2
kaser906 قام بنشر فبراير 12, 2018 قام بنشر فبراير 12, 2018 نعم استاذنا الكريم حاولت استخدام رمز الخطأ 35 للاستفادة منه في إجراء حدث معين ( اغلاق قاعدة البيانات مثلاً ) لكن دون فائدة هل من طريقة للاستافادة من هذا الخطأ في اغلاق قاعدة البيانات
أبو آدم قام بنشر فبراير 12, 2018 قام بنشر فبراير 12, 2018 ساحاول ان اجيبك غدا باذن الله لأني ساغادر مكاني حاليا شكرا لانتظارك حتى الغد
kaser906 قام بنشر فبراير 12, 2018 قام بنشر فبراير 12, 2018 1 دقيقه مضت, أبو آدم said: شكرا لانتظارك حتى الغد إن غداً لناظره قريب الله يعطيك العافيه
أبو آدم قام بنشر فبراير 12, 2018 قام بنشر فبراير 12, 2018 للاسف فان أخطاء Compile Errors يصنفها vba على أنها غير قانونية وبالتالي يتم تمييزها من قبل محرر vba كأخطاء قبل بدء تشغيل الكود الخاص بك و يبرزها مظللة بالصفر مع رسالة مباشرة من المحرر اعتمادا على إعداد خيار التحقق من بناء الجملة التلقائي ، اي انه يتم الكشف عنها عندما يتم تجميع التعليمات البرمجية، قبل تنفيذها مباشرة.. ليست كبقية الأخطاء و لم انجح حتى الآن بصيدها بمعالج الاخطاء او اي حل برمجي آخر لغاية الآن .... فعذرا لكنني مستمر بالمحاولة باذن الله 2
sandanet قام بنشر فبراير 13, 2018 قام بنشر فبراير 13, 2018 بعد اذن الاستاذ ابو آدم .. لتحديد الرقم الفريد المقترن برسالة الخطأ اضغط على CTRL + SHIFT + I بعد ظهور رسالة الخطأ سوف تظهر لك رقم الرسالة في الركن الأيسر السفلي من رسالة الخطأ
kaser906 قام بنشر فبراير 13, 2018 قام بنشر فبراير 13, 2018 6 ساعات مضت, أبو آدم said: للاسف فان أخطاء Compile Errors يصنفها vba على أنها غير قانونية وبالتالي يتم تمييزها من قبل محرر vba كأخطاء قبل بدء تشغيل الكود الخاص بك و يبرزها مظللة بالصفر مع رسالة مباشرة من المحرر اعتمادا على إعداد خيار التحقق من بناء الجملة التلقائي ، اي انه يتم الكشف عنها عندما يتم تجميع التعليمات البرمجية، قبل تنفيذها مباشرة.. ليست كبقية الأخطاء و لم انجح حتى الآن بصيدها بمعالج الاخطاء او اي حل برمجي آخر لغاية الآن .... فعذرا لكنني مستمر بالمحاولة باذن الله الله يعطيك العافية استاذنا 2 ساعات مضت, sandanet said: بعد اذن الاستاذ ابو آدم .. لتحديد الرقم الفريد المقترن برسالة الخطأ اضغط على CTRL + SHIFT + I بعد ظهور رسالة الخطأ سوف تظهر لك رقم الرسالة في الركن الأيسر السفلي من رسالة الخطأ اخي الكريم تجاوزنا الان رقم الخطأ فقد تم معرفة الرقم 35 الان المطلوب الاستفادة من الخطأ في تنفيذ إجراء محدد ( إغلاق قاعدة البيانات)
sandanet قام بنشر فبراير 13, 2018 قام بنشر فبراير 13, 2018 استخدم الكود التالي مع تغيير رقم رسالة الخطأ Private Sub Form_Error(DataErr As Integer, Response As Integer) If DataErr = 3022 Then MsgBox "نص رسالة الخطأ", vbCritical, "..رسالة خطأ.." Docmd.... Response = 0 End If End Sub
kaser906 قام بنشر فبراير 13, 2018 قام بنشر فبراير 13, 2018 5 ساعات مضت, sandanet said: استخدم الكود التالي مع تغيير رقم رسالة الخطأ Private Sub Form_Error(DataErr As Integer, Response As Integer) If DataErr = 3022 Then MsgBox "نص رسالة الخطأ", vbCritical, "..رسالة خطأ.." Docmd.... Response = 0 End If End Sub للاسف لم يأتي بنتيجة
أبو إبراهيم الغامدي قام بنشر فبراير 13, 2018 قام بنشر فبراير 13, 2018 إذا كانت أخطاء المحرر لايمكن إختابارها داخل محرر الشفرة؛ فأعتقد أنه من الممكن تصيدها باستخدام الوظيفة ()Eval، إذ أن هذه الوظيفة مهمتها الأساسية هي تقييم التعابير وإعادة النتايج التي تخرج عن تلك التعابير؛فاذا كانت التعبير يحتوي على وظائف وإجراءات مفقودة فإن الوظيفة ()Eval ستعيد رسالة خطأ بالرقم 2425 مفادها "يحتوي التعبير على وظيفة مفقودة".. وبهذا نكون سحبنا الخطأ إلى داخل محرر الشفره وبالتالي يمكننا تصيده بالطريقة المعتادة.. Control VBE Error.accdb 1 2
kaser906 قام بنشر فبراير 13, 2018 قام بنشر فبراير 13, 2018 (معدل) 1 ساعه مضت, أبو إبراهيم الغامدي said: إذا كانت أخطاء المحرر لايمكن إختابارها داخل محرر الشفرة؛ فأعتقد أنه من الممكن تصيدها باستخدام الوظيفة ()Eval، إذ أن هذه الوظيفة مهمتها الأساسية هي تقييم التعابير وإعادة النتايج التي تخرج عن تلك التعابير؛فاذا كانت التعبير يحتوي على وظائف وإجراءات مفقودة فإن الوظيفة ()Eval ستعيد رسالة خطأ بالرقم 2425 مفادها "يحتوي التعبير على وظيفة مفقودة".. وبهذا نكون سحبنا الخطأ إلى داخل محرر الشفره وبالتالي يمكننا تصيده بالطريقة المعتادة.. Control VBE Error.accdb استاذنا ابو ابراهيم النتائج ممتازة الله يعطيك ألف عافية تم تعديل فبراير 13, 2018 بواسطه kaser906
الردود الموصى بها
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.