اذهب الي المحتوي
أوفيسنا
بحث مخصص من جوجل فى أوفيسنا
Custom Search

تراجع خطوة عند حدوث خطأ


إذهب إلى أفضل إجابة Solved by Foksh,

الردود الموصى بها

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

ارجوا المساعدة لدى سؤالين

السؤال الاول:- اريد اعرف الاجابة صحيحة ام خطأ

يوجد كود عام باوامر الحدث يتجاوز الاخطاء اضعة عند حدث الاغلاق    وهو  ....

DoCmd.SetWarnings False

هل هذا صحيح

---------------------------------------------------

السؤال الثانى:-  طلب

اريد كود عام وظيفته تراجع خطوة واحدة اذا حدث خطأ ما   ،    لااريد التجاوز مثل الكود السابق اريد الكود يقوم بالتراجع خطوة

واين اضع هذا الكود فى اي حدث ؟

بمعنى اخر 

لقد وضعت الكود الاول عند حدث الاغلاق وعند حدث وجود خطأ ايضا

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

image.png.2fc5890e3ab8441c54eeb472b73bdcc9.png

 

ولم استطع الخروج الى ان اضطررت ان اخرج من البرنامج بالكامل واقوم بغلقة بالكامل

اريد عدم هذه الرسالة اريده ان يلغى ويرجعنى خطوة للوراء

بالغ التقدير

 

 

 

 

 

 

تم تعديل بواسطه Abdelaziz Osman
رابط هذا التعليق
شارك

  • أفضل إجابة

من وجهة نظري في آكسيس ، ليس هناك طريقة مباشرة للتراجع إلى الخلف بخطوة واحدة بمجرد حدوث خطأ. ومع ذلك، يمكنك تحقيق هذا السلوك بتخزين حالة السجل الحالي أو القيمة السابقة واستعادتها في حالة حدوث خطأ.

على سبيل المثال ، إذا كنت تقوم بتعديل سجل في جدول ، يمكنك تخزين القيمة الأصلية قبل التعديل ، وإذا حدث خطأ ، يمكنك استعادة القيمة الأصلية . إلخ ،

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

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

 

ومن باب التوضيح ببن جملتي تحاوز الأخطاء ، هذا توضيح بسيط 

DoCmd.SetWarnings False

تُستخدم لتعطيل رسائل التحذير في Access.
عندما تكون هذه الجملة مُفعّلة (True هو القيمة الافتراضية)، ستظهر رسائل تحذير للمستخدم عند تنفيذ أوامر معينة، مثل حذف سجلات.
يُفضل استخدامها عند القيام بعمليات قد تؤدي إلى فقدان بيانات أو تغييرات هامة وتريد تجنب ظهور رسائل التحذير.

On Error Resume Next

يستخدم لتجاوز الأخطاء والمتابعة في تنفيذ الكود بدلاً من إيقافه عند حدوث خطأ.
إذا حدثت أي أخطاء، فإن الكود يستمر في التنفيذ بدلاً من الإيقاف عند الخطأ.
يُستخدم بشكل عام عندما تكون على دراية بالأخطاء المحتملة وتريد متابعة تنفيذ الكود بشكل متواصل دون التوقف عند حدوث خطأ.
تحتاج إلى استخدام هذه الجمل وفقًا لاحتياجات محددة لتحقيق السلوك المطلوب في التطبيق الخاص بك

رابط هذا التعليق
شارك

لك جزيل الشكر استاذنا Foksh

طيب والكود  On Error GoTo Err    ماذا  يفيد ؟

 

 

حاولت ان اكمل هذا الكود 

ولكن اعتقد انه به شئ  غير مكتمل

 

On Error GoTo Err_أمر3_Click


    DoCmd.GoToRecord , , acNewRec

Exit_أمر3_Click:
    Exit Sub

 

تم تعديل بواسطه Abdelaziz Osman
رابط هذا التعليق
شارك

On Error GoTo Err تستخدم لتحديد ملف العناصر التي سيتم تنفيذها عند حدوث خطأ في التنفيذ. هذه البنية تقوم بتوجيه التنفيذ إلى علامة معينة (في هذه الحالة Err) عند حدوث خطأ.

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

كمثال :-

Sub Example()
    On Error GoTo ErrHandler
    
    ' ... الكود هنا
    
    Exit Sub ' تجنب تنفيذ ErrHandler بعد الانتهاء بشكل صحيح
ErrHandler:
    ' إجراءات للتعامل مع الخطأ هنا
    MsgBox "حدث خطأ: " & Err.Description
End Sub

هنا يتم توجيه التنفيذ إلى ErrHandler عند حدوث أي خطأ، ويمكنك تنفيذ الإجراءات اللازمة للتعامل مع الخطأ في الجزء المحدد.

 

