slamco2000 قام بنشر يوليو 28, 2019 قام بنشر يوليو 28, 2019 السلام عليكم ورحمة الله وبركاته في النموذج وضعت أزرار للجدول الفرعي للنموذج الرئيسي لكن مشكلتي هو عند الوصول لآخر سجل والضغط على الزر للمتابعة يظهر خطأ للكود ... وهو من المفروض ان يعطي تنبيه لعدم وجود سجلات .. أو التوقف فما هو الحل لتعديل هذا الأمر كود السهم للخلف Private Sub Command42_Click() Forms!Violations_Form_Share!Violations_Table_subform.SetFocus DoCmd.GoToRecord , , acPrevious End Sub كود السهم للأمام Private Sub Command41_Click() Forms!Violations_Form_Share!Violations_Table_subform.SetFocus DoCmd.GoToRecord , , acNext End Sub وتقريباً نفس المشكلة في التقرير حيث يحتوي على صور ... في حال وجود سجلات يعمل بشكل ممتاز .. ولكن في حال عدم وجود سجلات وعمل بحث أو معاينة يكون الخطأ في الكود ... فإذا كان بالإمكان وجود حل لذلك Private Sub Detail_Format(Cancel As Integer, FormatCount As Integer) Me![ImageFrame1].Picture = Me![Picture1] Me![ImageFrame2].Picture = Me![Picture2] Me![ImageFrame3].Picture = Me![Picture3] Me![ImageFrame4].Picture = Me![Picture4] End Sub ولكم مني خالص الشكر والإحترام
jjafferr قام بنشر يوليو 28, 2019 قام بنشر يوليو 28, 2019 وعليكم السلام 🙂 تفضل: Private Sub Command42_Click() on error goto err_Command42_Click Forms!Violations_Form_Share!Violations_Table_subform.SetFocus DoCmd.GoToRecord , , acPrevious Exit_Command42_Click: exit sub err_Command42_Click: msgbox "عفوا هذا اول سجل" resume Exit_Command42_Click End Sub كود السهم للأمام Private Sub Command41_Click() on error goto err_Command41_Click Forms!Violations_Form_Share!Violations_Table_subform.SetFocus DoCmd.GoToRecord , , acNext Exit_Command41_Click: exit sub err_Command41_Click: msgbox "عفوا هذا اخر سجل" resume Exit_Command41_Click End Sub وتقريباً نفس المشكلة في التقرير حيث يحتوي على صور ... في حال وجود سجلات يعمل بشكل ممتاز .. ولكن في حال عدم وجود سجلات وعمل بحث أو معاينة يكون الخطأ في الكود ... فإذا كان بالإمكان وجود حل لذلك Private Sub Detail_Format(Cancel As Integer, FormatCount As Integer) on error goto err_Detail_Format Me![ImageFrame1].Picture = Me![Picture1] Me![ImageFrame2].Picture = Me![Picture2] Me![ImageFrame3].Picture = Me![Picture3] Me![ImageFrame4].Picture = Me![Picture4] Exit_Detail_Format: exit sub err_Detail_Format: if err.number=2220 then resume next else msgbox err.number & vbcrlf & err.description endif End Sub جعفر 2
ابو ياسين المشولي قام بنشر يوليو 28, 2019 قام بنشر يوليو 28, 2019 يمكنك استخدام هذا قبل الكود اذا كان الكود كما تقول On Error Resume Next Me![ImageFrame1].Picture = Me![Picture1] Me![ImageFrame2].Picture = Me![Picture2] Me![ImageFrame3].Picture = Me![Picture3] Me![ImageFrame4].Picture = Me![Picture4] End Sub 1
jjafferr قام بنشر يوليو 28, 2019 قام بنشر يوليو 28, 2019 9 دقائق مضت, ابو ياسين المشولي said: يمكنك استخدام هذا قبل الكود لا يا ابو ياسين ، هذا الكود موجود في حدث "الحالي" للنموذج ، واذا وضعت الكود اعلاه ، فالبرنامج ما راح يعطيه اي رسالة خطأ !! وطبعا احنا نعرف ان حدث "الحالي" من اهم الاحداث ، والكثير من الاكواد تكون فيه ، فما بيعرف شو الاخطاء الاخرى في الحدث هذا !! نعم ، ممكن نخليه على اوامر الزر الاخرى اللي طلبها السائل 🙂 جعفر 1
ابو ياسين المشولي قام بنشر يوليو 28, 2019 قام بنشر يوليو 28, 2019 الان, jjafferr said: لا يا ابو ياسين ، هذا الكود موجود في حدث "الحالي" للنموذج ، واذا وضعت الكود اعلاه ، فالبرنامج ما راح يعطيه اي رسالة خطأ !! وطبعا احنا نعرف ان حدث "الحالي" من اهم الاحداث ، والكثير من الاكواد تكون فيه ، فما بيعرف شو الاخطاء الاخرى في الحدث هذا !! نعم ، ممكن نخليه على اوامر الزر الاخرى اللي طلبها السائل 🙂 جعفر نعم اخي جعفر بس انا قلت مادتم انه متاكد من الكود انه سليم فقط اعطيته كود تخطي الاخطاء ما كنت عارف انه يريد تفاصيل بالاخطاء والى اخر 1
jjafferr قام بنشر يوليو 28, 2019 قام بنشر يوليو 28, 2019 في الواقع يمكننا ان نتوسع في كود الصور اكثر ، حتى نخفي الصوره الغير موجودة : Private Sub Detail_Format(Cancel As Integer, FormatCount As Integer) on error goto err_Detail_Format dim int_Which_Picture int_Which_Picture=1 Me![ImageFrame1].Picture = Me![Picture1] int_Which_Picture=2 Me![ImageFrame2].Picture = Me![Picture2] int_Which_Picture=3 Me![ImageFrame3].Picture = Me![Picture3] int_Which_Picture=4 Me![ImageFrame4].Picture = Me![Picture4] Exit_Detail_Format: exit sub err_Detail_Format: if err.number=2220 then if int_Which_Picture=1 then Me![ImageFrame1].Picture ="" elseif int_Which_Picture=2 then Me![ImageFrame2].Picture ="" elseif int_Which_Picture=3 then Me![ImageFrame3].Picture ="" elseif int_Which_Picture=4 then Me![ImageFrame4].Picture ="" endif resume next else msgbox err.number & vbcrlf & err.description endif End Sub جعفر 1
jjafferr قام بنشر يوليو 28, 2019 قام بنشر يوليو 28, 2019 الامر On Error Resume Next جدا خطير ، ويجب ان يُستعمل في حالات جدا خاصة 🙂 بينما كود اصطياد الخطأ الذي وضعته انا ، جدا مرن ، ويستوعب اي عدد من الاخطاء ، ويمكن معالجة كل نوع منها بطريقة خاصة 🙂 شوف مثلا اصطياد هذه الاخطاء ، وهذا كود من احد برنامجي : Exit Sub ProcError: Select Case Err Case 7874 'could not find QueryDef Resume Next Case 9 'Worksheet doesn't exist objXLWb.Worksheets.Add Set objXLSheet = objXLWb.ActiveSheet objXLSheet.Name = strWorkSheet Resume Next Case 1004 'Workbook doesn't exist, make it objXLApp.Workbooks.Add Set objXLWb = objXLApp.ActiveWorkbook objXLWb.SaveAs strWorkBook, FileFormat:=strSaveAs Resume Next Case 53 'file not found Resume Next Case 3270 'Field Caption not found, use field name objXLCell(, i + 1) = rs.Fields(i).Name Resume Next Case 3061 'too few parameters, expected 1 or more 'this error occurs when trying to run a query which needs its parameters from a Form, 'the Form should be open with the parameter, then this code take the values properly Dim qdf As QueryDef Dim prm As Parameter 'Set qdf = CurrentDb.QueryDefs("strSql") Set qdf = CurrentDb.CreateQueryDef("NewQueryDef", strSql) For Each prm In qdf.Parameters prm.Value = Eval(prm.Name) Next prm Set rs = qdf.OpenRecordset(dbOpenDynaset) DoCmd.DeleteObject acQuery, "NewQueryDef" Resume Next Case Else DoCmd.Hourglass False MsgBox Err.Number & " " & Err.Description 'Stop 'OkNotOk = "NotOk" Exit Sub Resume 0 End Select End Sub جعفر 3
ابو ياسين المشولي قام بنشر يوليو 28, 2019 قام بنشر يوليو 28, 2019 تسلم اخي جعفر انا استخدم هذا On Error GoTo MyErr ثم الكود MyErr: If Err.Number = 7847 Then MsgBox " الرساله ", vbInformation, " : عنوان الرساله " End If وهو ممتاز جدا يعرفك في الاخطاء وكما قلت في حجات استخدم اخفاء الاخطاء اللي نتعلم عنه 1
jjafferr قام بنشر يوليو 28, 2019 قام بنشر يوليو 28, 2019 11 دقائق مضت, ابو ياسين المشولي said: انا استخدم هذا ممتاز ، ولكن ناقصك ، اذا كان في اخطاء اخرى غير 7847 ، فعليك عمل الكود هكذا : On Error GoTo MyErr ثم الكود MyErr: If Err.Number = 7847 Then MsgBox " هذا الملف موجود سابقا ", vbInformation, " : عنوان الرساله " else msgbox err.number & vbcrlf & err.description end if جعفر 1
slamco2000 قام بنشر يوليو 28, 2019 الكاتب قام بنشر يوليو 28, 2019 لا أعرف كيف أشكركم أخي جعر وأخي أبو ياسين فلكم الشكر الجزيل ورحم الله والديكم أكواد الأزرار من الأخ جعفر إستعملتهم وطبعاً راحت كل المشاكل ولله الحمد كود الصور ممتاز .. طبعاً أزال المشكلة التي لدي .. أصبحت هناك مشكلة صغيرة فقط .. وأستطيع أستمر بهذه المشكلة أيضاً .. إلا إذا كان لها حل فهذا شيء ممتاز مربع النص الذي يظهر ... يظهر مرتين ومكتوب به .. 13 Type mismatch تضغط أوكي مرتين ويذهب هذه هي المشكلة فقط ولكم تحياتي وأنا أعجز عن شكركم
jjafferr قام بنشر يوليو 28, 2019 قام بنشر يوليو 28, 2019 حياك الله 🙂 6 دقائق مضت, slamco2000 said: أصبحت هناك مشكلة صغيرة فقط .. وأستطيع أستمر بهذه المشكلة أيضاً .. إلا إذا كان لها حل فهذا شيء ممتاز مربع النص الذي يظهر ... يظهر مرتين ومكتوب به .. 13 Type mismatch تضغط أوكي مرتين ويذهب هذه هي المشكلة فقط قوانين المنتدى تقتضي ان يكون هناك موضوع لكل سؤال ، وبما هذا الطلب جديد ، فرجاء عمل سؤال له ، وفي الواقع سؤالك يحتاج مزيد من التوضيح ، فلما تضع السؤال ، يفضل ان تضع فيه هذه الجزئية من برنامجك ، علشان الشباب يساعدوك ، اما الشياب ، فيقولون لكم تصبحون على خير جعفر 1 1 1
slamco2000 قام بنشر يوليو 28, 2019 الكاتب قام بنشر يوليو 28, 2019 مشكور الغالي ما قصرت تصبحون على خير
الردود الموصى بها
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.