حسين العربى قام بنشر أبريل 2, 2020 قام بنشر أبريل 2, 2020 السلام عليكم ورحمة الله وبركاته اخواني اعضاء ومشرفي المنتدي الكرام عندي نموذج ادخال بيانات اريد كود حذف السجل الحالي عند ظهور اي رسالة خطأ في النموذج الهدف من ذلك هو انه عندي جهاز ريدر لسحب البيانات من شريحة البطاقة المدنية فاحيانا المستخدم يسهو عليه وينسي حفظ السجل الحالي ويضع بطاقة اخري قبل الحفظ فيحدث خطأ فتظهر رسالة خطأ وشكرا لكم ادخال بيانات البطاقه المدنية.accdb
أبوبسمله قام بنشر أبريل 2, 2020 قام بنشر أبريل 2, 2020 وعليكم السلام اخى @حسين العربى جرب الكود التالى ووافنى بالنتيجه DoCmd.RunCommand acCmdDeleteRecord
حسين العربى قام بنشر أبريل 2, 2020 الكاتب قام بنشر أبريل 2, 2020 استاذي الفاضل شكرا علي مرورك الطيب حضرتك ما وضحت اين ايضع هذا الكود
أبوبسمله قام بنشر أبريل 2, 2020 قام بنشر أبريل 2, 2020 على النموذج فى زر حذف وافنا بالنتيجه هل هذا ما تريد ام هناك توضيح؟ ادخال بيانات البطاقه المدنية(1).accdb
حسين العربى قام بنشر أبريل 2, 2020 الكاتب قام بنشر أبريل 2, 2020 استاذي الفاضل حضرتك الظاهر مافهمت السؤال صح لما تظهر اي رسالة خطأ في النموذج عند الادخال يتم حذف السجل الحالي
أبوبسمله قام بنشر أبريل 2, 2020 قام بنشر أبريل 2, 2020 2 دقائق مضت, حسين العربى said: استاذي الفاضل حضرتك الظاهر مافهمت السؤال صح وماهو الصح اخى حسين الحالى ده اللى ظاهر امامك ام ماذا ؟ وضح لنا حتى نقدر على مساعدتك باذن الله من قبل اخوانك واساتذتنا
حسين العربى قام بنشر أبريل 2, 2020 الكاتب قام بنشر أبريل 2, 2020 (معدل) لما تظهر اي رسالة خطأ في النموذج عند الادخال يتم حذف السجل الحالي ازاي اعمل كود ينفذ الامر ده تم تعديل أبريل 2, 2020 بواسطه حسين العربى
أبوبسمله قام بنشر أبريل 2, 2020 قام بنشر أبريل 2, 2020 فى فالنموذج حدث عند الخطأ ضعه فيه وجربه ووافنا بالنتيجه
jjafferr قام بنشر أبريل 2, 2020 قام بنشر أبريل 2, 2020 السلام عليكم 🙂 عندك رقم الخطأ ، صح ؟ اذا ما عندك : على حدث "on Error" للنموذج (وليس للحقل) ، اكتب Private Sub Form_Error(DataErr As Integer, Response As Integer) MsgBox DataErr End Sub . وبعد ان تصطاد رقم الخطأ (مثلا 1111) ، استعمل كود اخوي احمد لحذف السجل : Private Sub Form_Error(DataErr As Integer, Response As Integer) If DataErr = 1111 Then Response = acDataErrContinue 'قد لا تحتاج الى هذا السطر DoCmd.RunCommand acCmdDeleteRecord End If End Sub . جعفر 1
أبوبسمله قام بنشر أبريل 2, 2020 قام بنشر أبريل 2, 2020 وعليكم السلام اهلا ومرحبا باخى ومعلمى العزيز @jjafferr جزاك الله خيرا سعدت بمشاركتك معنا بارك الله لنا فيك وبارك لك فى كل ما تحب
حسين العربى قام بنشر أبريل 2, 2020 الكاتب قام بنشر أبريل 2, 2020 استاذي الفاضل jjafferr شكرا لك علي المساعده ليس عندي رقم خطا حضرتك مثلا افتح النموذج وفي حقل التاريخ ضع نص سوف تظهر لك رساله مثل الصوره
jjafferr قام بنشر أبريل 2, 2020 قام بنشر أبريل 2, 2020 11 دقائق مضت, أحمد الفلاحجى said: فى فالنموذج حدث عند الخطأ ضعه فيه وجربه طبعا قصدك مع رقم الخطأ ، وإلا ، وبحدوث اي رسالة خطأ ، سيتم حذف الاخضر واليابس 🙂 اخي حسين ، صدقني لما قلت لك ، هذه طريقة اصطياد الخطأ ، والنتيجة ، وحسب طلبك : جعفر 1
أبوبسمله قام بنشر أبريل 2, 2020 قام بنشر أبريل 2, 2020 2 دقائق مضت, jjafferr said: طبعا قصدك مع رقم الخطأ ، وإلا ، وبحدوث اي رسالة خطأ ، سيتم حذف الاخضر واليابس 🙂 اخي حسين ، صدقني لما قلت لك ، هذه طريقة اصطياد الخطأ ، والنتيجة ، وحسب طلبك : جعفر طبعا كنت اقصد بدون الخطأ 😀 ولكن حت مع قصدى هذا فلم يتم تنفيذ الكود ولم يتم التنفيذ ايضا بعد اصطياد رقم الخطأ اممممممممممم
jjafferr قام بنشر أبريل 2, 2020 قام بنشر أبريل 2, 2020 3 ساعات مضت, حسين العربى said: فاحيانا المستخدم يسهو عليه وينسي حفظ السجل الحالي ويضع بطاقة اخري قبل الحفظ فيحدث خطأ فتظهر رسالة خطأ في هذه الحالة ، السجل لم يتم حفظه بعد ، فلا يمكنك حذفه ، وانما يمكنك إلغاءه 🙂 Private Sub Form_Error(DataErr As Integer, Response As Integer) If DataErr = 2113 Then Response = acDataErrContinue 'قد لا تحتاج الى هذا السطر me.undo End If End Sub او تحذف بيانات النموذج : me.text1="" me.text2="" ومن الصورة الاخيرة اللي ارفقتها ، انت لم تنسخ الكود بالكامل ، نسيت اهم سطر : اقتباس If DataErr = 1111 Then جعفر 1
أبوبسمله قام بنشر أبريل 2, 2020 قام بنشر أبريل 2, 2020 6 دقائق مضت, jjafferr said: في هذه الحالة ، السجل لم يتم حفظه بعد ، فلا يمكنك حذفه ، وانما يمكنك إلغاءه 🙂 صحيح جزاك الله خيرا معلمنا العزيز جعفر
حسين العربى قام بنشر أبريل 2, 2020 الكاتب قام بنشر أبريل 2, 2020 (معدل) تمام استاذي الفاضل jjafferr هذا هو المطلوب بس لي طلب اخير بعد اذنك طيب لو في رسالة خطا تانيه عاوز اضيفها تم تعديل أبريل 2, 2020 بواسطه حسين العربى
jjafferr قام بنشر أبريل 2, 2020 قام بنشر أبريل 2, 2020 4 دقائق مضت, حسين العربى said: 1. هذا هو المطلوب بس لي طلب اخير بعد اذنك 2. طيب لو في رسالة خطا تانيه عاوز اضيفها 1. هل جربت الكود ، وتم عمل اللازم ؟ 2. تصطاد رقم الخطأ ، ثم تضيف الكود برقم الخطأ 🙂 بس اعتقد بأن موضوعك لا يتم التعامل معه بهذه الطريقة !! على حسب تجربتي مع سكانر MRZ : فطريقة قراءة البطاقة ، سطر بسطر ، ولذلك ، ولما يصل الى السطر الاخير ، تستطيع: 1. ان تحفظ السجل تلقائيا ، وتنقل التركيز للسطر الاول (انظر رقم2) ، 1و 2. تجعل التركيز يذهب للسطر الاول (وتكون القيمة فيه مظلله) ، بحيث اذا اراد ان يُدخل بطاقة ثانية ، فلا يحصل على خطأ 🙂 جعفر
حسين العربى قام بنشر أبريل 2, 2020 الكاتب قام بنشر أبريل 2, 2020 استاذي الفاضل jjafferr ماتفضلت به من كود هو المطلوب بس عاوز اضيف فية رسالة تنبيه بعد الحذف مثلا اقول فيها ادخل البطاقه مره اخري وينقل التركيز الي حقل رقم البطاقة لو امكن ولك جزيل الشكر
أبوبسمله قام بنشر أبريل 2, 2020 قام بنشر أبريل 2, 2020 اخى ومعلمى العزيز @jjafferr هل يمكن الاعتماد على الكود التالى ؟ Private Sub Form_Error(DataErr As Integer, Response As Integer) Dim x As Integer x = DataErr If x > 0 Then ' Response = acDataErrContinue 'ÞÏ áÇ ÊÍÊÇÌ Çáì åÐÇ ÇáÓØÑ Me.Undo End If End Sub
أفضل إجابة jjafferr قام بنشر أبريل 3, 2020 أفضل إجابة قام بنشر أبريل 3, 2020 9 ساعات مضت, حسين العربى said: بس عاوز اضيف فية 1. رسالة تنبيه بعد الحذف مثلا اقول فيها ادخل البطاقه مره اخري 2. وينقل التركيز الي حقل رقم البطاقة تفضل Private Sub Form_Error(DataErr As Integer, Response As Integer) If DataErr = 2113 Then Response = acDataErrContinue me.undo msgbox "ادخل البطاقة مرة اخرى" me.ID.setfocus End If End Sub . ولكني لازلت اقول بأنه ممكن فيه طريقة افضل من هذه ، تلك التي يتسلسل فيها دخول البيانات من البطاقة !! لأنك بهذه الطريقة تضطر تصيد الاخطاء واحدة خلف الاخرى وووو ، بينما مثلا : لما تُدخل البطاقة في الجهاز ، يجب ان يكون التركيز على حقل رقم البطاقة ، وآخر حقل يتم ادخاله هو تاريخ الانتهاء ، ومنها ينتقل التركيز للحقل التالي ، هنا ، وعلى حدث "بعد التحديث" للحقل تاريخ الانتهاء ، يمكنك ان تظهر رسالة: هل تريد حفظ البيانات ، نعم ، لا : Dim Msg, Style, Title, Response Msg = "هل تريد حفظ البيانات ?" & vbcrlf & _ "نعم: احفظ البيانات" & vbcrlf & _ "لا : لا تحفظ البيانات" Style = vbYesNo + vbCritical + vbDefaultButton1 ' Define buttons. Title = "تم ادخال البيانات، ولكنها لم تُحفظ بعد" ' Define title. ' context. ' Display message. Response = MsgBox(Msg, Style, Title) If Response = vbYes Then ' User chose Yes. docmd.runcommand accmdsaverecord ' احفظ السجل me.id.setfocus 'وانتقل الى حقل ID مرة اخرى استعدادا لإدخال بيانات بطاقة جديدة Else ' User chose No. me.undo ' Perform some action. me.id.setfocus 'وانتقل الى حقل ID مرة اخرى استعدادا لإدخال بيانات بطاقة جديدة End If . الميزة في ظهور الرسالة هو ، انه لا يسمح لك عمل اي شيء آخر في السجل ، إلا بعد ان تستجيب للرسالة ، مما يسهل عليك ولا تحتاج الى بقية الكود ولا ولا 🙂 10 ساعات مضت, أحمد الفلاحجى said: هل يمكن الاعتماد على الكود التالى ؟ Private Sub Form_Error(DataErr As Integer, Response As Integer) Dim x As Integer x = DataErr If x > 0 Then ' Response = acDataErrContinue 'ÞÏ áÇ ÊÍÊÇÌ Çáì åÐÇ ÇáÓØÑ Me.Undo End If End Sub هو بمثابة هذا الكود لأن تقريبا جميع الاخطاء ارقامها موجبه Private Sub Form_Error(DataErr As Integer, Response As Integer) Response = acDataErrContinue Me.Undo End Sub جعفر 1 1
حسين العربى قام بنشر أبريل 3, 2020 الكاتب قام بنشر أبريل 3, 2020 الف شكر للاستاذ jjafferr والف شكر للاستاذ أحمد الفلاحجى جزاكم الله خيرا 1
الردود الموصى بها
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.