رابط هذا التعليق
شارك

24 دقائق مضت, Abdelaziz Osman said:

لك جزيل الشكر استاذنا Foksh

طيب والكود  On Error GoTo Err    ماذا  يفيد ؟

 

 

حاولت ان اكمل هذا الكود 

ولكن اعتقد انه به شئ  غير مكتمل

 

On Error GoTo Err_أمر3_Click


    DoCmd.GoToRecord , , acNewRec

Exit_أمر3_Click:
    Exit Sub

 

Private Sub أمر3_Click()
    On Error GoTo Err_Handler

    ' يتم استخدام DoCmd.GoToRecord للانتقال إلى سجل جديد في النموذج الحالي
    DoCmd.GoToRecord , , acNewRec

Exit_أمر3_Click:
    Exit Sub

Err_Handler:
    ' يمكنك إضافة إجراءات للتعامل مع الأخطاء هنا، على سبيل المثال:
    MsgBox "حدث خطأ: " & Err.Description
    Resume Exit_أمر3_Click
End Sub

 

رابط هذا التعليق
شارك

سؤال اخر استاذنا  لدى حق باسم   manner    اريد عندما ينتهى المستخدم من الادخال البيان المطلوبة له وقبل ان ينتقل للحقل الذى بعده او ان يخرج من النموذج  تظهر له رسالة تحذيرية تذكره بانه بارسالة التالية "  لا تنسى ان تكتب الرمز tya "

بالغ التحية

 

رابط هذا التعليق
شارك

هل الرمز هذا شرط أن يكون في مربع النص manner ؟

جرب هذا الكود في حدث قبل التحديث

Private Sub manner_BeforeUpdate(Cancel As Integer)
    ' التحقق مما إذا كانت القيمة المدخلة تحتوي على الرمز المطلوب
    If InStr(Me.manner.Value, "tya") = 0 Then
        ' عرض رسالة تحذيرية للمستخدم
        MsgBox "يرجى عدم نسيان كتابة الرمز tya", vbExclamation, "تحذير"
        
        ' إلغاء التحديث ليظل المستخدم في نفس الحقل
        Cancel = True
    End If
End Sub

 

  • Like 1
رابط هذا التعليق
شارك

1 دقيقه مضت, Abdelaziz Osman said:

سؤال اخر سيدى  اريد  فى هذا السطر ان يكون TYE  أو    LKA  فكيف يكون تعبير أو

 

If InStr(Me.manner.Value, "tya") = 0 Then
Private Sub manner_BeforeUpdate(Cancel As Integer)
    ' التحقق مما إذا كانت القيمة المدخلة تحتوي على أحد الرموز المطلوبة
    If InStr(1, UCase(Me.manner.Value), "TYA") = 0 And InStr(1, UCase(Me.manner.Value), "LKA") = 0 Then
        ' عرض رسالة تحذيرية للمستخدم
        MsgBox "يرجى عدم نسيان كتابة الرمز Tya أو Lka", vbExclamation, "تحذير"
        
        ' إلغاء التحديث ليظل المستخدم في نفس الحقل
        Cancel = True
    End If
End Sub

في هذا الكود، تم استخدام UCase لتحويل النص إلى أحرف كبيرة للتحقق بغض النظر عن حالة الحروف. والتحقق من وجود "TYA" أو "LKA" في القيمة المدخلة. إذا لم يتم العثور على أي من هذين الرمزين، سيتم عرض رسالة تحذيرية وإلغاء التحديث ليظل المستخدم في نفس الحقل

  • Thanks 1
رابط هذا التعليق
شارك

38 دقائق مضت, Abdelaziz Osman said:

ماذا يعنى رقم  1    فى هذا السطر   

If InStr(1

InStr(1, ..., "TYA") تستخدم للبحث عن تواجد السلسلة "TYA" في القيمة المحولة إلى أحرف كبيرة. إذا كانت "TYA" موجودة في النص، ستكون قيمة الدالة غير صفرية، وإذا لم تكن موجودة، ستكون القيمة صفر

53 دقائق مضت, Abdelaziz Osman said:

وايضا ظهرت لى هذه الرسالة      ماهى كيفية عدم اظهارها

image.png.0d715ed0d3f67e7cac4a29861fd732b3.png

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

  • Like 1
رابط هذا التعليق
شارك

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

زائر
اضف رد علي هذا الموضوع....

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • تصفح هذا الموضوع مؤخراً   0 اعضاء متواجدين الان

    • لايوجد اعضاء مسجلون يتصفحون هذه الصفحه
×
×
  • اضف...

Important Information